Timeline



Mar 7, 2019:

11:11 PM Changeset in webkit [242637] by tpopela@redhat.com
  • 3 edits in trunk/Tools

[GTK] Make Tools/gtkdoc python3 compatible
https://bugs.webkit.org/show_bug.cgi?id=195359

Reviewed by Carlos Garcia Campos.

  • gtkdoc/generate-gtkdoc:

ConfigParser was reworked in Python 3.2 so we have adapt the code to
work with Python 2 and 3.
(get_gtkdoc_module_paths):
The iteritems() was removed in Python 3, so let's use items() that's
available in Python 2 and 3.
(get_generator_for_config):

  • gtkdoc/gtkdoc.py:

(GTKDoc._run_command):
The sys.stdout.write() is expecting str in Python 3 and not bytes
(that are coming from stdout.encode()). Use sys.stdout.buffer.write()
for passing the bytes there.

10:17 PM Changeset in webkit [242636] by ysuzuki@apple.com
  • 12 edits in trunk/Source

[JSC] Make more fields lazy in JSGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=195449

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch makes more fields lazy-allocated in JSGlobalObject to save memory.

  1. Some minor structures like moduleRecordStructure.
  2. Some functions like parseInt / parseFloat. While they are eagerly created in JIT mode anyway to materialize NumberConstructor, we can lazily allocate them in non JIT mode.
  3. ArrayBuffer constructor. While it is eagerly allocated in WebCore, we can make lazily allocated in JSC.
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • runtime/JSArrayBufferPrototype.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::parseIntFunction const):
(JSC::JSGlobalObject::parseFloatFunction const):
(JSC::JSGlobalObject::evalFunction const):
(JSC::JSGlobalObject::strictEvalActivationStructure const):
(JSC::JSGlobalObject::moduleRecordStructure const):
(JSC::JSGlobalObject::moduleNamespaceObjectStructure const):
(JSC::JSGlobalObject::proxyObjectStructure const):
(JSC::JSGlobalObject::callableProxyObjectStructure const):
(JSC::JSGlobalObject::proxyRevokeStructure const):
(JSC::JSGlobalObject::arrayBufferConstructor const):
(JSC::JSGlobalObject::arrayBufferPrototype const):
(JSC::JSGlobalObject::arrayBufferStructure const):

  • runtime/ProxyObject.h:
  • runtime/StrictEvalActivation.cpp:

(JSC::StrictEvalActivation::StrictEvalActivation):

  • runtime/StrictEvalActivation.h:
  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::buffer):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::webAssemblyModuleCustomSections):

Source/WebCore:

Use arrayBufferConstructor() since getDirect does not work with lazy property.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

10:11 PM Changeset in webkit [242635] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Source/WebCore:
[ContentChangeObserver][REGRESSION] Check if visibility change happens while dispatching mouseMoved
https://bugs.webkit.org/show_bug.cgi?id=195421
<rdar://problem/48682004>

Reviewed by Simon Fraser.

Visibility change might be triggered synchronously while dispatching mouseMoved event.

Test: fast/events/touch/ios/content-observation/visibility-change-happens-while-in-mousemoved.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::mouseMovedDidStart):
(WebCore::ContentChangeObserver::mouseMovedDidFinish):
(WebCore::ContentChangeObserver::isNotifyContentChangeAllowed const):

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::isObservingContentChanges const):

LayoutTests:
[ContentChangeObserver] Check if visibility change happens while dispatching mouseMoved
https://bugs.webkit.org/show_bug.cgi?id=195421
<rdar://problem/48682004>

Reviewed by Simon Fraser.

  • fast/events/touch/ios/content-observation/visibility-change-happens-while-in-mousemoved-expected.txt: Added.
  • fast/events/touch/ios/content-observation/visibility-change-happens-while-in-mousemoved.html: Added.
10:08 PM Changeset in webkit [242634] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[ContentChangeObserver] Check if max-height change triggers visible content change.
https://bugs.webkit.org/show_bug.cgi?id=195417
<rdar://problem/48680631>

Reviewed by Simon Fraser.

Source/WebCore:

A fixed max-height non-zero value could indicate visible content change. usps.com uses this technique to show menu panes.

Test: fast/events/touch/ios/content-observation/visibility-change-is-max-height-change.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::isConsideredHidden):
(WebCore::ContentChangeObserver::StyleChangeScope::StyleChangeScope):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
(WebCore::elementImplicitVisibility): Deleted.

  • page/ios/ContentChangeObserver.h:

LayoutTests:

  • fast/events/touch/ios/content-observation/visibility-change-is-max-height-change-expected.txt: Added.
  • fast/events/touch/ios/content-observation/visibility-change-is-max-height-change.html: Added.
8:51 PM Changeset in webkit [242633] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix failing EWS build for ios-sim

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::touchEventDidStart):

8:39 PM Changeset in webkit [242632] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win] Remove -DUCHAR_TYPE=wchar_t stopgap and learn to live with char16_t.
https://bugs.webkit.org/show_bug.cgi?id=195346
<rdar://problem/48667048>

Unreviewed build fix for clang-cl.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(setApplicationId): Replaced calling String::charactersWithNullTermination with String::wideCharacters to get wchar_t.

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

[MSE] Adopt new AVSampleBufferDisplayLayer SPI
https://bugs.webkit.org/show_bug.cgi?id=195445
<rdar://problem/48480516>

Reviewed by Jer Noble.

No new tests, no functional change.

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

(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): Only register for
kCMSampleBufferConsumerNotification_BufferConsumed notiication when
-[AVSampleBufferDisplayLayer prerollDecodeWithCompletionHandler:] isn't available.
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): Ditto, for unregistering.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Use
-[AVSampleBufferDisplayLayer prerollDecodeWithCompletionHandler:] when possible.

8:24 PM Changeset in webkit [242630] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[ContentChangeObserver] Click event fires immediately on hover menu at Ebbets.com
https://bugs.webkit.org/show_bug.cgi?id=195397

Reviewed by Simon Fraser.

Source/WebCore:

This patch introduces TouchEventScope to track changes triggered by touch start.

Test: fast/events/touch/ios/content-observation/visibility-change-on-touch-start-simple.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::touchEventDidStart):
(WebCore::ContentChangeObserver::touchEventDidFinish):
(WebCore::ContentChangeObserver::mouseMovedDidStart):
(WebCore::ContentChangeObserver::mouseMovedDidFinish):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::TouchEventScope::TouchEventScope):
(WebCore::ContentChangeObserver::TouchEventScope::~TouchEventScope):

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::isObservingContentChanges const):

LayoutTests:

  • fast/events/touch/ios/content-observation/visibility-change-on-touch-start-simple-expected.txt: Added.
  • fast/events/touch/ios/content-observation/visibility-change-on-touch-start-simple.html: Added.
7:26 PM Changeset in webkit [242629] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Crash under RemoteLayerTreePropertyApplier::applyProperties
https://bugs.webkit.org/show_bug.cgi?id=195448
<rdar://problem/48588226>

Reviewed by Simon Fraser.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):
Under some currently-unknown circumstances, the UI process is receiving
commits referring to layers that it does not know about.
One understood case of this was fixed in r241899, but there seem to be
cases remaining that are not understood.
Also, add a release log so that we can identify any downstream effects.

7:21 PM Changeset in webkit [242628] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[ContentChangeObserver] Introduce fixed duration content observation
https://bugs.webkit.org/show_bug.cgi?id=195295
<rdar://problem/48579913>

Reviewed by Simon Fraser.

Source/WebCore:

Some pages have a runloop-like scheduling setup where the content triggering change happens at a nested timer firing.
This patch helps finding cases like that using a 32ms long fixed window. Currently nested timers get dropped on the floor and
we stop observing for content changes before they even get fired.

Test: fast/events/touch/ios/content-observation/visibility-change-happens-on-timer-hops.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::ContentChangeObserver):
(WebCore::ContentChangeObserver::startContentObservationForDuration):
(WebCore::ContentChangeObserver::completeDurationBasedContentObservation):
(WebCore::ContentChangeObserver::didInstallDOMTimer):
(WebCore::ContentChangeObserver::didRemoveDOMTimer):
(WebCore::ContentChangeObserver::domTimerExecuteDidStart):
(WebCore::ContentChangeObserver::domTimerExecuteDidFinish):
(WebCore::ContentChangeObserver::styleRecalcDidStart):
(WebCore::ContentChangeObserver::styleRecalcDidFinish):
(WebCore::ContentChangeObserver::cancelPendingActivities):
(WebCore::ContentChangeObserver::didSuspendActiveDOMObjects):
(WebCore::ContentChangeObserver::willDetachPage):
(WebCore::ContentChangeObserver::contentVisibilityDidChange):
(WebCore::ContentChangeObserver::setShouldObserveNextStyleRecalc):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::StyleChangeScope::StyleChangeScope):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
(WebCore::ContentChangeObserver::clearTimersAndReportContentChange): Deleted.

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::clearObservedDOMTimers):
(WebCore::ContentChangeObserver::isObservingContentChanges const):
(WebCore::ContentChangeObserver::hasPendingActivity const):

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):

LayoutTests:

  • fast/events/touch/ios/content-observation/visibility-change-happens-on-timer-hops-expected.txt: Added.
  • fast/events/touch/ios/content-observation/visibility-change-happens-on-timer-hops.html: Added.
6:54 PM Changeset in webkit [242627] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove merging must handle values into proven types in CFA
https://bugs.webkit.org/show_bug.cgi?id=195444

Reviewed by Saam Barati.

Previously, we are merging must handle values as a proven constant in CFA. This is OK as long as this proven AbstractValue is blurred by merging the other legit AbstractValues
from the successors. But let's consider the following code, this is actually generated DFG graph from the attached test in r242626.

Block #2 (loop header) succ #3, #4
...
1: ForceOSRExit
...
2: JSConstant(0)
3: SetLocal(@2, loc6)
...
4: Branch(#3, #4)

Block #3 (This is OSR entry target) pred #2, #3, must handle value for loc6 => JSConstant(Int32, 31)
...
5: GetLocal(loc6)
6: StringFromCharCode(@5)
...

Block #3 is OSR entry target. So we have must handle value for loc6 and it is Int32 constant 31. Then we merge this constant as a proven value in #3's loc6 AbstractValue.
If the value from #2 blurs the value, it is OK. However, #2 has ForceOSRExit. So must handle value suddenly becomes the only source of loc6 in #3. Then we use this constant
as a proven value. But this is not expected behavior since must handle value is just a snapshot of the locals when we kick off the concurrent compilation. In the above example,
we assume that loop index is an constant 31, but it is wrong, and OSR entry fails. Because there is no strong assumption that the must handle value is the proven type or value,
we should not merge it in CFA.

Since (1) this is just an optimization, (2) type information is already propagated in prediction injection phase, and (3) the must handle value does not show the performance
progression in r211461 and we no longer see type misprediction in marsaglia-osr-entry.js, this patch simply removes must handle value type widening in CFA.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):
(JSC::DFG::CFAPhase::performBlockCFA):
(JSC::DFG::CFAPhase::injectOSR): Deleted.

5:53 PM Changeset in webkit [242626] by ysuzuki@apple.com
  • 4 edits
    2 adds in trunk

[JSC] StringFromCharCode fast path should accept 0xff in DFG and FTL
https://bugs.webkit.org/show_bug.cgi?id=195429

Reviewed by Saam Barati.

JSTests:

  • stress/must-handled-values-should-not-be-used-as-proven-constants-in-cfa.js: Added.

(foo):

  • stress/string-from-char-code-255.js: Added.

Source/JavaScriptCore:

We can create single characters without allocation up to 0xff character code. But currently, DFGSpeculativeJIT and FTLLowerDFGToB3 go to the slow path
for 0xff case. On the other hand, DFG DoesGC phase says GC won't happen if the child is int32 constant and it is <= 0xff. So, if you have String.fromCharCode(0xff),
this breaks the assumption in DFG DoesGC. The correct fix is changing the check in DFGSpeculativeJIT and FTLLowerDFGToB3 from AboveOrEqual to Above.
Note that ThunkGenerators's StringFromCharCode thunk was correct.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileFromCharCode):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):

5:35 PM Changeset in webkit [242625] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo][WebKit] Nothing is drawn after Web process crashed
https://bugs.webkit.org/show_bug.cgi?id=195399

Reviewed by Alex Christensen.

PageClientImpl::viewSize returned 0x0 size after Web process
crashed. Restored the original implementation using GetClientRect
(Bug 52175).

  • UIProcess/win/PageClientImpl.cpp:

(WebKit::PageClientImpl::viewSize):

4:52 PM Changeset in webkit [242624] by commit-queue@webkit.org
  • 38 edits
    1 move
    1 add
    1 delete in trunk

requestAnimationFrame should execute before the next frame
https://bugs.webkit.org/show_bug.cgi?id=177484

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

Source/WebCore:

This change fixes two issues with animation timing:

  1. Calling the requestAnimationFrame callbacks would have happened when the DisplayLink fires. This may have happened even if the frame is missed and no display is committed.
  1. Style changes and layout triggered by script could trigger painting at more than 60fps. CoreAnimation commits could happen at more than 60fps, although WindowServer will throttle those, and only some will be shown on the screen.

This change introduces a new paint scheduling model where painting is
driven by a "RenderingUpdateScheduler", which only triggers paints once
per 16.7ms frame.

Code that previously scheduled a compositing layer flush now schedules a
"RenderingUpdate", and that update is driven by a DisplayRefreshMonitor
callback. When the render happens, we service requestAnimationFrame callbacks,
Web Animations and intersection observations per the "Update the rendering"
step of the HTML Event Loop specification
<https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering>.

In the future, more rendering steps will be added to this code.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/mac/AXObjectCacheMac.mm:

Fix layout tests by adding null check.

  • animation/DocumentAnimationScheduler.cpp: Removed.
  • animation/DocumentAnimationScheduler.h: Removed.
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::DocumentTimeline):
(WebCore::DocumentTimeline::updateThrottlingState):
(WebCore::DocumentTimeline::resumeAnimations):
(WebCore::DocumentTimeline::liveCurrentTime const):
(WebCore::DocumentTimeline::currentTime):
(WebCore::DocumentTimeline::animationTimingDidChange):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::unscheduleAnimationResolution):
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::scheduleNextTick):
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement):
Simplify this function by handling the case of no-animations separately.

(WebCore::DocumentTimeline::resolveAnimationsForElement):
Simplify the loop and delete hasPendingAcceleratedAnimations because it
is initialized to true and is not changed inside the loop.

(WebCore::DocumentTimeline::scheduleAnimationResolutionIfNeeded): Deleted.
(WebCore::DocumentTimeline::animationResolutionTimerFired): Deleted.

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

(WebCore::Document::resolveStyle):
There is no need to force update in resolveStyle(). notifyFlushRequired()
will be called eventually which will scheduleRenderingUpdate().

(WebCore::Document::prepareForDestruction):
(WebCore::Document::updateAnimationsAndSendEvents):
(WebCore::Document::serviceRequestAnimationFrameCallbacks):
(WebCore::Document::windowScreenDidChange):
(WebCore::Document::updateIntersectionObservations):
(WebCore::Document::scheduleForcedIntersectionObservationUpdate): Deleted.
(WebCore::Document::animationScheduler): Deleted.

  • dom/Document.h:

(WebCore::Document::numberOfIntersectionObservers const):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::serviceScriptedAnimations): Deleted.
(WebCore::ScriptedAnimationController::documentAnimationSchedulerDidFire): Deleted.

  • dom/ScriptedAnimationController.h:
  • page/FrameView.cpp:

(WebCore::FrameView::viewportContentsChanged):

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::observe):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::layoutIfNeeded):
(WebCore::Page::renderingUpdate):
(WebCore::Page::renderingUpdateScheduler):
(WebCore::Page::willDisplayPage): Deleted.
(WebCore::Page::addDocumentNeedingIntersectionObservationUpdate): Deleted.
(WebCore::Page::updateIntersectionObservations): Deleted.
(WebCore::Page::scheduleForcedIntersectionObservationUpdate): Deleted.

  • page/Page.h:
  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::didChangeViewExposedRect):
(WebCore::PageOverlayController::notifyFlushRequired):

  • page/ResourceUsageData.h:

Include header files that become missing because of adding
RenderingUpdateScheduler.cpp.

  • page/RenderingUpdateScheduler.cpp: Added.

(WebCore::RenderingUpdateScheduler::RenderingUpdateScheduler):
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
(WebCore::RenderingUpdateScheduler::startTimer):
(WebCore::RenderingUpdateScheduler::clearTimer):
(WebCore::RenderingUpdateScheduler::windowScreenDidChange):
(WebCore::RenderingUpdateScheduler::createDisplayRefreshMonitor const):
(WebCore::RenderingUpdateScheduler::displayRefreshFired):

  • page/RenderingUpdateScheduler.h: Added.

(WebCore::RenderingUpdateScheduler::create):

  • page/ios/ContentChangeObserver.h:

Include header files that become missing because of adding
RenderingUpdateScheduler.cpp.

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::scheduleLayerFlushNow):

Source/WebKit:

Replace the calls to Page::layoutIfNeeded() and willDisplayPage() by
a single call to Page::renderingUpdate(). This new function implements
"Update the rendering" step of the HTML Event Loop specification
<https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering>.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::updateBackingStoreState):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::layerFlushTimerFired):

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::display):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::layoutIfNeeded):
(WebKit::WebPage::renderingUpdate):
(WebKit::WebPage::willDisplayPage): Deleted.

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

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _viewWillDrawInternal]):
Call Page::renderingUpdate() which implements "Update the rendering"
step of the HTML Event Loop specification.

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::updateBackingStore):
(WebView::flushPendingGraphicsLayerChangesSoon):
(WebView::flushPendingGraphicsLayerChanges):
Call Page::renderingUpdate() which implements "Update the rendering"
step of the HTML Event Loop specification.

Source/WTF:

Add trace points for the page RenderingUpdate.

  • wtf/SystemTracing.h:

Tools:

Add trace points for the page RenderingUpdate.

  • Tracing/SystemTracePoints.plist:

LayoutTests:

There is a slight difference between the actual DRT and the expected DRT
due to animation timing change. But these two tests are not animating
correctly if they are opened in Safari with web animation turned on.

  • animations/animation-multiple-callbacks-timestamp.html:

Fix variable names used by an error message.

  • animations/no-style-recalc-during-accelerated-animation-expected.txt:
  • animations/no-style-recalc-during-accelerated-animation.html:

One extra styleReclc was incurred due to the document styleRecalcTimer.
I think this timer is not needed anymore. I will look at removing it in
a separate patch.

4:44 PM Changeset in webkit [242623] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Skip compilation of unused audio device files for Mac and iOS
https://bugs.webkit.org/show_bug.cgi?id=195412

Reviewed by Eric Carlson.

Stop compiling audio_device_mac.cc, audio_mixer_manager_mac.cc and voice_processing_audio_unit.mm
as unused in WebKit.

  • libwebrtc.xcodeproj/project.pbxproj:
4:40 PM Changeset in webkit [242622] by Nikita Vasilyev
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: overridden CSS property should have go-to button to jump to effective property
https://bugs.webkit.org/show_bug.cgi?id=185930
<rdar://problem/40506252>

Reviewed by Matt Baker.

Introduce a new experimental jump to effective property button. The button is a small arrow button
next to an overridden CSS property. Clicking the button scrolls to the effective CSS property and
selects it.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty):
(WI.CSSProperty.prototype.update):
(WI.CSSProperty.prototype.get overridingProperty):
(WI.CSSProperty.prototype.set overridingProperty):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype._markOverriddenProperties):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property.overridden .select-effective-property):
(.spreadsheet-style-declaration-editor .property.overridden:hover .select-effective-property,):
(.spreadsheet-style-declaration-editor .property.overridden:hover .select-effective-property::after,):
(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertySelectByProperty):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorSelectProperty):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionSelectProperty):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.updateStatus):

4:36 PM Changeset in webkit [242621] by Alan Bujtas
  • 21 edits
    10 moves
    1 add in trunk

[ContentChangeObserver] Add a setting to be able to turn content change observation on/off
https://bugs.webkit.org/show_bug.cgi?id=195353
<rdar://problem/48626394>

Reviewed by Simon Fraser.

Source/WebCore:

Move content observation tests to a dedicated directory.

Tests: fast/events/touch/ios/content-observation/click-instead-of-hover-simple.html

fast/events/touch/ios/content-observation/hover-when-style-change-is-async.html
fast/events/touch/ios/content-observation/stuck-with-hover-state.html
fast/events/touch/ios/content-observation/style-recalc-schedule-and-force-relalc.html
fast/events/touch/ios/content-observation/visibility-change-happens-at-the-second-timer.html

  • page/Settings.yaml:
  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::didInstallDOMTimer):
(WebCore::ContentChangeObserver::isNotifyContentChangeAllowed const):

  • page/ios/ContentChangeObserver.h:

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

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::resetToConsistentState):

Source/WebKit:

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

(WKPreferencesSetContentChangeObserverEnabled):
(WKPreferencesGetContentChangeObserverEnabled):

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

(-[WKPreferences _contentChangeObserverEnabled]):
(-[WKPreferences _setContentChangeObserverEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

Source/WebKitLegacy/mac:

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

(+[WebPreferences initialize]):
(-[WebPreferences contentChangeObserverEnabled]):
(-[WebPreferences setContentChangeObserverEnabled:]):

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

(-[WebView _preferencesChanged:]):

Tools:

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):

LayoutTests:

  • fast/events/touch/ios/content-observation/click-instead-of-hover-simple-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/click-instead-of-hover-simple-expected.txt.
  • fast/events/touch/ios/content-observation/click-instead-of-hover-simple.html: Renamed from LayoutTests/fast/events/touch/ios/click-instead-of-hover-simple.html.
  • fast/events/touch/ios/content-observation/hover-when-style-change-is-async-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/hover-when-style-change-is-async-expected.txt.
  • fast/events/touch/ios/content-observation/hover-when-style-change-is-async.html: Renamed from LayoutTests/fast/events/touch/ios/hover-when-style-change-is-async.html.
  • fast/events/touch/ios/content-observation/stuck-with-hover-state-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/stuck-with-hover-state-expected.txt.
  • fast/events/touch/ios/content-observation/stuck-with-hover-state.html: Renamed from LayoutTests/fast/events/touch/ios/stuck-with-hover-state.html.
  • fast/events/touch/ios/content-observation/style-recalc-schedule-and-force-relalc-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/style-recalc-schedule-and-force-relalc-expected.txt.
  • fast/events/touch/ios/content-observation/style-recalc-schedule-and-force-relalc.html: Renamed from LayoutTests/fast/events/touch/ios/style-recalc-schedule-and-force-relalc.html.
  • fast/events/touch/ios/content-observation/visibility-change-happens-at-the-second-timer-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/visibility-change-happens-at-the-second-timer-expected.txt.
  • fast/events/touch/ios/content-observation/visibility-change-happens-at-the-second-timer.html: Renamed from LayoutTests/fast/events/touch/ios/visibility-change-happens-at-the-second-timer.html.
4:23 PM Changeset in webkit [242620] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Make sure an empty host matches the internal representation "nullOrigin" in WebCore::RegistrableDomain::matches()
https://bugs.webkit.org/show_bug.cgi?id=195435

Reviewed by Brent Fulgham.

No new tests. Tests are currently failing and will pass again with
this patch.

WebCore::RegistrableDomain::matches() is a quick way to compare a
RegistrableDomain with a URL. Since RegistrableDomain represents the
empty host as "nullOrigin," a URL with an empty host needs to match
that representation in WebCore::RegistrableDomain::matches().
Failure to do so caused debug assertions in fast/ layout tests after
https://trac.webkit.org/changeset/242603/webkit.

  • platform/RegistrableDomain.h:

(WebCore::RegistrableDomain::matches const):

4:18 PM Changeset in webkit [242619] by Justin Fan
  • 5 edits in trunk/Source/WebCore

Unreviewed build fixes since MTLClampToBorderColor is only supported on macOS.

  • Modules/webgpu/GPUSamplerDescriptor.idl:
  • platform/graphics/gpu/GPUSamplerDescriptor.h:
  • platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm: Forgot include.
  • platform/graphics/gpu/cocoa/GPUSamplerMetal.mm:

(WebCore::mtlAddressModeForAddressMode):
(WebCore::tryCreateMtlSamplerState):
(WebCore::mtlBorderColorForBorderColor): Deleted.

4:10 PM Changeset in webkit [242618] by Kocsen Chung
  • 5 edits in tags/Safari-608.1.8/Source/WebCore

Cherry-pick r242601. rdar://problem/48518959

[iOS WK] REGRESSION (r242132): Fixed position banners flicker and move when scrolling (Apple, Tesla, YouTube, Reddit)
https://bugs.webkit.org/show_bug.cgi?id=195396
rdar://problem/48518959

Reviewed by Antti Koivisto.

r242132 introduced two issues that contributed to jumpiness of position:fixed layers when scrolling.

First, ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling() would early return if the scroll position
hadn't changed. It also needs to check the supplied layoutViewport (if any), but in some cases running the
notifyRelatedNodesAfterScrollPositionChange() code is necessary even without a scroll position change:
if the web process has committed new scrolling tree state (e.g. with new fixed constraints) since
the last call, we have to run the layer positioning code to have fixed layers re-adjust their position relative
to the root. This was the primary bug fix.

Secondly, a layer tree commit can give ScrollingTreeFrameScrollingNode a new layout viewport, but we need to
adjust this by the scrolling tree's current scroll position in case it gets used before the next scroll.

Currently no way to test this, as it's very timing-dependent.

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp: (WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren): (WebCore::ScrollingTreeFrameScrollingNode::scrollPositionAndLayoutViewportMatch):
  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::scrollPositionAndLayoutViewportMatch): (WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):
  • page/scrolling/ScrollingTreeScrollingNode.h:

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

3:50 PM Changeset in webkit [242617] by Ross Kirsling
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
3:30 PM Changeset in webkit [242616] by aestes@apple.com
  • 14 edits
    6 adds in trunk/Source

[Apple Pay] Untangle PKPaymentAuthorizationViewController from WebPaymentCoordinatorProxy
https://bugs.webkit.org/show_bug.cgi?id=195349
<rdar://problem/48625510>

Reviewed by Alex Christensen.

Source/WebCore/PAL:

Moved soft-linking of PKPaymentErrorDomain from WebPaymentCoordinatorProxy to here and used
a more descriptive platform macro.

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:

Source/WebKit:

Introduced PaymentAuthorizationPresenter and WKPaymentAuthorizationDelegate to encapsulate
PKPaymentAuthorizationViewController and its delegate. Taught WebPaymentCoordinatorProxy to
interact with PaymentAuthorizationPresenter rather than PKPAVC directly.

These changes will allow us to swap out PKPaymentAuthorizationViewController with PKPaymentAuthorizationController in a follow-on patch.

  • Platform/cocoa/PaymentAuthorizationPresenter.h: Added. Defined the abstract interface for

payment authorization presenters that use PKPA(V)C.

  • Platform/cocoa/PaymentAuthorizationPresenter.mm: Added.

(WebKit::toPKPaymentAuthorizationStatus): Moved from WebPaymentCoordinatorProxyCocoa.mm.
(WebKit::toPKPaymentErrorCode): Ditto.
(WebKit::toNSError): Ditto.
(WebKit::toNSErrors): Ditto.
(WebKit::toPKShippingMethods): Ditto.
(WebKit::PaymentAuthorizationPresenter::completeMerchantValidation): Added. Implements the
logic previously in WebPaymentCoordinatorProxy::platformCompleteMerchantValidation.
(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection): Ditto for
WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection.
(WebKit::PaymentAuthorizationPresenter::completePaymentSession): Ditto for
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection): Ditto for
WebPaymentCoordinatorProxy::platformCompletePaymentSession.
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection): Ditto for
WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection.

  • Platform/cocoa/PaymentAuthorizationViewController.h: Added. Defined a subclass of PaymentAuthorizationPresenter for PKPaymentAuthorizationViewController.
  • Platform/cocoa/PaymentAuthorizationViewController.mm: Added.

(-[WKPaymentAuthorizationViewControllerDelegate initWithPresenter:]): Added a PKPAVC
delegate that's a subclass of WKPaymentAuthorizationDelegate.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewControllerDidFinish:]):
Called -[WKPaymentAuthorizationDelegate _didFinish].
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didAuthorizePayment:handler:]): Called
-[WKPaymentAuthorizationDelegate _didAuthorizePayment:completion:].
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingMethod:handler:]): Called
-[WKPaymentAuthorizationDelegate _didSelectShippingMethod:completion:].
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingContact:handler:]): Called
-[WKPaymentAuthorizationDelegate _didSelectShippingContact:completion:].
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectPaymentMethod:handler:]): Called
-[WKPaymentAuthorizationDelegate _didSelectPaymentMethod:completion:].
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:willFinishWithError:]):
Called -[WKPaymentAuthorizationDelegate _willFinishWithError:].
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didRequestMerchantSession:]): Called
-[WKPaymentAuthorizationDelegate _didRequestMerchantSession:].

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h: Added.
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm: Added.

(-[WKPaymentAuthorizationDelegate summaryItems]): Added a summaryItems getter.
(-[WKPaymentAuthorizationDelegate shippingMethods]): Ditto for shippingMethods.
(-[WKPaymentAuthorizationDelegate completeMerchantValidation:error:]): Called
_didRequestMerchantSessionCompletion then set it to nil.
(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]): Ditto for
_didSelectPaymentMethodCompletion.
(-[WKPaymentAuthorizationDelegate completePaymentSession:errors:didReachFinalState:]): Ditto
for _didAuthorizePaymentCompletion.
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:summaryItems:shippingMethods:errors:]):
Ditto for _didSelectShippingContactCompletion.
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]): Ditto for
_didSelectShippingMethodCompletion.
(-[WKPaymentAuthorizationDelegate invalidate]): If there's an outstanding authorization
callback, called -completePaymentSession:errors:didReachFinalState: with a state of
PKPaymentAuthorizationStatusFailure.
(-[WKPaymentAuthorizationDelegate _initWithPresenter:]):
(-[WKPaymentAuthorizationDelegate _didAuthorizePayment:completion:]): Added. Implements the
logic previously in WKPaymentAuthorizationViewControllerDelegate.
(-[WKPaymentAuthorizationDelegate _didFinish]): Ditto.
(-[WKPaymentAuthorizationDelegate _didRequestMerchantSession:]): Ditto.
(-[WKPaymentAuthorizationDelegate _didSelectPaymentMethod:completion:]): Ditto.
(-[WKPaymentAuthorizationDelegate _didSelectShippingContact:completion:]): Ditto.
(toShippingMethod): Moved from WebPaymentCoordinatorProxyCocoa.mm.
(-[WKPaymentAuthorizationDelegate _didSelectShippingMethod:completion:]): Added. Implements
the logic previously in WKPaymentAuthorizationViewControllerDelegate.
(-[WKPaymentAuthorizationDelegate _willFinishWithError:]): Ditto.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::presenterWillValidateMerchant): To conform to
PaymentAuthorizationPresenter::Client, renamed from validateMerchant.
(WebKit::WebPaymentCoordinatorProxy::presenterDidAuthorizePayment): Renamed from
didAuthorizePayment.
(WebKit::WebPaymentCoordinatorProxy::presenterDidFinish): Moved logic here that previously
existed in WKPaymentAuthorizationViewControllerDelegate.
(WebKit::WebPaymentCoordinatorProxy::presenterDidSelectShippingMethod): Renamed from
didSelectShippingMethod.
(WebKit::WebPaymentCoordinatorProxy::presenterDidSelectShippingContact): Renamed from
didSelectShippingContact.
(WebKit::WebPaymentCoordinatorProxy::presenterDidSelectPaymentMethod): Renamed from
didSelectPaymentMethod.
(WebKit::WebPaymentCoordinatorProxy::validateMerchant): Renamed to
presenterWillValidateMerchant.
(WebKit::WebPaymentCoordinatorProxy::didAuthorizePayment): Renamed to
presenterDidAuthorizePayment.
(WebKit::WebPaymentCoordinatorProxy::didSelectShippingMethod): Renamed to
presenterDidSelectShippingMethod.
(WebKit::WebPaymentCoordinatorProxy::didSelectShippingContact): Renamed to
presenterDidSelectShippingContact.
(WebKit::WebPaymentCoordinatorProxy::didSelectPaymentMethod): Renamed to
didSelectPaymentMethod.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h: Changed WebPaymentCoordinatorProxy to

subclass PaymentAuthorizationPresenter::Client.

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: Removed WKPaymentAuthorizationViewControllerDelegate interface and declared some helper functions

needed by PaymentAuthorizationPresenter.

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKPaymentSummaryItemType): Removed static keyword.
(WebKit::toDecimalNumber): Ditto.
(WebKit::toPKPaymentSummaryItem): Ditto.
(WebKit::toPKPaymentSummaryItems): Ditto.
(WebKit::toPKShippingMethod): Ditto.
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): Changed to call
m_authorizationPresenter.
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession): Ditto.
(WebKit::WebPaymentCoordinatorProxy::platformCompleteMerchantValidation): Ditto.
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection): Ditto.
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection): Ditto.
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection): Ditto.
(-[WKPaymentAuthorizationViewControllerDelegate initWithPaymentCoordinatorProxy:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate invalidate]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:willFinishWithError:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didRequestMerchantSession:]): Deleted.
(toShippingMethod): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didAuthorizePayment:handler:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectPaymentMethod:handler:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingMethod:handler:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingContact:handler:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didAuthorizePayment:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingMethod:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectPaymentMethod:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingContact:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewControllerDidFinish:]): Deleted.
(WebKit::toPKPaymentAuthorizationStatus): Moved to PaymentAuthorizationPresenter.mm.
(WebKit::toPKPaymentErrorCode): Ditto.
(WebKit::toNSError): Ditto.
(WebKit::toNSErrors): Ditto.

  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): Changed to present a
PaymentAuthorizationPresenter rather than a PKPAVC.
(WebKit::WebPaymentCoordinatorProxy::hidePaymentUI): Changed to dismiss a
PaymentAuthorizationPresenter rather than a PKPAVC.

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): Ditto.
(WebKit::WebPaymentCoordinatorProxy::hidePaymentUI): Ditto.

  • SourcesCocoa.txt:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::paymentCoordinatorAuthorizationPresenter): Added. Returns a new
PaymentAuthorizationViewController.

  • WebKit.xcodeproj/project.pbxproj:
3:03 PM Changeset in webkit [242615] by Justin Fan
  • 30 edits
    6 copies
    1 add in trunk

[Web GPU] GPUSampler implementation
https://bugs.webkit.org/show_bug.cgi?id=195427
<rdar://problem/48686011>

Reviewed by Dean Jackson.

Source/WebCore:

Implement ability to create GPUSamplers and use them as pipeline resource bindings.

Test: texture-triangle-strip.html updated.

Add symbols to project:

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

GPUSampler creation:

  • Modules/webgpu/GPUSamplerDescriptor.idl: Added.
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createSampler const): Added.

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDevice.idl:
  • Modules/webgpu/WebGPUSampler.cpp: Added.

(WebCore::WebGPUSampler::create):
(WebCore::WebGPUSampler::WebGPUSampler):

  • Modules/webgpu/WebGPUSampler.h: Added.

(WebCore::WebGPUSampler::sampler const):

  • Modules/webgpu/WebGPUSampler.idl: Added.
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateSampler const): Added.

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/GPUSampler.h: Added.

(WebCore::GPUSampler::platformSampler const):

  • platform/graphics/gpu/GPUSamplerDescriptor.h: Added.
  • platform/graphics/gpu/cocoa/GPUSamplerMetal.mm: Added.

(WebCore::mtlAddressModeForAddressMode):
(WebCore::mtlBorderColorForBorderColor):
(WebCore::mtlMinMagFilterForFilterMode):
(WebCore::mtlMipFilterForFilterMode):
(WebCore::tryCreateMtlSamplerState):
(WebCore::GPUSampler::tryCreate):
(WebCore::GPUSampler::GPUSampler):

Move GPUCompareFunction to Utils for shared use.

  • platform/graphics/gpu/GPUCompareFunction.h:
  • platform/graphics/gpu/GPUUtils.h:
  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::tryCreateMtlDepthStencilState):
(WebCore::validateAndConvertDepthCompareFunctionToMtl): Deleted.

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

(WebCore::platformTextureFormatForGPUTextureFormat):
(WebCore::platformCompareFunctionForGPUCompareFunction):

Expand bind groups to accept GPUSamplers:

  • Modules/webgpu/WebGPUBindGroupBinding.h:
  • Modules/webgpu/WebGPUBindGroupBinding.idl:
  • Modules/webgpu/WebGPUBindGroupDescriptor.cpp:

(WebCore::WebGPUBindGroupDescriptor::asGPUBindGroupDescriptor const):

  • platform/graphics/gpu/GPUBindGroupBinding.h:
  • platform/graphics/gpu/GPUProgrammablePassEncoder.h:
  • platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:

(WebCore::GPUProgrammablePassEncoder::setBindGroup):
(WebCore::GPUProgrammablePassEncoder::setResourceAsBufferOnEncoder):
(WebCore::GPUProgrammablePassEncoder::setResourceAsSamplerOnEncoder): Added.
(WebCore::GPUProgrammablePassEncoder::setResourceAsTextureOnEncoder):

Misc:

  • Modules/webgpu/WebGPUTexture.cpp: Missing includes.
  • Modules/webgpu/WebGPUTexture.h:
  • Modules/webgpu/WebGPUSwapChain.cpp: Removed extra include.

LayoutTests:

Update texture-triangle-strip to use a GPUSampler provided through bindings instead of creating one in shader.

  • webgpu/texture-triangle-strip.html:
3:01 PM Changeset in webkit [242614] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Follow up refactoring in try-finally code after r242591.
https://bugs.webkit.org/show_bug.cgi?id=195428

Reviewed by Saam Barati.

  1. Added some comments in emitFinallyCompletion() to describe each completion case.
  2. Converted CatchEntry into a struct.
  3. Renamed variable hasBreaksOrContinuesNotCoveredByJumps to hasBreaksOrContinuesThatEscapeCurrentFinally to be more clear about its purpose.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::emitOutOfLineExceptionHandler):
(JSC::BytecodeGenerator::emitFinallyCompletion):

  • bytecompiler/BytecodeGenerator.h:
2:41 PM Changeset in webkit [242613] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

CompactVariableMap::Handle's copy operator= leaks the previous data
https://bugs.webkit.org/show_bug.cgi?id=195398

Reviewed by Yusuke Suzuki.

The copy constructor was just assigning |this| to the new value,
forgetting to decrement the ref count of the thing pointed to by
the |this| handle. Based on Yusuke's suggestion, this patch refactors
the move constructor, move operator=, and copy operator= to use the
swap() primitive and the copy constructor primitive.

  • parser/VariableEnvironment.cpp:

(JSC::CompactVariableMap::Handle::Handle):
(JSC::CompactVariableMap::Handle::swap):
(JSC::CompactVariableMap::Handle::operator=): Deleted.

  • parser/VariableEnvironment.h:

(JSC::CompactVariableMap::Handle::Handle):
(JSC::CompactVariableMap::Handle::operator=):

2:17 PM Changeset in webkit [242612] by youenn@apple.com
  • 4 edits
    2 adds in trunk/LayoutTests

REGRESSION: ( r231040 ) Layout Test http/tests/security/xss-DENIED-xsl-external-entity.xml is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189724
<rdar://problem/48422520>

Reviewed by Geoffrey Garen.

Copy the flaky test into a new test for which we use DumpJSConsoleLogInStdErr.
This should make the new test no longer flaky in WK1.
Run this new test for WK1 only and run the original test for WK2 only.

  • TestExpectations:
  • http/tests/security/xss-DENIED-xsl-external-entity-no-logging-expected.txt: Added.
  • http/tests/security/xss-DENIED-xsl-external-entity-no-logging.xml: Added.
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/wk2/TestExpectations:
1:50 PM Changeset in webkit [242611] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r242580) WebKit.NetworkProcessCrashWithPendingConnection API is crashing on iOS debug
https://bugs.webkit.org/show_bug.cgi?id=195416

Reviewed by Antti Koivisto.

Drop ASSERT_NOT_REACHED() in WebPage::didCompletePageTransition() when the tree is still frozen due to
LayerTreeFreezeReason::ProcessSuspended. As demonstrated by this API test, nothing prevents a load from
completing and WebPage::didCompletePageTransition() to get called *after* WebProcess::prepareToSuspend()
has been called. From the logging during the test, I can tell that WebProcess::processDidResume() gets
called later on and the LayerTreeFreezeReason::ProcessSuspended freezing reason gets dropped, as expected.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCompletePageTransition):

1:49 PM Changeset in webkit [242610] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

Clean up / simplify ProcessAssertion code
https://bugs.webkit.org/show_bug.cgi?id=195394

Reviewed by Geoffrey Garen.

Clean up / simplify ProcessAssertion code to facilitate its maintenance and make it
less error-prone.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):

  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::setState):

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::Client::~Client):
(WebKit::ProcessAssertion::setClient):
(WebKit::ProcessAssertion::client):

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::didConnectToProcess):

  • UIProcess/ProcessThrottler.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager dealloc]):
(-[WKProcessAssertionBackgroundTaskManager addAssertionNeedingBackgroundTask:]):
(-[WKProcessAssertionBackgroundTaskManager removeAssertionNeedingBackgroundTask:]):
(-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::processAssertionWasInvalidated):
(WebKit::ProcessAssertion::setState):
(WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount):
(WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):
(WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion):
(WebKit::ProcessAndUIAssertion::processAssertionWasInvalidated):
(WebKit::ProcessAndUIAssertion::setState):
(WebKit::ProcessAndUIAssertion::uiAssertionWillExpireImminently):

1:46 PM SVG properties edited by Said Abou-Hallawa
(diff)
1:44 PM Changeset in webkit [242609] by commit-queue@webkit.org
  • 4 edits in trunk/Source

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

Broke Microsoft Visio. (Requested by dydz on #webkit).

Reverted changeset:

"[iOS] Turn mouse event simulation on by default"
https://bugs.webkit.org/show_bug.cgi?id=195218
https://trac.webkit.org/changeset/242297

1:43 PM Changeset in webkit [242608] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Crash in com.apple.WebCore: WebCore::IDBTransaction::pendingOperationTimerFired + 72
https://bugs.webkit.org/show_bug.cgi?id=195214
<rdar://problem/48461116>

Reviewed by Geoffrey Garen.

When IDBTransaction is ready to commit, a commit operation would be schedule to
m_pendingTransactionOperationQueue. If connection to IDBServer is lost, pending operations are moved to
m_transactionOperationsInProgressQueue and will be completed with TransactionOperation::doComplete. doComplete
executes complete function of the operation, clears the complete function, and then removes the operation from
m_transactionOperationsInProgressQueue. In doComplete, we do early return when complete function is null,
since the doComplete could be invoked twice due to the race conditions between receiving "operation complete"
message from server and client-side abort.

However, commit operation does not have a complete function because it should be the last operation of
transaction and it gets removed from queue in its perform function. A commit operation would not be removed from
m_transactionOperationsInProgressQueue because of the early return. It would be removed from
m_transactionOperationMap, which may hold the last ref to the commit operation, in
IDBTransaction::connectionClosedFromServer. In this case, when pendingOperationTimerFired is called later, the
commit operation left in m_transactionOperationsInProgressQueue would be used and found to be freed. We should
not use null check of complete function to decide whether an operation is completed.

  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::TransactionOperation::doComplete):

1:42 PM SVG properties edited by Said Abou-Hallawa
(diff)
1:41 PM SVG properties edited by Said Abou-Hallawa
(diff)
1:35 PM Changeset in webkit [242607] by Kocsen Chung
  • 4 edits in tags/Safari-608.1.8/Source

Revert r242297. rdar://problem/48686655

1:34 PM SVG properties edited by Said Abou-Hallawa
(diff)
1:25 PM SVG properties edited by Said Abou-Hallawa
(diff)
12:40 PM Changeset in webkit [242606] by Devin Rousso
  • 5 edits in trunk

Web Inspector: Protocol: add type checking when commands are called via invoke
https://bugs.webkit.org/show_bug.cgi?id=195310
<rdar://problem/48588679>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackend.Command.prototype.invoke.deliverFailure): Added.
(InspectorBackend.Command.prototype.invoke):
(InspectorBackend.Command.prototype._invokeWithArguments):

LayoutTests:

  • inspector/protocol/inspector-backend-invocation-return-value.html:
  • inspector/protocol/inspector-backend-invocation-return-value-expected.txt:
12:19 PM SVG properties created by Said Abou-Hallawa
12:18 PM WikiStart edited by Said Abou-Hallawa
(diff)
12:17 PM WikiStart edited by Said Abou-Hallawa
(diff)
11:43 AM Changeset in webkit [242605] by Tadeu Zagallo
  • 5 edits in trunk/Source/JavaScriptCore

Lazily decode cached bytecode
https://bugs.webkit.org/show_bug.cgi?id=194810

Reviewed by Saam Barati.

Like lazy parsing, we should pause at code block boundaries. Instead
of always eagerly decoding UnlinkedFunctionExecutable's UnlinkedCodeBlocks,
we store their offsets in the executable and lazily decode them on the next
call to unlinkedCodeBlockFor.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::~UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
(JSC::UnlinkedFunctionExecutable::decodeCachedCodeBlocks):

  • bytecode/UnlinkedFunctionExecutable.h:
  • runtime/CachedTypes.cpp:

(JSC::Decoder::Decoder):
(JSC::Decoder::~Decoder):
(JSC::Decoder::create):
(JSC::Decoder::offsetOf):
(JSC::Decoder::cacheOffset):
(JSC::Decoder::ptrForOffsetFromBase):
(JSC::Decoder::handleForEnvironment const):
(JSC::Decoder::setHandleForEnvironment):
(JSC::Decoder::addFinalizer):
(JSC::VariableLengthObject::isEmpty const):
(JSC::CachedWriteBarrier::isEmpty const):
(JSC::CachedFunctionExecutable::unlinkedCodeBlockForCall const):
(JSC::CachedFunctionExecutable::unlinkedCodeBlockForConstruct const):
(JSC::CachedFunctionExecutable::decode const):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::decodeCodeBlockImpl):
(JSC::isCachedBytecodeStillValid):
(JSC::decodeFunctionCodeBlock):

  • runtime/CachedTypes.h:

(JSC::Decoder::vm):

11:24 AM Changeset in webkit [242604] by Devin Rousso
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r242118): WI.ScopeBar missing background
https://bugs.webkit.org/show_bug.cgi?id=195299

Reviewed by Joseph Pecoraro.

Rework the way color, background-color, and border-color are set for WI.ScopeBar to
use CSS variables instead. Divides the variables into three categories:

  • default: these are the values that the WI.ScopeBar would use normally
  • override: these are values that take precidence over the default (e.g. set by other elements)
    • falls back to default when no value is set
  • actual: this is the resulting value that will be used when displaying
    • this way, other elements can "mirror" the styling of the WI.ScopeBar
  • UserInterface/Views/ScopeBar.css:

(.scope-bar):
(.scope-bar > li):
(.scope-bar > li::before):
(.scope-bar > li:matches(.selected, :hover)):
(.scope-bar > li:not(.selected):hover::after):
(.scope-bar > li.selected:active::after):
(.scope-bar > li.multiple > select):
(body[dir=ltr] .scope-bar > li.multiple > select):
(body[dir=rtl] .scope-bar > li.multiple > select):
(.scope-bar > li.multiple:not(.selected) > select): Added.
(.scope-bar > li.multiple > .arrows):
(.scope-bar > li::before): Deleted.
(.scope-bar.default-item-selected > li.multiple.selected::before): Deleted.
(.scope-bar > li:matches(.selected, :hover)::before): Deleted.
(.scope-bar > li.selected:active::before): Deleted.
(.scope-bar > li.multiple.selected > select): Deleted.
(body[dir=ltr] .scope-bar > li.multiple > .arrows): Deleted.
(body[dir=rtl] .scope-bar > li.multiple > .arrows): Deleted.
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows): Deleted.
(.scope-bar > li:matches(.selected, :active)): Deleted.
(@media (prefers-color-scheme: dark)): Deleted.
Switch to using ::after since ::before is more commonly used.

  • UserInterface/Views/MultipleScopeBarItem.js:

(WI.MultipleScopeBarItem.prototype._handleMouseDown):
Drive-by: fix the <select> alignment by re-firing the "mousedown" event on it.

  • UserInterface/Views/AuditTestGroupContentView.js:

(WI.AuditTestGroupContentView.prototype.layout):

  • UserInterface/Views/AuditTestGroupContentView.css:

(.content-view.audit-test-group > header > nav > .scope-bar > li):
(.content-view.audit-test-group > header > nav > .scope-bar > li:not(:hover, .selected)):
(.content-view.audit-test-group > header > nav > .scope-bar > li > img): Added.
(.content-view.audit-test-group > header > nav > .scope-bar > li.pass > img): Added.
(.content-view.audit-test-group > header > nav > .scope-bar > li.warn > img): Added.
(.content-view.audit-test-group > header > nav > .scope-bar > li.fail > img): Added.
(.content-view.audit-test-group > header > nav > .scope-bar > li.error > img): Added.
(.content-view.audit-test-group > header > nav > .scope-bar > li.unsupported > img): Added.
(.content-view.audit-test-group > section > .audit-test-case:first-child, .content-view.audit-test-group > section > .audit-test-case.filtered ~ .audit-test-case:not(.filtered), .content-view.audit-test-group > section > .audit-test-group + .audit-test-case, .content-view.audit-test-group > section > .audit-test-case + .audit-test-group): Added.
(.content-view.audit-test-group > section > .audit-test-case:not(.filtered) ~ .audit-test-case:not(.filtered)): Added.
(.content-view.audit-test-group > header > nav > .scope-bar > li::before): Deleted.
(.content-view.audit-test-group > header > nav > .scope-bar > li.pass::before): Deleted.
(.content-view.audit-test-group > header > nav > .scope-bar > li.warn::before): Deleted.
(.content-view.audit-test-group > header > nav > .scope-bar > li.fail::before): Deleted.
(.content-view.audit-test-group > header > nav > .scope-bar > li.error::before): Deleted.
(.content-view.audit-test-group > header > nav > .scope-bar > li.unsupported::before): Deleted.
(.content-view.audit-test-group > section > .audit-test-case:first-child, .content-view.audit-test-group > section > .audit-test-group + .audit-test-case, .content-view.audit-test-group > section > .audit-test-case + .audit-test-group): Deleted.
Replace the ::before image with an actual <img> now that the WI.ScopeBar itself uses
a pseudo-element for the background styling.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView):

  • UserInterface/Views/LogContentView.css:

(.log-scope-bar > li:not(.unread) > .indicator): Added.
(.log-scope-bar > li.unread > .indicator): Added.
(.log-scope-bar > li.unread:hover > .indicator): Added.
(.log-scope-bar > li.unread.errors > .indicator): Added.
(.log-scope-bar > li.unread.warnings > .indicator): Added.
(.log-scope-bar > li.unread.logs > .indicator): Added.
(.log-scope-bar > li.unread::before): Deleted.
(body[dir=ltr] .log-scope-bar > li.unread::before): Deleted.
(body[dir=rtl] .log-scope-bar > li.unread::before): Deleted.
(.log-scope-bar > li.unread:hover::before): Deleted.
(.log-scope-bar > li.unread.errors::before): Deleted.
(.log-scope-bar > li.unread.warnings::before): Deleted.
(.log-scope-bar > li.unread.logs::before): Deleted.
Replace the ::before unread indicator with an actual <div> now that the WI.ScopeBar
itself uses a pseudo-element for the background styling.

  • UserInterface/Views/TimelineRecordingContentView.css:

(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected):
(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple): Deleted.
(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows): Deleted.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
Drive-by: fix typo.

11:16 AM Changeset in webkit [242603] by wilander@apple.com
  • 20 edits
    2 adds in trunk

Resource Load Statistics: Log first-party navigations with link decoration
https://bugs.webkit.org/show_bug.cgi?id=195301
<rdar://problem/48569971>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html

This patch adds two new members to WebCore::ResourceLoadStatistics:

  • topFrameLinkDecorationsFrom, a set of domains
  • gotLinkDecorationFromPrevalentResource, a boolean state
  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::encode const):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::ResourceLoadStatistics::merge):

  • loader/ResourceLoadStatistics.h:

Source/WebKit:

This patch adds a call to the network process' resource load statistics to
log cross-site navigations with link decoration. The logging checks if the
source of the navigation is a prevalent resource and if so, sets the
appropriate flag for the destination.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::createSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::logSubresourceRedirect):
(WebKit::ResourceLoadStatisticsDatabaseStore::logCrossSiteLoadWithLinkDecoration):

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

(WebKit::ResourceLoadStatisticsMemoryStore::logCrossSiteLoadWithLinkDecoration):

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

(WebKit::WebResourceLoadStatisticsStore::logCrossSiteLoadWithLinkDecoration):

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

(WebKit::NetworkProcess::committedCrossSiteLoadWithLinkDecoration):

This now receives a completion handler. This is in preparation for
test cases where we need to log such an event and wait for it to
finish before continuing.

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

(WebKit::NetworkProcessProxy::committedCrossSiteLoadWithLinkDecoration):

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

(WebKit::WebPageProxy::didCommitLoadForFrame):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::committedCrossSiteLoadWithLinkDecoration):

  • UIProcess/WebProcessPool.h:

LayoutTests:

  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt: Added.
  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html: Added.
11:11 AM Changeset in webkit [242602] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS: there should be a way to inline-replace a variable with it's value
https://bugs.webkit.org/show_bug.cgi?id=195335

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch):
(WI.InlineSwatch.prototype.didDismissPopover):
(WI.InlineSwatch.prototype._swatchElementClicked):
(WI.InlineSwatch.prototype._swatchElementClicked.optionsForType): Added.
Shift-clicking a variable swatch replaces the text with the variable's value.
Drive-by: try to create a readonly swatch for the variable's value (e.g. a color indicator).

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
If the value of a variable swatch changes, re-render the value.

  • UserInterface/Views/CodeMirrorTextMarkers.js:

(createCodeMirrorTextMarkers):
(createCodeMirrorColorTextMarkers):
(createCodeMirrorGradientTextMarkers):
(createCodeMirrorBezierTextMarkers):
(createCodeMirrorSpringTextMarkers):
Refactor function parameters for more flexibility.

  • Localizations/en.lproj/localizedStrings.js:
10:03 AM Changeset in webkit [242601] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

[iOS WK] REGRESSION (r242132): Fixed position banners flicker and move when scrolling (Apple, Tesla, YouTube, Reddit)
https://bugs.webkit.org/show_bug.cgi?id=195396
rdar://problem/48518959

Reviewed by Antti Koivisto.

r242132 introduced two issues that contributed to jumpiness of position:fixed layers when scrolling.

First, ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling() would early return if the scroll position
hadn't changed. It also needs to check the supplied layoutViewport (if any), but in some cases running the
notifyRelatedNodesAfterScrollPositionChange() code is necessary even without a scroll position change:
if the web process has committed new scrolling tree state (e.g. with new fixed constraints) since
the last call, we have to run the layer positioning code to have fixed layers re-adjust their position relative
to the root. This was the primary bug fix.

Secondly, a layer tree commit can give ScrollingTreeFrameScrollingNode a new layout viewport, but we need to
adjust this by the scrolling tree's current scroll position in case it gets used before the next scroll.

Currently no way to test this, as it's very timing-dependent.

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNode::scrollPositionAndLayoutViewportMatch):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollPositionAndLayoutViewportMatch):
(WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):

  • page/scrolling/ScrollingTreeScrollingNode.h:
9:46 AM Changeset in webkit [242600] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Disable permissive call logging in sandbox
https://bugs.webkit.org/show_bug.cgi?id=195288
<rdar://problem/47683804>

Reviewed by Brent Fulgham.

As on macOS, we should enable strict call filtering in sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:40 AM Changeset in webkit [242599] by youenn@apple.com
  • 13 edits
    3 adds in trunk/Source

Introduce a quota manager for Cache API/Service Worker/IDB storage
https://bugs.webkit.org/show_bug.cgi?id=195283

Reviewed by Chris Dumez.

Source/WebCore:

Introduce a generic quota manager and quota users to be used in Network Process.
Quota manager/users are scoped by client origin.
Quota manager is used to check for quota by an entity wanting to execute a storage task of a given taskSize.
Quota manager will check the current space used by all its quota users.
If the size + taskSize is above quota, it will call a function to try extend the quota.
In the meantime, the task (and all tasks that may be added) are queued.

Once the new quota is received, the quota manager will either allow or disallow the first task in the queue.
The quota manager will try to execute as many tasks as possible with the provided quota.
If some tasks are remaining and quota limit is hit, the quota manager will compute the space needed for all remaining requests
and do another quota extension request.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/ClientOrigin.h:
  • storage/StorageQuotaManager.cpp: Added.

(WebCore::StorageQuotaManager::~StorageQuotaManager):
(WebCore::StorageQuotaManager::spaceUsage const):
(WebCore::StorageQuotaManager::requestSpace):
(WebCore::StorageQuotaManager::askForMoreSpace):
(WebCore::StorageQuotaManager::processPendingRequests):

  • storage/StorageQuotaManager.h: Added.

(WebCore::StorageQuotaManager::StorageQuotaManager):
(WebCore::StorageQuotaManager::addUser):
(WebCore::StorageQuotaManager::removeUser):

  • storage/StorageQuotaUser.h: Added.

Source/WebKit:

Remove quota handling from Cache API storage and use StorageQuotaManager/StorageQuotaUser.
CacheStorage::Caches becomes a quota user and has a StorageQuotaManager to check for space for any cache API write task.
NetworkProcess is responsible to manage the quota managers.
Quota managers will go through network process to ask UIProcess for quota extension.

Remove pending callback handling from CacheStorage since they are queued in QuotaManager now.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::~NetworkProcess):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::cacheStorageRootPath):
(WebKit::NetworkProcess::setCacheStorageParameters):
(WebKit::NetworkProcess::storageQuotaManager):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::from):
(WebKit::CacheStorage::Engine::Engine):
(WebKit::CacheStorage::Engine::readCachesFromDisk):

  • NetworkProcess/cache/CacheStorageEngine.h:
  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::put):

  • NetworkProcess/cache/CacheStorageEngineCache.h:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::Caches):
(WebKit::CacheStorage::Caches::~Caches):
(WebKit::CacheStorage::Caches::requestSpace):
(WebKit::CacheStorage::Caches::writeRecord):

  • NetworkProcess/cache/CacheStorageEngineCaches.h:
9:22 AM Changeset in webkit [242598] by wilander@apple.com
  • 29 edits
    3 adds in trunk

Resource Load Statistics: Make it possible to purge only script-accessible cookies
https://bugs.webkit.org/show_bug.cgi?id=195383
<rdar://problem/48570136>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/delete-script-accessible-cookies.html

This patch provides the ability to purge all script-accessible cookies while leaving
HttpOnly cookies in place.

  • loader/CookieJar.h:

Added boolean enum IncludeHttpOnlyCookies for use as function parameter.

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

(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

Support for the new IncludeHttpOnlyCookies flag.

  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

Stubbed out the new function and added a FIXME comment.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

Stubbed out the new function and added a FIXME comment.

Source/WebKit:

This patch provides the ability to purge all script-accessible cookies while leaving
HttpOnly cookies in place.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::removeDataRecords):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores):

Support for a new boolean flag on whether or not to include HttpOnly Cookies.

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

(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores):

Support for a new boolean flag on whether or not to include HttpOnly Cookies.

(WebKit::NetworkProcess::deleteCookiesForTesting):

Test infrastructure.

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

(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores):

Support for a new boolean flag on whether or not to include HttpOnly Cookies.

  • NetworkProcess/NetworkSession.h:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreStatisticsDeleteCookiesForTesting):

Test infrastructure.

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

(WebKit::NetworkProcessProxy::deleteCookiesForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::deleteCookiesForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

This patch adds test infrastructure to purge only script-accessible cookies,
including a new testRunner function called statisticsDeleteCookiesForHost().git a

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

(WTR::TestRunner::statisticsDeleteCookiesForHost):

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

(WTR::TestController::statisticsDeleteCookiesForHost):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/cookies/resources/set-http-only-cookie.php: Added.
  • http/tests/resourceLoadStatistics/delete-script-accessible-cookies-expected.txt: Added.
  • http/tests/resourceLoadStatistics/delete-script-accessible-cookies.html: Added.
9:17 AM Changeset in webkit [242597] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

REGRESSION(r242364): [WPE] Do not stop the compositing run loop update timer on suspend
https://bugs.webkit.org/show_bug.cgi?id=195410

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-07
Reviewed by Žan Doberšek.

Calling CompositingRunLoop::stopUpdates() on suspend is leaving the threaded compositor in an inconsistent
state, failing to resume and stopping the updates forever. This is causing timeouts in WPE layout tests. Instead
of calling stopUpdates(), a new suspend() is called, that stops the update timer, without changing the current
updae tha compositing state. A new method resume() is also added to schedule an update if needed.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::suspend): Set state as suspended and stop the update timer.
(WebKit::CompositingRunLoop::resume): Set state as not suspended and start the update timer if it was scheduled
while suspended.
(WebKit::CompositingRunLoop::scheduleUpdate): Do not start the update timer when suspended.
(WebKit::CompositingRunLoop::compositionCompleted): Ditto.
(WebKit::CompositingRunLoop::updateCompleted): Ditto.
(WebKit::CompositingRunLoop::updateTimerFired): Add an assert to ensure the update timer is not fired while suspended.

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

(WebKit::ThreadedCompositor::suspend): Call CompositingRunLoop::suspend() instead of stopUpdates().
(WebKit::ThreadedCompositor::resume): Call CompositingRunLoop::resume().

2:16 AM Changeset in webkit [242596] by mark.lam@apple.com
  • 33 edits in trunk/Source

Exception is a JSCell, not a JSObject.
https://bugs.webkit.org/show_bug.cgi?id=195392

Reviewed by Saam Barati.

Source/JavaScriptCore:

Exception is a VM implementation construct to carry a stack trace for the point
where it is thrown from. As a reminder, an Exception is needed because:

  1. JS code can throw primitives as well that are non-cells.
  2. Error objects capture the stack trace at the point where they are constructed, which is not always the same as the point where they are thrown (if they are thrown).

Hence, Exception should not be visible to JS code, and therefore should not be a
JSObject. Hence, it should not inherit from JSDestructibleObject.

This patch changes the following:

  1. Exception now inherits directly from JSCell instead.
  1. Places where we return an Exception masquerading as a JSObject* are now updated to return a nullptr when we encounter an exception.
  1. We still return Exception* as JSValue or EncodedJSValue when we encounter an exception in functions that return JSValue or EncodedJSValue. This is because the number that implements the following pattern is too numerous:

return throw<Some Error>(...)

We'll leave these as is for now.

  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::prepareForExecution):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

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

(JSC::LLInt::setUpCall):

  • runtime/ConstructData.cpp:

(JSC::construct):

  • runtime/Error.cpp:

(JSC::throwConstructorCannotBeCalledAsFunctionTypeError):
(JSC::throwTypeError):
(JSC::throwSyntaxError):

  • runtime/Error.h:

(JSC::throwRangeError):

  • runtime/Exception.cpp:

(JSC::Exception::createStructure):

  • runtime/Exception.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::throwOutOfMemoryError):
(JSC::throwStackOverflowError):
(JSC::throwTerminatedExecutionException):

  • runtime/ExceptionHelpers.h:
  • runtime/FunctionConstructor.cpp:

(JSC::constructFunction):
(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):

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

(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):

  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/RegExpConstructor.cpp:

(JSC::regExpCreate):
(JSC::constructRegExp):

  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::prepareForExecutionImpl):

  • runtime/ScriptExecutable.h:
  • runtime/ThrowScope.cpp:

(JSC::ThrowScope::throwException):

  • runtime/ThrowScope.h:

(JSC::ThrowScope::throwException):
(JSC::throwException):

  • runtime/VM.cpp:

(JSC::VM::throwException):

  • runtime/VM.h:

Source/WebCore:

  • bridge/objc/objc_utility.h:
  • bridge/objc/objc_utility.mm:

(JSC::Bindings::throwError):

  • bridge/runtime_object.cpp:

(JSC::Bindings::RuntimeObject::throwInvalidAccessError):

  • bridge/runtime_object.h:

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::JSNPObject::throwInvalidAccessError):

  • WebProcess/Plugins/Netscape/JSNPObject.h:
1:28 AM Changeset in webkit [242595] by commit-queue@webkit.org
  • 93 edits
    14 copies
    2 moves
    230 adds
    1 delete in trunk/LayoutTests

Update WPT tests for embedded content
https://bugs.webkit.org/show_bug.cgi?id=194770

Patch by Frederic Wang <fwang@igalia.com> on 2019-03-07
Reviewed by Rob Buis.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/embedded-content/META.yml: Added.
  • web-platform-tests/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html: Added.
  • web-platform-tests/html/semantics/embedded-content/image-maps/image-map-processing-model/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/audio_loop_base-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/audio_loop_base.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute-redirect-on-load.https.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute.https.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute.https.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy.https.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy.https.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy.https.sub.html.headers: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-default-feature-policy.https.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-default-feature-policy.https.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-disabled-by-feature-policy.https.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-disabled-by-feature-policy.https.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-disabled-by-feature-policy.https.sub.html.headers: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-supported-by-feature-policy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-supported-by-feature-policy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-with-broken-track-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-with-broken-track.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/error-codes/error-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/error-codes/error.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/error-codes/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_canplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_canplay_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_loadstart.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_loadstart_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_order_canplay_canplaythrough.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_order_canplay_playing.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_order_loadedmetadata_loadeddata.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_order_loadstart_progress.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_pause.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_pause_noautoplay-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_pause_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_play.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_play_noautoplay-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_play_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_playing.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_playing_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_progress.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_progress_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_timeupdate.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/crossOrigin-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/crossOrigin.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/activeCues.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/addCue.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/removeCue.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/constructor-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/constructor.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackList/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TrackEvent/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/autoplay-overrides-preload.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-events-networkState-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-events-networkState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-removes-queued-error-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-removes-queued-error-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-candidate-insert-before-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-candidate-insert-before.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-candidate-moved-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-candidate-moved.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-candidate-remove-addEventListener.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-candidate-remove-no-listener-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-candidate-remove-no-listener.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-candidate-remove-onerror.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor-no-src-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor-no-src.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-audio-constructor.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-in-sync-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-in-sync-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-fragment-into-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-fragment-into-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-into-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-into-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-into-iframe-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-into-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-parent-into-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-parent-into-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-in-div-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-in-div.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-in-namespace-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-in-namespace.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-networkState-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-networkState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-not-in-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-not-in-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-load-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-load.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause-networkState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-pause.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-play-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-play.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document-networkState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-from-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-remove-src.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-in-namespace-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-in-namespace.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-networkState-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-networkState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src-not-in-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-set-src.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-control-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-control.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-br-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-br.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-source-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-source.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-text-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-text.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source-after-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source-after.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-text-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-text.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-remove-source-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-remove-source.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-remove-src-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-remove-src.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-source-media-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-source-media.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resources/delayed-broken-video.py: Added.

(main):

  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/w3c-import.log: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/location-of-the-media-resource/currentSrc-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/location-of-the-media-resource/currentSrc.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/location-of-the-media-resource/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/networkState_during_loadstart.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/networkState_during_progress-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/networkState_during_progress.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/currentTime-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/currentTime.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/paused_false_during_play.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/paused_true_during_pause-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/paused_true_during_pause.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document-networkState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/play-in-detached-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-hidden.optional.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_canplay.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_canplaythrough.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadeddata.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadedmetadata.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_playing.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-currentTime-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-currentTime.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-max-value-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-max-value.htm: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-negative-time-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-negative-time.htm: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/media-elements/user-interface/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/resources/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/svg/intrinsicsize/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-area-element/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-area-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-area-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-audio-element/audio_constructor-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-audio-element/audio_constructor.html:
  • web-platform-tests/html/semantics/embedded-content/the-audio-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/document-getters-return-null-for-cross-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/document-getters-return-null-for-cross-origin.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-frame-element/document-getters-return-null-for-cross-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-frame-element/document-getters-return-null-for-cross-origin.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-frame-element/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/content_document_changes_only_after_load_matures.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/document-getters-return-null-for-cross-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/document-getters-return-null-for-cross-origin.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allow-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allow.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-nosrc-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-nosrc.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_01-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_01.htm:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_remove_src-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_remove_src.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/src-repeated-in-ancestor.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/download_stash.py: Added.

(main):

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-checks-contentDocument.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_download_helper.js: Added.

(StreamDownloadFinishDelay):
(DownloadVerifyDelay):
(VerifyDownload):
(AssertDownloadSuccess):
(AssertDownloadFailure):

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/404-response-with-actual-image-data-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/404-response-with-actual-image-data.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/404-response-with-actual-image-data.py: Added.

(main):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/available-images-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/available-images-onload-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/available-images-onload.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/available-images.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-path-changes-svg.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-path-changes-svg.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-path-changes.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-picture-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-picture.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-svg.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-svg.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-with-quick-attach-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-with-quick-attach-svg.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-with-quick-attach-svg.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-with-quick-attach.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete.html:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/intrinsicsize/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/ismap/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/null-image-source-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/null-image-source.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-002-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-002.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/support/parse-a-sizes-attribute.js: Added.

(check):
(onload):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/support/sizes-iframed.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-iframed.sub.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/support/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/srcset-media-dynamic-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/srcset-media-dynamic.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-image-data/fail-to-resolve-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-image-data/fail-to-resolve.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-image-data/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-events.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-fallback-failed-cross-origin-navigation.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-fallback-failed-cross-origin-navigation.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-setcustomvalidity-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-setcustomvalidity.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsic_sizes-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsicsize/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log.

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative-expected.txt: Added.
  • tests-options.json:
12:41 AM Changeset in webkit [242594] by Devin Rousso
  • 10 edits in trunk/Source/WebCore

Web Inspector: Canvas: lazily create the agent
https://bugs.webkit.org/show_bug.cgi?id=195241

Reviewed by Joseph Pecoraro.

No functionality change.

  • html/canvas/CanvasRenderingContext.h:
  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::instances): Added.
(WebCore::CanvasRenderingContext::instancesMutex): Added.
(WebCore::CanvasRenderingContext::CanvasRenderingContext):
(WebCore::CanvasRenderingContext::~CanvasRenderingContext):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::instances): Added.
(WebCore::WebGLProgram::instancesMutex): Added.
(WebCore::WebGLProgram::WebGLProgram):
(WebCore::WebGLProgram::~WebGLProgram):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::~WebGLRenderingContextBase):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::createLazyAgents):

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

(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::disable):
(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext):
(WebCore::InspectorCanvasAgent::canvasDestroyed):
(WebCore::InspectorCanvasAgent::didCreateProgram):
(WebCore::InspectorCanvasAgent::willDeleteProgram):
(WebCore::InspectorCanvasAgent::bindCanvas): Added.
(WebCore::InspectorCanvasAgent::canvasDestroyedTimerFired):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didCreateCanvasRenderingContext):
(WebCore::InspectorInstrumentation::didCreateProgram):
(WebCore::InspectorInstrumentation::willDeleteProgram):

12:06 AM Changeset in webkit [242593] by commit-queue@webkit.org
  • 10 edits
    1 delete in trunk

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

breaks layout tests in all configurations (Requested by
zdobersek on #webkit).

Reverted changeset:

"[WPE] Enable web process sandbox"
https://bugs.webkit.org/show_bug.cgi?id=195169
https://trac.webkit.org/changeset/242354

Mar 6, 2019:

11:31 PM Changeset in webkit [242592] by Ross Kirsling
  • 55 edits
    1 copy in trunk

[Win] Remove -DUCHAR_TYPE=wchar_t stopgap and learn to live with char16_t.
https://bugs.webkit.org/show_bug.cgi?id=195346

Reviewed by Fujii Hironori.

.:

  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/OptionsWin.cmake:

Stop compiling with -DUCHAR_TYPE=wchar_t.

Source/JavaScriptCore:

  • jsc.cpp:

(currentWorkingDirectory):
(fetchModuleFromLocalFileSystem):

  • runtime/DateConversion.cpp:

(JSC::formatDateTime):
Use wchar helpers as needed.

Source/WebCore:

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::appendLinkedFonts):
(WebCore::getLinkedFonts):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::fontFromDescriptionAndLogFont):
(WebCore::createGDIFont):
(WebCore::FontCache::getFontSelectionCapabilitiesInFamily):

  • platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData):

  • platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:

(WebCore::GlyphPage::fill):

  • platform/graphics/win/IconWin.cpp:

(WebCore::Icon::createIconForFiles):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource):

  • platform/graphics/win/UniscribeController.cpp:

(WebCore::UniscribeController::itemizeShapeAndPlace):
(WebCore::UniscribeController::shape):

  • platform/network/win/DownloadBundleWin.cpp:

(WebCore::DownloadBundle::appendResumeData):
(WebCore::DownloadBundle::extractResumeData):

  • platform/text/win/LocaleWin.cpp:

(WebCore::LCIDFromLocaleInternal):
(WebCore::LCIDFromLocale):
(WebCore::LocaleWin::getLocaleInfoString):

  • platform/win/BString.cpp:

(WebCore::BString::BString):

  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::getWebLocData):
(WebCore::createGlobalData):
(WebCore::getFileDescriptorData):
(WebCore::getURL):
(WebCore::getCFData):
(WebCore::setCFData):

  • platform/win/DragDataWin.cpp:

(WebCore::DragData::asFilenames const):

  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageIconForCachedImageFilename):
(WebCore::dragLabelFont):

  • platform/win/MIMETypeRegistryWin.cpp:

(WebCore::mimeTypeForExtension):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::read):
(WebCore::filesystemPathFromUrlOrTitle):
(WebCore::Pasteboard::writeURLToDataObject):
(WebCore::createGlobalImageFileDescriptor):
(WebCore::createGlobalHDropContent):

  • platform/win/SSLKeyGeneratorWin.cpp:

(WebCore::signedPublicKeyAndChallengeString):

  • platform/win/SharedBufferWin.cpp:

(WebCore::SharedBuffer::createFromReadingFile):

  • rendering/RenderThemeWin.cpp:

(WebCore::fillFontDescription):
Use wchar helpers as needed.

Source/WebKit:

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::createServerAndClientIdentifiers):

  • Platform/win/ModuleWin.cpp:

(WebKit::Module::load):

  • UIProcess/Launcher/win/ProcessLauncherWin.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/win/WebContextMenuProxyWin.cpp:

(WebKit::createMenuItem):

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::setToolTip):

  • WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:

(WebKit::InjectedBundle::initialize):
Use wchar helpers as needed.

Source/WebKitLegacy/win:

  • COMPropertyBag.h:

(HashType>::GetPropertyInfo):
(HashType>::LoadObject):

  • DOMCoreClasses.cpp:

(DOMNode::addEventListener):
(DOMNode::removeEventListener):
(DOMWindow::addEventListener):
(DOMWindow::removeEventListener):
(DOMElement::font):

  • DOMHTMLClasses.cpp:

(DOMHTMLInputElement::setValueForUser):
(DOMHTMLInputElement::replaceCharactersInRange):

  • Plugins/PluginDatabaseWin.cpp:

(WebCore::addPluginPathsFromRegistry):
(WebCore::PluginDatabase::getPluginPathsInDirectories const):
(WebCore::addMozillaPluginDirectories):
(WebCore::addWindowsMediaPlayerPluginDirectory):
(WebCore::addAdobeAcrobatPluginDirectory):
(WebCore::addJavaPluginDirectory):
(WebCore::safariPluginsDirectory):
(WebCore::addMacromediaPluginDirectories):

  • Plugins/PluginPackageWin.cpp:

(WebCore::getVersionInfo):
(WebCore::PluginPackage::fetchInfo):
(WebCore::PluginPackage::load):

  • Plugins/PluginViewWin.cpp:

(WebCore::PluginView::handlePostReadFile):

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::runOpenPanel):

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::checkSpellingOfString):
(WebEditorClient::checkGrammarOfString):

  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorFrontendClient::updateWindowTitle):

  • WebLocalizableStrings.cpp:

(LocalizedString::operator LPCTSTR const):

  • WebView.cpp:

(createContextMenuFromItems):
(WebView::setToolTip):
Use wchar helpers as needed.

Source/WTF:

  • wtf/PlatformWin.cmake:
  • wtf/text/AtomicString.h:

(WTF::AtomicString::AtomicString):

  • wtf/text/WTFString.h:

(WTF::String::String):

  • wtf/text/win/StringWin.cpp: Added.

(WTF::String::wideCharacters const): Renamed from WTF::stringToNullTerminatedWChar.

  • wtf/text/win/WCharStringExtras.h:

(WTF::ucharFrom):
(WTF::wcharFrom):
(WTF::stringToNullTerminatedWChar): Deleted.
(WTF::wcharToString): Deleted.
(WTF::nullTerminatedWCharToString): Deleted.
Add static_assert-guarded reinterpret_cast wrappers for going between UChar* and wchar_t*.
Move existing to/from-String helpers into the String (and AtomicString) class(es).

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::getFindData):
(WTF::FileSystemImpl::getFinalPathName):
(WTF::FileSystemImpl::createSymbolicLink):
(WTF::FileSystemImpl::deleteFile):
(WTF::FileSystemImpl::deleteEmptyDirectory):
(WTF::FileSystemImpl::moveFile):
(WTF::FileSystemImpl::pathByAppendingComponent):
(WTF::FileSystemImpl::fileSystemRepresentation):
(WTF::FileSystemImpl::makeAllDirectories):
(WTF::FileSystemImpl::pathGetFileName):
(WTF::FileSystemImpl::storageDirectory):
(WTF::FileSystemImpl::generateTemporaryPath):
(WTF::FileSystemImpl::openTemporaryFile):
(WTF::FileSystemImpl::openFile):
(WTF::FileSystemImpl::hardLinkOrCopyFile):
(WTF::FileSystemImpl::deleteNonEmptyDirectory):

  • wtf/win/LanguageWin.cpp:

(WTF::localeInfo):

  • wtf/win/PathWalker.cpp:

(WTF::PathWalker::PathWalker):
Use wchar helpers as needed.

Tools:

  • TestWebKitAPI/Tests/WTF/StringOperators.cpp:

(TestWebKitAPI::TEST):
Delete wchar tests -- these are MSVC-only and we won't be using String::operator+ going forward anyway.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(findFontFallback):
(addFontFallbackIfPresent):
(removeFontFallbackIfPresent):
(main):

  • TestWebKitAPI/win/PlatformUtilitiesWin.cpp:

(TestWebKitAPI::Util::moduleDirectory):
(TestWebKitAPI::Util::createInjectedBundlePath):
Use wchar helpers as needed.

9:09 PM Changeset in webkit [242591] by mark.lam@apple.com
  • 6 edits in trunk

Fix incorrect handling of try-finally completion values.
https://bugs.webkit.org/show_bug.cgi?id=195131
<rdar://problem/46222079>

Reviewed by Saam Barati and Yusuke Suzuki.

JSTests:

Added many permutations of new test case to test-finally.js. test-finally.js has
been run on Chrome and Firefox as a sanity check, and we confirmed that all the
tests passes there as well.

  • stress/test-finally.js:

Source/JavaScriptCore:

Consider the following:

function foo() { line 1

try {

return 42; line 3

} finally {

for (var j = 0; j < 1; j++) { line 5

try {

throw ; line 7

} finally {

continue; line 9

}

}

} line 11

}
var result = foo();

With the current (before fix) code base, result will be the exception object thrown
at line 7. The expected result should be 42, returned at line 3.

The bug is that we were previously only using one set of completion type and
value registers for the entire function. This is inadequate because the outer
try-finally needs to preserve its own completion type and value ({ Return, 42 }
in this case) in order to be able to complete correctly.

One might be deceived into thinking that the above example should complete with
the exception thrown at line 7. However, according to Section 13.15.8 of the
ECMAScript spec, the 'continue' in the finally at line 9 counts as an abrupt
completion. As a result, it overrides the throw from line 7. After the continue,
execution resumes at the top of the loop at line 5, followed by a normal completion
at line 11.

Also according to Section 13.15.8, given that the completion type of the outer
finally is normal, the resultant completion of the outer try-finally should be
the completion of the outer try block i.e. { Return, 42 }.

This patch makes the following changes:

  1. Fix handling of finally completion to use a unique set of completion type and value registers for each FinallyContext.
  1. Move the setting of Throw completion type to the out of line exception handler. This makes the mainline code slightly less branchy.
  1. Introduce emitOutOfLineCatchHandler(), emitOutOfLineFinallyHandler(), and emitOutOfLineExceptionHandler() to make it clearer that these are not emitting bytecode inline. Also, these make it clearer when we're emitting a handler for a catch vs a finally.
  1. Allocate the FinallyContext on the stack instead of as a member of the heap allocated ControlFlowScope. This simplifies its life-cycle management and reduces the amount of needed copying.
  1. Update emitFinallyCompletion() to propagate the completion type and value to the outer FinallyContext when needed.
  1. Fix emitJumpIf() to use the right order of operands. Previously, we were only using it to do op_stricteq and op_nstricteq comparisons. So, the order wasn't important. We now use it to also do op_beloweq comparisons. Hence, the order needs to be corrected.
  1. Remove the unused CompletionType::Break and Continue. These are encoded with the jumpIDs of the jump targets instead.

Relevant specifications:
Section 13.15.8: https://www.ecma-international.org/ecma-262/9.0/index.html#sec-try-statement-runtime-semantics-evaluation
Section 6.3.2.4: https://www.ecma-international.org/ecma-262/9.0/index.html#sec-updateempty

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::FinallyContext::FinallyContext):
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::pushFinallyControlFlowScope):
(JSC::BytecodeGenerator::popFinallyControlFlowScope):
(JSC::BytecodeGenerator::emitOutOfLineCatchHandler):
(JSC::BytecodeGenerator::emitOutOfLineFinallyHandler):
(JSC::BytecodeGenerator::emitOutOfLineExceptionHandler):
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::emitJumpIf):
(JSC::BytecodeGenerator::emitCatch): Deleted.
(JSC::BytecodeGenerator::allocateCompletionRecordRegisters): Deleted.
(JSC::BytecodeGenerator::releaseCompletionRecordRegisters): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::FinallyContext::completionTypeRegister const):
(JSC::FinallyContext::completionValueRegister const):
(JSC::ControlFlowScope::ControlFlowScope):
(JSC::BytecodeGenerator::emitLoad):
(JSC::BytecodeGenerator::CompletionRecordScope::CompletionRecordScope): Deleted.
(JSC::BytecodeGenerator::CompletionRecordScope::~CompletionRecordScope): Deleted.
(JSC::BytecodeGenerator::completionTypeRegister const): Deleted.
(JSC::BytecodeGenerator::completionValueRegister const): Deleted.
(JSC::BytecodeGenerator::emitSetCompletionType): Deleted.
(JSC::BytecodeGenerator::emitSetCompletionValue): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::TryNode::emitBytecode):

8:32 PM Changeset in webkit [242590] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: highlight the node when hovering event listeners sorted by node
https://bugs.webkit.org/show_bug.cgi?id=195368

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode):

8:15 PM Changeset in webkit [242589] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 77

Added a tag for Safari Technology Preview release 77.

7:21 PM Changeset in webkit [242588] by Devin Rousso
  • 5 edits in trunk

Web Inspector: DOM Debugger: event breakpoints still fire when breakpoints are disabled
https://bugs.webkit.org/show_bug.cgi?id=195377
<rdar://problem/48651645>

Reviewed by Joseph Pecoraro and Matt Baker.

Source/WebCore:

Test: inspector/dom-debugger/event-listener-breakpoints.html

  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
(WebCore::InspectorDOMDebuggerAgent::willFireTimer):
(WebCore::InspectorDOMDebuggerAgent::willFireAnimationFrame):

LayoutTests:

  • inspector/dom-debugger/event-listener-breakpoints.html:
  • inspector/dom-debugger/event-listener-breakpoints-expected.txt:
7:11 PM Changeset in webkit [242587] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

Crash when attempting to change input type while dismissing datalist suggestions
https://bugs.webkit.org/show_bug.cgi?id=195384
<rdar://problem/48563718>

Reviewed by Brent Fulgham.

Source/WebCore:

When closing a datalist suggestion menu, WebPageProxy sends a message to WebPage instructing it to tell its
active datalist suggestions picker to close. However, for a myriad of reasons, the suggestions picker (kept
alive by its text input type) may have already gone away by this point. To mitigate this, make WebPage weakly
reference its active datalist suggestions picker.

Test: fast/forms/datalist/change-input-type-after-closing-datalist-suggestions.html

  • platform/DataListSuggestionPicker.h:

Make DataListSuggestionPicker capable of being weakly referenced. Additionally, fix some minor preexisting
issues in this header (#imports instead of #includes, as well as an unnecessary include of IntRect.h).

Source/WebKit:

See WebCore ChangeLog for more details.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setActiveDataListSuggestionPicker):
(WebKit::WebPage::didSelectDataListOption):
(WebKit::WebPage::didCloseSuggestions):

  • WebProcess/WebPage/WebPage.h:

Turn m_activeDataListSuggestionPicker from a raw pointer into a WeakPtr.

LayoutTests:

Add a new layout test to exercise this scenario.

  • fast/forms/datalist/change-input-type-after-closing-datalist-suggestions-expected.txt: Added.
  • fast/forms/datalist/change-input-type-after-closing-datalist-suggestions.html: Added.
7:03 PM Changeset in webkit [242586] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Remove an unneeded assert that was added with r242113
https://bugs.webkit.org/show_bug.cgi?id=195391

Reviewed by Simon Fraser.

Many layout tests are failing ASSERT(m_mediaBufferingIsSuspended). Since m_mediaBufferingIsSuspended is
protected by an 'if' statement directly afterwards, the assertion should be safe to remove.

  • page/Page.cpp:

(WebCore::Page::resumeAllMediaBuffering):

6:03 PM Changeset in webkit [242585] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JSScript should keep the cache file locked for the duration of its existence and should truncate the cache when it is out of date
https://bugs.webkit.org/show_bug.cgi?id=195186

Reviewed by Keith Miller.

This patch makes it so that JSScript will keep its bytecode cache file
locked as long as the JSScript is alive. This makes it obvious that it's
safe to update that file, as it will only be used in a single VM, across
all processes, at a single time. We may be able to extend this in the future
if we can atomically update it across VMs/processes. However, we're choosing
more restricted semantics now as it's always easier to extend these semantics
in the future opposed to having to support the more flexible behavior
up front.

This patch also:

  • Adds error messages if writing the cache fails. We don't expect this to fail, but previously we would say we cached it even if write() fails.
  • Removes the unused m_moduleKey field.
  • Makes calling cacheBytecodeWithError with an already non-empty cache file fail. In the future, we should extend this to just fill in the parts of the cache that are not present. But we don't have the ability to do that yet, so we just result in an error for now.
  • API/JSScript.mm:

(-[JSScript dealloc]):
(-[JSScript readCache]):
(-[JSScript init]):
(-[JSScript writeCache:]):

  • API/JSScriptInternal.h:
  • API/tests/testapi.mm:

(testCacheFileIsExclusive):
(testCacheFileFailsWhenItsAlreadyCached):
(testObjectiveCAPI):

5:44 PM Changeset in webkit [242584] by Alan Coon
  • 1 copy in tags/Safari-607.1.40.0.6

Tag Safari-607.1.40.0.6.

5:36 PM Changeset in webkit [242583] by Alan Coon
  • 2 edits in tags/Safari-608.1.8/Source/WebKit

Cherry-pick r242579. rdar://problem/48651255

Add gettid to allowed syscalls on Mac
https://bugs.webkit.org/show_bug.cgi?id=195386
<rdar://problem/48651255>

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:

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

5:02 PM Changeset in webkit [242582] by Justin Fan
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix. Replace a forward declaration with an include.

  • Modules/webgpu/WebGPUTextureView.cpp:
  • Modules/webgpu/WebGPUTextureView.h:
4:51 PM Changeset in webkit [242581] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKitLegacy

WebKitLegacy does not need to generate an export file for i386 anymore
https://bugs.webkit.org/show_bug.cgi?id=195380

Patch by Sam Weinig <sam@webkit.org> on 2019-03-06
Reviewed by Dan Bernstein.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Update and simplify the "Generate Export Files" phase now that we don't need
separate export files for i386 and x86_64.

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:

Simplify EXPORTED_SYMBOLS_FILE down to just a single path to a generated file.
It still needs to be generated, since we are concatenating the shared exports
file with a macOS or iOS specific one.

  • WebKit.mac.exp:

Remove i386 specific symbols that we were previously stripping.

4:43 PM Changeset in webkit [242580] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

[iOS] ProcessDidResume() IPC should be sent upon resuming when ProcessWillSuspendImminently() IPC was sent
https://bugs.webkit.org/show_bug.cgi?id=195382
<rdar://problem/48642739>

Reviewed by Geoffrey Garen.

ProcessDidResume() IPC should be sent upon resuming when ProcessWillSuspendImminently() IPC was sent. Previously,
we only send ProcessDidResume() to the WebProcess if PrepareToSuspend() was sent, not when the more urgent
ProcessWillSuspendImminently() IPC was sent.

This mismatch has lead to bugs because the WebProcess does not know it got resumed and failed to unfreeze the
layers it froze upon suspension.

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertionClient::~ProcessAssertionClient):

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::updateAssertion):
(WebKit::ProcessThrottler::uiAssertionWillExpireImminently):
(WebKit::ProcessThrottler::assertionWillExpireImminently): Deleted.

  • UIProcess/ProcessThrottler.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _notifyClientsOfImminentSuspension]):
(WebKit::ProcessAssertion::~ProcessAssertion):
(WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion):
(WebKit::ProcessAndUIAssertion::setClient):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCompletePageTransition):
Revert change that was landed in r242098 to work around this ProcessThrottler bug.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applicationWillEnterForeground):
Revert change that was landed in r242554 to work around this ProcessThrottler bug.

4:38 PM Changeset in webkit [242579] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Add gettid to allowed syscalls on Mac
https://bugs.webkit.org/show_bug.cgi?id=195386
<rdar://problem/48651255>

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:
4:13 PM Changeset in webkit [242578] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: system accent color follow-ups
https://bugs.webkit.org/show_bug.cgi?id=195190

Reviewed by Devin Rousso.

  • UserInterface/Views/ButtonToolbarItem.css:

(.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
(@media (prefers-color-scheme: dark)):
(.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)): Deleted.
Drop pressed toolbar button style. It's extremely subtle and not worth the hassle.

  • UserInterface/Views/LogContentView.css:

(.console-messages:focus .console-item.selected::after):
(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/ScopeBar.css:

(.scope-bar > li.selected:active::before):

  • UserInterface/Views/TimelineRecordBar.css:

(.timeline-record-bar.selected > .segment):

4:09 PM Changeset in webkit [242577] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION: Elements tab: Uncaught Exception: No node with given id found
https://bugs.webkit.org/show_bug.cgi?id=194299
<rdar://problem/47828647>

Reviewed by Devin Rousso.

When removing the selection, TreeOutline subclasses should have more
control over which item becomes selected after the selection is removed.
DOMTreeOutline should track the items that are being removed, and prevent
them or their descendants from becoming selected.

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline):
(WI.DOMTreeOutline.prototype.ondelete):
(WI.DOMTreeOutline.prototype.canSelectTreeElement):

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.selectionControllerLastSelectableItem):
(WI.TreeOutline.prototype.selectionControllerPreviousSelectableItem):
(WI.TreeOutline.prototype.selectionControllerNextSelectableItem):
(WI.TreeOutline.prototype.canSelectTreeElement):

4:06 PM Changeset in webkit [242576] by chris.reid@sony.com
  • 11 edits in trunk/Source/JavaScriptCore

Followups to (r242306): Use LockHolder instead of std::lock_guard on Remote Inspector Locks
https://bugs.webkit.org/show_bug.cgi?id=195381

Reviewed by Mark Lam.

Replacing std::lock_guard uses in Remote Inspector with WTF::LockHolder.
Also using = { } for struct initialization instead of memeset.

  • inspector/remote/RemoteConnectionToTarget.cpp:
  • inspector/remote/RemoteInspector.cpp:
  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:
  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:
  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:
  • inspector/remote/glib/RemoteInspectorGlib.cpp:
  • inspector/remote/playstation/RemoteInspectorPlayStation.cpp:
  • inspector/remote/playstation/RemoteInspectorSocketClientPlayStation.cpp:
  • inspector/remote/playstation/RemoteInspectorSocketPlayStation.cpp:
  • inspector/remote/playstation/RemoteInspectorSocketServerPlayStation.cpp:
3:57 PM Changeset in webkit [242575] by Justin Fan
  • 47 edits
    6 moves
    3 adds
    2 deletes in trunk

[Web GPU] GPUTexture and GPUTextureView updates, and related GPUBindGroup updates
https://bugs.webkit.org/show_bug.cgi?id=195347

Reviewed by Dean Jackson.

Source/WebCore:

Implement the ability to display image data as a GPUTexture in the rendering pipeline. Improve GPUTexture and
GPUTextureView implementations. Rename various bind group classes to GPU* to match API.

Test: webgpu/texture-triangle-strip.html

  • Modules/webgpu/WebGPUBindGroupDescriptor.cpp:

(WebCore::WebGPUBindGroupDescriptor::asGPUBindGroupDescriptor const): Update to validate GPUTextureView resources.

  • Modules/webgpu/WebGPUCommandBuffer.cpp: Move instead of copy the converted view objects.

(WebCore::WebGPUCommandBuffer::copyBufferToTexture):
(WebCore::WebGPUCommandBuffer::copyTextureToBuffer):
(WebCore::WebGPUCommandBuffer::copyTextureToTexture):

  • Modules/webgpu/WebGPUCommandBuffer.h:

(WebCore::WebGPUCommandBuffer::commandBuffer const): No longer returns const so used resources can be registered on it.

  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createBindGroupLayout const): Rename WebGPUBindGroupLayoutDescriptor and replace unnecessary rvalue reference.

  • Modules/webgpu/WebGPUDevice.h: Ditto.
  • Modules/webgpu/WebGPUDevice.idl: Ditto.
  • Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:

(WebCore::WebGPUProgrammablePassEncoder::setBindGroup const):

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

(WebCore::WebGPUQueue::submit):

  • Modules/webgpu/WebGPURenderPassDescriptor.cpp:

(WebCore::WebGPURenderPassDescriptor::asGPURenderPassDescriptor const):

  • Modules/webgpu/WebGPUTexture.cpp:

(WebCore::WebGPUTexture::~WebGPUTexture): Clean up any resources created for and from this WebGPUTexture.
(WebCore::WebGPUTexture::createDefaultTextureView): Now returns an empty object other than null on failure.
(WebCore::WebGPUTexture::destroy):
(WebCore::WebGPUTexture::destroyImpl):

  • Modules/webgpu/WebGPUTexture.h: Keep a list of any views created from this texture.
  • Modules/webgpu/WebGPUTexture.idl: Enable destroy.
  • Modules/webgpu/WebGPUTextureView.cpp:

(WebCore::WebGPUTextureView::create):
(WebCore::WebGPUTextureView::WebGPUTextureView):
(WebCore::WebGPUTextureView::destroy):

  • Modules/webgpu/WebGPUTextureView.h:

(WebCore::WebGPUTextureView::~WebGPUTextureView): Clean up any resources backing this WebGPUTextureView.
(WebCore::WebGPUTextureView::texture const):
(WebCore::WebGPUTextureView::texture): Deleted.

  • platform/graphics/gpu/GPUBindGroupLayout.h:
  • platform/graphics/gpu/GPUCommandBuffer.h:

(WebCore::GPUCommandBuffer::usedTextures const): Keep a list of all texture resources that will be used by this command buffer on submit.
(WebCore::GPUCommandBuffer::isEncodingPass const): Added to prevent multiple pass encoders from being active on one command buffer.
(WebCore::GPUCommandBuffer::setIsEncodingPass):
(WebCore::GPUCommandBuffer::useTexture):

  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateBindGroupLayout const):

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

(WebCore::GPUPipelineLayout::GPUPipelineLayout):

  • platform/graphics/gpu/GPUProgrammablePassEncoder.cpp:

(WebCore::GPUProgrammablePassEncoder::GPUProgrammablePassEncoder):

  • platform/graphics/gpu/GPUProgrammablePassEncoder.h:

(WebCore::GPUProgrammablePassEncoder::setVertexBuffer):
(WebCore::GPUProgrammablePassEncoder::setFragmentBuffer):
(): Deleted.

  • platform/graphics/gpu/GPUQueue.h:
  • platform/graphics/gpu/GPURenderPassEncoder.h:
  • platform/graphics/gpu/GPUTexture.h:

(WebCore::GPUTexture::isReadOnly const):
(WebCore::GPUTexture::destroy):

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

(WebCore::MTLDataTypeForBindingType):
(WebCore::GPUBindGroupLayout::tryCreate):

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

(WebCore::GPUCommandBuffer::create):
(WebCore::GPUCommandBuffer::~GPUCommandBuffer): Ensure blitEncoder is ended before releasing it.
(WebCore::GPUCommandBuffer::endBlitEncoding):
(WebCore::GPUCommandBuffer::copyBufferToTexture): Ensure textures are marked for usage before submission occurs.
(WebCore::GPUCommandBuffer::copyTextureToBuffer):
(WebCore::GPUCommandBuffer::copyTextureToTexture):

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

(WebCore::GPUDevice::create):
(WebCore::GPUDevice::GPUDevice):

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

(WebCore::GPUProgrammablePassEncoder::endPass):
(WebCore::GPUProgrammablePassEncoder::setBindGroup): Now supports texture resources.
(WebCore::GPUProgrammablePassEncoder::setResourceAsBufferOnEncoder): Just moved.
(WebCore::GPUProgrammablePassEncoder::setResourceAsTextureOnEncoder):

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

(WebCore::GPUQueue::submit): Ensures destroyed GPUTextures are not submitted.

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

(WebCore::GPURenderPassEncoder::tryCreate): Ensure any other encoders are ended before attempting to activate a new one.
(WebCore::GPURenderPassEncoder::platformPassEncoder const):
(WebCore::GPURenderPassEncoder::endPass): Invalidates the MTLCommandEncoder upon success.
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::setVertexBuffers):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::useResource):
(WebCore::GPURenderPassEncoder::setVertexBuffer):
(WebCore::GPURenderPassEncoder::setFragmentBuffer):

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

(WebCore::GPUSwapChain::getNextTexture):

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

(WebCore::storageModeForPixelFormatAndSampleCount):

Always create MTLStorageModePrivate textures on macOS, as Web GPU doesn't provide CPU access to textures anyway.

(WebCore::tryCreateMtlTextureDescriptor):
(WebCore::GPUTexture::create):
(WebCore::GPUTexture::GPUTexture):
(WebCore::GPUTexture::tryCreateDefaultTextureView): Renamed from createDefaultTextureView.

Update files and symbols in project:

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/streams/WebGPUBindGroupLayoutDescriptor.h: Removed.
  • Modules/webgpu/GPUBindGroupLayoutBinding.h: Renamed from Source/WebCore/platform/graphics/gpu/GPUBindGroupLayoutBinding.h.
  • Modules/webgpu/GPUBindGroupLayoutBinding.idl: Renamed from Source/WebCore/Modules/webgpu/WebGPUBindGroupLayoutBinding.idl.
  • Modules/webgpu/GPUBindGroupLayoutDescriptor.h: Renamed from Source/WebCore/platform/graphics/gpu/GPUBindGroupLayoutDescriptor.h.
  • Modules/webgpu/GPUBindGroupLayoutDescriptor.idl: Renamed from Source/WebCore/Modules/webgpu/WebGPUBindGroupLayoutDescriptor.idl.
  • Modules/webgpu/GPUShaderStageBit.h: Renamed from Source/WebCore/Modules/webgpu/WebGPUShaderStageBit.h.
  • Modules/webgpu/GPUShaderStageBit.idl: Renamed from Source/WebCore/Modules/webgpu/WebGPUShaderStageBit.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

  • webgpu/blit-commands.html:
  • webgpu/resources/blue-checkered.png: Added.
  • webgpu/texture-triangle-strip-expected.html: Added. Draw a reference for blue-checkered.png with Canvas2D.
  • webgpu/texture-triangle-strip.html: Added. Draw blue-checkered.png as a texture on a Web GPU quad.

Renaming updates, no change in behavior:

  • webgpu/bind-groups.html:
  • webgpu/buffer-resource-triangles.html:
  • webgpu/pipeline-layouts.html:
  • webgpu/render-pipelines.html:
3:43 PM Changeset in webkit [242574] by Kocsen Chung
  • 7 edits in branches/safari-607.1.40.1-branch/Source

Versioning.

3:40 PM Changeset in webkit [242573] by Kocsen Chung
  • 2 edits in tags/Safari-608.1.8/Source/WebKit

Cherry-pick r242570. rdar://problem/48647263

[macOS] Sandbox call violation causes WebContent process to crash
https://bugs.webkit.org/show_bug.cgi?id=195379
<rdar://problem/48647263>

Reviewed by Brent Fulgham.

A new call needs to be added to the allow list in the WebContent process' sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:

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

3:36 PM Changeset in webkit [242572] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.8

Tag Safari-608.1.8.

3:08 PM Changeset in webkit [242571] by mmaxfield@apple.com
  • 12 edits
    3 copies
    3 adds in trunk/Source/WebCore

[WHLSL] Pack and unpack data at entry points and exit points
https://bugs.webkit.org/show_bug.cgi?id=193877

Reviewed by Dean Jackson.

This implements the bulk of the rest of the Metal code generation piece.
Specifically, this patch adds support for the packing and unpacking steps
at the beginning of the entry point functions and all returns from those
functions. It does this by creating an object, EntryPointScaffolding, that
knows how to emit all the helper types, packing / unpacking code, and the
function signature. This patch also accepts parts of the
PipelineStateDescriptor so we know the data layout we should be packing and
unpacking.

This is the last patch before enough of the compiler is present that we can
start testing it. The next patch will start porting the test suite.

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

(WebCore::WHLSL::Metal::attributeForSemantic):
(WebCore::WHLSL::Metal::EntryPointScaffolding::EntryPointScaffolding):
(WebCore::WHLSL::Metal::EntryPointScaffolding::mappedBindGroups const):
(WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::resourceSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::builtInsSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::mangledInputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::mangledOutputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::VertexEntryPointScaffolding):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::helperTypes):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::signature):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::unpack):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::pack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::FragmentEntryPointScaffolding):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::helperTypes):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::signature):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::unpack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::pack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::ComputeEntryPointScaffolding):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::helperTypes):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::signature):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::unpack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::pack):
(WebCore::WHLSL::Metal::EntryPointScaffolding::helperTypes): Deleted.
(WebCore::WHLSL::Metal::EntryPointScaffolding::signature): Deleted.
(WebCore::WHLSL::Metal::EntryPointScaffolding::unpack): Deleted.
(WebCore::WHLSL::Metal::EntryPointScaffolding::pack): Deleted.

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

(WebCore::WHLSL::Metal::EntryPointScaffolding::parameterVariables):

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

(WebCore::WHLSL::Metal::FunctionDeclarationWriter::toString):
(WebCore::WHLSL::Metal::FunctionDeclarationWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::FunctionDefinitionWriter):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::generateNextVariableName):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::constantExpressionString):
(WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::RenderFunctionDefinitionWriter):
(WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::takeVertexMappedBindGroups):
(WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::takeFragmentMappedBindGroups):
(WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::createEntryPointScaffolding):
(WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::ComputeFunctionDefinitionWriter):
(WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::takeMappedBindGroups):
(WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::createEntryPointScaffolding):
(WebCore::WHLSL::Metal::sharedMetalFunctions):
(WebCore::WHLSL::Metal::metalFunctions):

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLMappedBindings.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.h.
  • Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp:

(WebCore::WHLSL::Metal::generateMetalCodeShared):
(WebCore::WHLSL::Metal::generateMetalCode):

  • Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.h:
  • Modules/webgpu/WHLSL/WHLSLIntrinsics.h:

(WebCore::WHLSL::Intrinsics::float2Type const):

  • Modules/webgpu/WHLSL/WHLSLPipelineDescriptor.h: Added.
  • Modules/webgpu/WHLSL/WHLSLPrepare.cpp: Added.

(WebCore::WHLSL::prepareShared):
(WebCore::WHLSL::prepare):

  • Modules/webgpu/WHLSL/WHLSLPrepare.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.h.
  • Modules/webgpu/WHLSL/WHLSLSemanticMatcher.cpp: Added.

(WebCore::WHLSL::findEntryPoint):
(WebCore::WHLSL::matchMode):
(WebCore::WHLSL::matchResources):
(WebCore::WHLSL::matchInputsOutputs):
(WebCore::WHLSL::isAcceptableFormat):
(WebCore::WHLSL::matchVertexAttributes):
(WebCore::WHLSL::matchColorAttachments):
(WebCore::WHLSL::matchDepthAttachment):
(WebCore::WHLSL::matchSemantics):

  • Modules/webgpu/WHLSL/WHLSLSemanticMatcher.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
3:08 PM Changeset in webkit [242570] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Sandbox call violation causes WebContent process to crash
https://bugs.webkit.org/show_bug.cgi?id=195379
<rdar://problem/48647263>

Reviewed by Brent Fulgham.

A new call needs to be added to the allow list in the WebContent process' sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:
2:57 PM Changeset in webkit [242569] by sbarati@apple.com
  • 6 edits
    1 add in trunk

Air::reportUsedRegisters must padInterference
https://bugs.webkit.org/show_bug.cgi?id=195303
<rdar://problem/48270343>

Reviewed by Keith Miller.

JSTests:

  • stress/optional-def-arg-width-should-be-both-early-and-late-use.js: Added.

Source/JavaScriptCore:

reportUsedRegisters uses reg liveness to eliminate loads/moves into dead
registers. However, liveness can report incorrect results in certain
scenarios when considering liveness at instruction boundaries. For example,
it can go wrong when an Inst has a LateUse of a register and the following
Inst has an EarlyDef of that same register. Such a scenario could lead us
to incorrectly say the register is not live-in to the first Inst. Pad
interference inserts Nops between such instruction boundaries that cause
this issue.

The test with this patch fixes the issue in reportUsedRegisters. This patch
also conservatively makes it so that lowerAfterRegAlloc calls padInterference
since it also reasons about liveness.

  • b3/air/AirLowerAfterRegAlloc.cpp:

(JSC::B3::Air::lowerAfterRegAlloc):

  • b3/air/AirPadInterference.h:
  • b3/air/AirReportUsedRegisters.cpp:

(JSC::B3::Air::reportUsedRegisters):

  • b3/testb3.cpp:

(JSC::B3::testReportUsedRegistersLateUseNotDead):
(JSC::B3::run):

2:34 PM Changeset in webkit [242568] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] AI should not propagate AbstractValue relying on constant folding phase
https://bugs.webkit.org/show_bug.cgi?id=195375

Reviewed by Saam Barati.

JSTests:

  • stress/make-rope-should-not-propagate-constant-folded-value-in-ai.js: Added.

(let.array):

Source/JavaScriptCore:

MakeRope rule in AI attempts to propagate the node, which will be produced after constant folding phase runs.
This is wrong since we do not guarantee that constant folding phase runs after AI runs (e.g. DFGSpeculativeJIT
and FTLLowerDFGToB3 run AI). This results in the bug that the value produced at runtime is different from the
proven constant value in AI. In the attached test, AI says the value is SpecStringIdent while the resulted value
at runtime is SpecStringVar, resulting in wrong MakeRope code. This patch removes the path propagating the node
relying on constant folding phase.

  • dfg/DFGAbstractInterpreterInlines.h:

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

2:28 PM Changeset in webkit [242567] by Joseph Pecoraro
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: CPU Usage Timeline - Allow clicking a bar in the overview to select a tight time range around it
https://bugs.webkit.org/show_bug.cgi?id=195321

Reviewed by Devin Rousso.

  • UserInterface/Models/Timeline.js:

(WI.Timeline.prototype.closestRecordTo):
Helper to get the closest record to a timestamp.

  • UserInterface/Views/CPUTimelineOverviewGraph.css:

(.timeline-overview-graph.cpu > .stacked-column-chart):
(.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.selected):
Style a selected record with the active color.

  • UserInterface/Views/CPUTimelineOverviewGraph.js:

(WI.CPUTimelineOverviewGraph):
(WI.CPUTimelineOverviewGraph.prototype.get samplingRatePerSecond):
(WI.CPUTimelineOverviewGraph.prototype.reset):
(WI.CPUTimelineOverviewGraph.prototype.layout):
(WI.CPUTimelineOverviewGraph.prototype.updateSelectedRecord):
(WI.CPUTimelineOverviewGraph.prototype._graphPositionForMouseEvent):
(WI.CPUTimelineOverviewGraph.prototype._handleGraphMouseClick):
A click in the overview which hits a rect triggers a selection of
the associated timeline record.

  • UserInterface/Views/StackedColumnChart.js:

(WI.StackedColumnChart.prototype.addColumnSet):
(WI.StackedColumnChart.prototype.layout):
Allow setting an additional class name with a column set.
It will set the class name on each rect in that column.

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview.prototype._recordSelected):
When selecting a CPU record, make a selection range of 2 neighboring
columns in each direction.

  • UserInterface/Views/TimelineRuler.js:

(WI.TimelineRuler.prototype._handleClick):
When a sub-element has handled the click stop further event propagation.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WI.TimelineOverviewGraph.prototype.get selected):
Drive-by style fix.

2:28 PM Changeset in webkit [242566] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: TimelineOverview clicks do not always behave as expected
https://bugs.webkit.org/show_bug.cgi?id=195319

Reviewed by Devin Rousso.

  • UserInterface/Views/TimelineRuler.js:

(WI.TimelineRuler.prototype._shouldIgnoreMicroMovement):
(WI.TimelineRuler.prototype._handleMouseDown):
(WI.TimelineRuler.prototype._handleMouseMove):
Ignore moves that haven't gone more than 4px. Once the threshold is
passed allow all moves. This improves the click behavior since
previously click would never re-dispatch if there was any movement.

1:42 PM Changeset in webkit [242565] by Kocsen Chung
  • 2 edits in branches/safari-607-branch/Source/WebKit

Cherry-pick r242554. rdar://problem/48647490

REGRESSION (r238490): YouTube.com: Returning PiP to Safari after sleeping device loses page
https://bugs.webkit.org/show_bug.cgi?id=195364
<rdar://problem/48538837>

Reviewed by Geoffrey Garen.

Make sure we unset the LayerTreeFreezeReason::ProcessSuspended layer tree freeze reason
when WebPage::applicationWillEnterForeground() is called. This restores pre-r238490
behavior and addresses the issue with PiP on youtube.com.

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

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

1:05 PM Changeset in webkit [242564] by Antti Koivisto
  • 5 edits
    2 adds in trunk

[iOS] Basic hit testing for content overlapping fast-scrollable overflow
https://bugs.webkit.org/show_bug.cgi?id=195360

Reviewed by Simon Fraser.

Source/WebKit:

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

Use new UIView subclass for tiled layer hosting (so we know they have content even when contents property is nil).

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(collectDescendantViewsAtPoint):

Factor collection step into a function.
Do basic skipping of event-transparent layers.

(-[UIView _web_findDescendantViewAtPoint:withEvent:]):

To handle overlap cases, find the scroll view that has the deepest non-transparent view hit as its descendant.

(-[UIView _web_recursiveFindDescendantInteractibleViewAtPoint:withEvent:]): Deleted.

LayoutTests:

  • fast/scrolling/ios/overflow-scroll-overlap-expected.txt: Added.
  • fast/scrolling/ios/overflow-scroll-overlap.html: Added.
12:45 PM Changeset in webkit [242563] by Kocsen Chung
  • 2 edits in branches/safari-607.1.40.0-branch/Source/WebKit

Cherry-pick r242554. rdar://problem/48647488

REGRESSION (r238490): YouTube.com: Returning PiP to Safari after sleeping device loses page
https://bugs.webkit.org/show_bug.cgi?id=195364
<rdar://problem/48538837>

Reviewed by Geoffrey Garen.

Make sure we unset the LayerTreeFreezeReason::ProcessSuspended layer tree freeze reason
when WebPage::applicationWillEnterForeground() is called. This restores pre-r238490
behavior and addresses the issue with PiP on youtube.com.

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

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

12:38 PM Changeset in webkit [242562] by Joseph Pecoraro
  • 11 edits
    2 adds in trunk

Web Inspector: CPU Usage Timeline - Statistics and Sources sections
https://bugs.webkit.org/show_bug.cgi?id=195202

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:

New strings.

  • UserInterface/Base/Utilities.js:

(Map.prototype.getOrInitialize):
Helper to get and if not found initialize with a value.

  • UserInterface/Views/CPUTimelineView.css:

(.timeline-view.cpu > .content > .overview > .chart > .container.stats):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > th):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > td.number):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > td.label):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .show-more):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .filter):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .filter:hover):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .active):
(.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .active + .active):
(@media (prefers-color-scheme: dark)):
Colors for the statistics sections.

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView):
(WI.CPUTimelineView.prototype.reset):
(WI.CPUTimelineView.prototype.clear):
(WI.CPUTimelineView.prototype._clearStatistics):
(WI.CPUTimelineView.prototype._clearSources):
Updates for additional sections.
Include a cache of the statisiticsData so we can relayout parts of the UI and
avoid an entire UI update.

(WI.CPUTimelineView.prototype.initialLayout):
(WI.CPUTimelineView.prototype._layoutBreakdownChart):
(WI.CPUTimelineView.prototype._layoutStatisticsAndSources):
(WI.CPUTimelineView.prototype._layoutStatisticsSection.createEllipsisElement):
(WI.CPUTimelineView.prototype._layoutStatisticsSection):
(WI.CPUTimelineView.prototype._layoutSourcesSection.firstNonNativeCallFrame):
(WI.CPUTimelineView.prototype._layoutSourcesSection.keyForSourceCodeLocation):
(WI.CPUTimelineView.prototype._layoutSourcesSection.labelForLocation):
(WI.CPUTimelineView.prototype._layoutSourcesSection.createEllipsisElement):
(WI.CPUTimelineView.prototype._layoutSourcesSection):
Extract layouts into helper methods to avoid an enormous layout method.

(WI.CPUTimelineView.prototype._computeSamplingData.incrementTypeCount):
(WI.CPUTimelineView.prototype._computeSamplingData):
Compute additional data when going through script events.

(WI.CPUTimelineView.prototype._resetSourcesFilters):
(WI.CPUTimelineView.prototype._addSourcesFilter):
(WI.CPUTimelineView.prototype._removeSourcesFilter):
(WI.CPUTimelineView.prototype._updateSourcesFilters):
Helpers for updating the source filters.

(WI.CPUTimelineView.prototype._createTableRow):
(WI.CPUTimelineView.prototype._insertTableRow):
Helpers for creating rows in the statistics / sources tables.

LayoutTests:

  • inspector/unit-tests/map-utilities-expected.txt: Added.
  • inspector/unit-tests/map-utilities.html: Added.
  • inspector/unit-tests/set-utilities-expected.txt:
  • inspector/unit-tests/set-utilities.html:
12:18 PM Changeset in webkit [242561] by Wenson Hsieh
  • 7 edits in trunk/Source

Move RenderObject::isTransparentOrFullyClippedRespectingParentFrames() to RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=195300

Reviewed by Simon Fraser.

Source/WebCore:

Move isTransparentOrFullyClippedRespectingParentFrames() from RenderObject to RenderLayer, since this function
asks questions about RenderLayers rather than their renderers. No change in behavior.

  • rendering/RenderLayer.cpp:

(WebCore::enclosingFrameRenderLayer):
(WebCore::parentLayerCrossFrame):

Some static helpers currently in RenderObject that walk up the layer hierarchy through subframes are redundant
with static helpers in RenderLayer. Now that isTransparentOrFullyClippedRespectingParentFrames exists in
RenderLayer, simply use this existing helper instead and split logic to grab the enclosing layer around the
owner element of a frame into a separate helper.

  • rendering/RenderLayer.h:
  • rendering/RenderObject.cpp:

(WebCore::enclosingFrameRenderLayer): Deleted.
(WebCore::parentLayerCrossingFrameBoundaries): Deleted.
(WebCore::RenderObject::isTransparentOrFullyClippedRespectingParentFrames const): Deleted.

Moved from RenderObject.

  • rendering/RenderObject.h:

Source/WebKit:

Refactor some logic to use isTransparentOrFullyClippedRespectingParentFrames on RenderLayer rather than
RenderObject; introduce a helper method to ask whether the enclosing layer of a renderer is transparent or
clipped.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::enclosingLayerIsTransparentOrFullyClipped):
(WebKit::WebPage::platformEditorState const):
(WebKit::WebPage::requestEvasionRectsAboveSelection):
(WebKit::WebPage::getFocusedElementInformation):

12:16 PM Changeset in webkit [242560] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Simplify chart <rect>s with x/y attributes instead of transform(x, y)
https://bugs.webkit.org/show_bug.cgi?id=195352

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-03-06
Reviewed by Matt Baker.

  • UserInterface/Views/ColumnChart.js:

(WI.ColumnChart.prototype.layout):
(WI.ColumnChart):

  • UserInterface/Views/RangeChart.js:

(WI.RangeChart.prototype.layout):
(WI.RangeChart):

  • UserInterface/Views/StackedColumnChart.js:

(WI.StackedColumnChart.prototype.layout):
(WI.StackedColumnChart):

12:05 PM Changeset in webkit [242559] by Kocsen Chung
  • 7 edits in branches/safari-607.1.40.0-branch/Source

Versioning.

11:57 AM Changeset in webkit [242558] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

11:52 AM Changeset in webkit [242557] by don.olmstead@sony.com
  • 2 edits in trunk

[WinCairo] Enable additional experimental features
https://bugs.webkit.org/show_bug.cgi?id=195363

Reviewed by Ross Kirsling.

Turn on ENABLE_APPLICATION_MANIFEST, ENABLE_FILTERS_LEVEL_2, ENABLE_CSS_PAINTING_API,
and ENABLE_VARIATION_FONTS. This will allow testing and development of these features
for Windows.

  • Source/cmake/OptionsWin.cmake:
11:22 AM Changeset in webkit [242556] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Changes: only show changes for the given node
https://bugs.webkit.org/show_bug.cgi?id=194608
<rdar://problem/48050206>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ChangesDetailsSidebarPanel.js:

(WI.ChangesDetailsSidebarPanel.prototype.inspect):
(WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode):
(WI.ChangesDetailsSidebarPanel.prototype.layout):
Make this panel a subclass of WI.DOMDetailsSidebarPanel so it has access to the selected
DOM node in the Elements tab.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
Create new general setting for controlling this change.

  • Localizations/en.lproj/localizedStrings.js:
11:20 AM Changeset in webkit [242555] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

Assertion Failed: m_databaseQueue.isKilled() in UniqueIDBDatabase::~UniqueIDBDatabase()
https://bugs.webkit.org/show_bug.cgi?id=195073
<rdar://problem/48285200>

Reviewed by Geoffrey Garen.

r240931 removed a retain cycle between IDBConnectionToServer and IDBConnectionToServerDelegate, so
IDBConnectionToServerDelegate, or InProcessIDBServer would not live forever. When IDBDatabase is gone,
InProcessIDBServer would schedule a notifification to IDBServer with databaseConnectionClosed. IDBServer would
then notify UniqueIDBDatabase. When UniqueIDBDatabase finds all database connections are gone, it would acquires
its only reference pointer from IDBServer schedule and perform a shutdown that kills its database task queue.

The assertion failure tells us UniqueIDBDatabase was destructed at when IDBServer was destructed, which means
UniqueIDBDatabase had not acquired its pointer. It's probably because UniqueIDBDatabase had unfinished tasks or
the operation timer function had not been executed. Since UniqueIDBDatabase needs to complete shutdown process,
we should make IDBServer live as long as UniqueIDBDatabase by keeping a reference pointer of IDBServer in
UniqueIDBDatabase.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
(WebCore::IDBServer::UniqueIDBDatabase::notifyServerAboutClose):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

(WebCore::IDBServer::UniqueIDBDatabase::server):

11:10 AM Changeset in webkit [242554] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (r238490): YouTube.com: Returning PiP to Safari after sleeping device loses page
https://bugs.webkit.org/show_bug.cgi?id=195364
<rdar://problem/48538837>

Reviewed by Geoffrey Garen.

Make sure we unset the LayerTreeFreezeReason::ProcessSuspended layer tree freeze reason
when WebPage::applicationWillEnterForeground() is called. This restores pre-r238490
behavior and addresses the issue with PiP on youtube.com.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applicationWillEnterForeground):

11:08 AM Changeset in webkit [242553] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: color swatches aren't shown for valid inputs with leading/trailing whitespace
https://bugs.webkit.org/show_bug.cgi?id=195298

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._generateDOM):
(WI.RecordingActionTreeElement._createSwatchForColorParameters):
Trim the color string since it can be an arbitrary string, seeing as it is captured before
the <canvas> has a chance to parse/fix it.

10:14 AM Changeset in webkit [242552] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Fix WKPasswordView compilation on iOS
https://bugs.webkit.org/show_bug.cgi?id=195344
<rdar://problem/48620066>

Reviewed by Dan Bates.

Use WebKitAdditions.

  • UIProcess/ios/WKPasswordView.mm:

(-[WKPasswordView showInScrollView:]):

9:38 AM Changeset in webkit [242551] by Wenson Hsieh
  • 19 edits in trunk

[iOS] Frequent 1 second IPC deadlocks when showing a paste callout
https://bugs.webkit.org/show_bug.cgi?id=195354
<rdar://problem/48624675>

Reviewed by Tim Horton.

Source/WebKit:

When triggering programmatic paste, we frequently hit deadlocks due to sync IPC going from the UI process to the
web process and vice versa. What happens in this scenario is that prior to triggering programmatic paste, the
page may try to move focus to a different element (e.g. a hidden editable area) before calling execCommand.
This causes us to send an ElementDidFocus message to the UI process, followed by RequestDOMPasteAccess.

However, upon receiving ElementDidFocus, we reload input views and (in the process) UIKit requests the
autocorrection context, which we implement in WebKit using a sync message to the web process due to
<rdar://problem/16207002> and its blocking bug <rdar://problem/48383001>. This means we'll end up in a state
where both the UI process and web process are blocked on each other waiting for a sync IPC response, and the UI
process is hung for a second until the IPC message times out.

Ideally, we should fix this by addressing <rdar://problem/16207002>. However, this requires potentially large
changes in UIKit (<rdar://problem/48383001>); for the time being, work around this deadlock by refactoring
synchronous autocorrection context requests such that they can be resolved by an out-of-band IPC response
(HandleAutocorrectionContext). Then prior to requesting DOM paste access, preemptively send a
HandleAutocorrectionContext message to the UI process to unblock any pending synchronous autocorrection context
requests.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::handleAutocorrectionContext):

  • UIProcess/ios/WKContentViewInteraction.h:

Make it possible for WKContentView to remember its current pending autocorrection context completion handler.
This is invoked and cleared out in -_invokePendingAutocorrectionContextHandler:.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _invokePendingAutocorrectionContextHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
(-[WKContentView _handleAutocorrectionContext:]):

Handle an autocorrection context response. This is invoked when the web process either handles an autocorrection
context message, or when it preemptively sends an autocorrection context before requesting DOM paste access.

(+[WKAutocorrectionContext emptyAutocorrectionContext]):

Add a helper to create an empty autocorrection context.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::requestAutocorrectionContext):
(WebKit::WebPageProxy::handleAutocorrectionContext):
(WebKit::WebPageProxy::autocorrectionContextSync): Deleted.

Removed this sync version, since we now only have requestAutocorrectionContext.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestDOMPasteAccess):

Send WebPageProxy::HandleAutocorrectionContext, and add a FIXME referencing <rdar://problem/16207002>.

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

Split AutocorrectionContextSync into RequestAutocorrectionContext and HandleAutocorrectionContext; additionally,
remove the existing RequestAutocorrectionContext message.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestAutocorrectionContext):
(WebKit::WebPage::autocorrectionContextSync): Deleted.

LayoutTests:

Most of these tests currently encounter and rely on the 1 second IPC timeout to finish. To test this fix, force
ignoreSynchronousMessagingTimeouts=true to make them fail if the processes encounter a deadlock.

  • editing/pasteboard/ios/dom-paste-confirmation.html:
  • editing/pasteboard/ios/dom-paste-consecutive-confirmations.html:
  • editing/pasteboard/ios/dom-paste-rejection.html:
  • editing/pasteboard/ios/dom-paste-requires-user-gesture.html:
  • editing/pasteboard/ios/dom-paste-same-origin.html:
8:21 AM WebKitGTK/2.24.x edited by Carlos Garcia Campos
(diff)
7:57 AM Changeset in webkit [242550] by jfernandez@igalia.com
  • 233 edits
    44 copies
    27 moves
    380 adds
    21 deletes in trunk/LayoutTests

Import new tests from the CSS Text 3 WPT test suite
https://bugs.webkit.org/show_bug.cgi?id=195275

Reviewed by Myles C. Maxfield.

Imported new CSS Text tests from the WPT suite

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/META.yml: Added.
  • web-platform-tests/css/css-text/OWNERS: Removed.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-001-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-001.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-002-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-002.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-003-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-003.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-004-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-004.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-005-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-005.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-006-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-006.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-007-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-007.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-008-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-008.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-009-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-009.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-010-expected.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-010.html: Added.
  • web-platform-tests/css/css-text/boundary-shaping/resources/LinLibertine_Re-4.7.5.woff: Added.
  • web-platform-tests/css/css-text/boundary-shaping/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/i18n/support/w3c-import.log.
  • web-platform-tests/css/css-text/boundary-shaping/w3c-import.log: Added.
  • web-platform-tests/css/css-text/hanging-punctuation/hanging-scrollable-001-expected.html: Added.
  • web-platform-tests/css/css-text/hanging-punctuation/hanging-scrollable-001.html: Added.
  • web-platform-tests/css/css-text/hanging-punctuation/w3c-import.log:
  • web-platform-tests/css/css-text/hyphens/hyphens-auto-001-expected.html: Added.
  • web-platform-tests/css/css-text/hyphens/hyphens-auto-001.html: Added.
  • web-platform-tests/css/css-text/hyphens/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/i18n/support/w3c-import.log.
  • web-platform-tests/css/css-text/i18n/META.yml: Added.
  • web-platform-tests/css/css-text/i18n/OWNERS: Removed.
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-cj-loose.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-cj-normal.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-cj-strict.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-cpm-loose.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-cpm-normal.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-cpm-strict.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-loose.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-normal.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-strict.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-in-loose.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-in-normal.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-in-strict.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-iteration-loose.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-iteration-normal.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-iteration-strict.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-po-loose.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-po-normal.html:
  • web-platform-tests/css/css-text/i18n/ja/css-text-line-break-ja-po-strict.html:
  • web-platform-tests/css/css-text/i18n/ja/w3c-import.log:
  • web-platform-tests/css/css-text/i18n/support/w3c-import.log:
  • web-platform-tests/css/css-text/i18n/w3c-import.log:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-cpm-loose.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-cpm-normal.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-cpm-strict.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-loose.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-normal.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-strict.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-in-loose.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-in-normal.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-in-strict.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-iteration-loose.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-iteration-normal.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-iteration-strict.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-po-loose.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-po-normal.html:
  • web-platform-tests/css/css-text/i18n/zh/css-text-line-break-zh-po-strict.html:
  • web-platform-tests/css/css-text/i18n/zh/w3c-import.log:
  • web-platform-tests/css/css-text/inheritance-expected.txt: Added.
  • web-platform-tests/css/css-text/inheritance.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-bidi-001-expected.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-bidi-001.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-bidi-002-expected.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-bidi-002.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-end-of-line-001-expected.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-end-of-line-001.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-nesting-001-expected.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-nesting-001.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-nesting-002-expected.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/letter-spacing-nesting-002.html: Added.
  • web-platform-tests/css/css-text/letter-spacing/w3c-import.log:
  • web-platform-tests/css/css-text/line-break/line-break-loose-011-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-011-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-011.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-011.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-012-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-012-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-012.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-012.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-013-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-013-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-013.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-013.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-014-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-021-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-014.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-014.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-015-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-022-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-015.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-015.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-016a-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-023a-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-016a.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-013.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-016b-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-016b-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-016b.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-023b.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-017a-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-017a-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-017a.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-017a.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-017b-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-024b-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-017b.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-024b.xht.
  • web-platform-tests/css/css-text/line-break/line-break-loose-018-expected.xht: Added.
  • web-platform-tests/css/css-text/line-break/line-break-loose-018.xht: Added.
  • web-platform-tests/css/css-text/line-break/line-break-normal-011-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-011-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-011.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-011.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-012-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-012-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-012.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-012.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-013-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-013-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-013.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-013.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-014-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-021-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-014.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-021.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-015-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-022-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-015.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-022.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-016a-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-013-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-016a.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-023a.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-016b-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-023b-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-016b.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-023b.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-017a-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-024a-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-017a.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-024a.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-017b-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-024b-expected.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-017b.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-024b.xht.
  • web-platform-tests/css/css-text/line-break/line-break-normal-018-expected.xht: Added.
  • web-platform-tests/css/css-text/line-break/line-break-normal-018.xht: Added.
  • web-platform-tests/css/css-text/line-break/line-break-strict-011-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-011.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-012-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-012.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-013-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-013.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-014-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-014.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-015-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-015.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-016a-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-016a.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-016b-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-016b.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-017a-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-017a.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-017b-expected.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-017b.xht:
  • web-platform-tests/css/css-text/line-break/line-break-strict-018-expected.xht: Added.
  • web-platform-tests/css/css-text/line-break/line-break-strict-018.xht: Added.
  • web-platform-tests/css/css-text/line-break/w3c-import.log:
  • web-platform-tests/css/css-text/line-breaking/w3c-import.log:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-001.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-002.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003-expected.html: Removed.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003.html: Removed.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-004.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-005-expected.html: Removed.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-005.html: Removed.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-001.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-002-expected.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-002.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-002.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-003-expected.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-003.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-003.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-004.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-005-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-005.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-fit-content-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-fit-content-001.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-span-001-expected.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-span-001.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-span-002-expected.txt: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-span-002.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-002.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-003-expected.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-003.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-004.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-005-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-005.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-006-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-006.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-span-001-expected.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-span-001.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-span-002-expected.txt: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-span-002.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-002-expected.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-002.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-003-expected.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-003.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-004-expected.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-004.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.
  • web-platform-tests/css/css-text/overflow-wrap/w3c-import.log:
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-001.html:
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-002.html:
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-003-expected.html: Removed.
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-003.html: Removed.
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-004.html:
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-005-expected.html: Removed.
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-005.html: Removed.
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias-expected.txt: Added.
  • web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias.html: Added.
  • web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/hanging-punctuation-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/hanging-punctuation-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/hyphens-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/hyphens-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/hyphens-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/hyphens-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/letter-spacing-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/letter-spacing-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/letter-spacing-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/letter-spacing-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/line-break-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/line-break-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/line-break-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/line-break-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/overflow-wrap-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/overflow-wrap-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/overflow-wrap-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/overflow-wrap-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/tab-size-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/tab-size-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/tab-size-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/tab-size-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-align-all-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-align-all-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-align-all-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-align-all-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-align-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-align-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-align-last-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-align-last-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-align-last-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-align-last-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-align-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-align-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-indent-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-indent-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-indent-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-indent-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-justify-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-justify-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-justify-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-justify-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-transform-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-transform-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/text-transform-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/text-transform-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/w3c-import.log: Added.
  • web-platform-tests/css/css-text/parsing/white-space-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/white-space-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/white-space-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/white-space-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/word-break-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/word-break-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/word-break-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/word-break-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/word-spacing-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/word-spacing-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/word-spacing-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/word-spacing-valid.html: Added.
  • web-platform-tests/css/css-text/parsing/word-wrap-invalid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/word-wrap-invalid.html: Added.
  • web-platform-tests/css/css-text/parsing/word-wrap-valid-expected.txt: Added.
  • web-platform-tests/css/css-text/parsing/word-wrap-valid.html: Added.
  • web-platform-tests/css/css-text/support/support/w3c-import.log:
  • web-platform-tests/css/css-text/support/w3c-import.log:
  • web-platform-tests/css/css-text/tab-size/tab-min-rendered-width-1-expected.html: Added.
  • web-platform-tests/css/css-text/tab-size/tab-min-rendered-width-1.html: Added.
  • web-platform-tests/css/css-text/tab-size/tab-size-inheritance-001-expected.html: Added.
  • web-platform-tests/css/css-text/tab-size/tab-size-inheritance-001.html: Added.
  • web-platform-tests/css/css-text/tab-size/tab-size-spacing-001-expected.html: Added.
  • web-platform-tests/css/css-text/tab-size/tab-size-spacing-001.html: Added.
  • web-platform-tests/css/css-text/tab-size/w3c-import.log:
  • web-platform-tests/css/css-text/text-align/w3c-import.log:
  • web-platform-tests/css/css-text/text-indent/percentage-value-intrinsic-size-expected.txt: Added.
  • web-platform-tests/css/css-text/text-indent/percentage-value-intrinsic-size.html: Added.
  • web-platform-tests/css/css-text/text-indent/text-indent-percentage-001-expected.xht:
  • web-platform-tests/css/css-text/text-indent/text-indent-percentage-001.xht:
  • web-platform-tests/css/css-text/text-indent/text-indent-percentage-002-expected.html: Added.
  • web-platform-tests/css/css-text/text-indent/text-indent-percentage-002.html: Added.
  • web-platform-tests/css/css-text/text-indent/text-indent-percentage-003-expected.html: Added.
  • web-platform-tests/css/css-text/text-indent/text-indent-percentage-003.html: Added.
  • web-platform-tests/css/css-text/text-indent/text-indent-percentage-004-expected.html: Added.
  • web-platform-tests/css/css-text/text-indent/text-indent-percentage-004.html: Added.
  • web-platform-tests/css/css-text/text-indent/w3c-import.log:
  • web-platform-tests/css/css-text/text-justify/w3c-import.log:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-001-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-001.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-003-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-003.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-005-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-005.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-007-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-007.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-009-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-009.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-010-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-010.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-011-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-011.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-014-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-014.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-016-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-016.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-018-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-018.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-020-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-020.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-022-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-022.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-024-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-024.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-026-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-026.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-028-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-028.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-030-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-030.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-031-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-031.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-033-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-capitalize-033.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-001-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-001.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-002-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-002.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-003-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-003.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-004-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-004.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-005-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-005.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-006-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-006.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-007-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-007.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-shaping-001-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-shaping-001.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-shaping-002-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-shaping-002.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-shaping-003-expected.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-shaping-003.html: Added.
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-001-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-001.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-002-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-002.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-002a-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-002a.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-003-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-003.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-004-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-004.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-005-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-tailoring-005.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-001-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-001.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-002-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-002.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-003-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-003.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-004-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-004.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-005-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-005.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-006-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-006.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-007-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-007.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-008-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-008.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-009-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-009.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-010-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-010.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-011-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-011.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-012-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-012.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-014-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-014.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-015-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-015.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-016-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-016.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-017-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-017.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-018-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-018.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-019-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-019.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-020-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-020.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-021-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-021.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-022-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-022.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-023-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-023.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-024-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-024.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-025-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-025.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-026-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-026.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-027-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-027.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-028-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-028.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-029-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-029.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-030-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-030.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-031-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-031.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-032-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-032.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-033-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-033.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-034-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-034.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-035-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-035.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-038-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-038.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-039-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-039.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-040-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-040.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-041-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-041.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-042-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-042.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-043-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-043.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-101-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-101.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-102-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-102.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-103-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-103.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-104-expected.html:
  • web-platform-tests/css/css-text/text-transform/text-transform-upperlower-104.html:
  • web-platform-tests/css/css-text/text-transform/w3c-import.log:
  • web-platform-tests/css/css-text/w3c-import.log:
  • web-platform-tests/css/css-text/white-space/break-spaces-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/white-space/break-spaces-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008.html.
  • web-platform-tests/css/css-text/white-space/break-spaces-002-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-009-expected.html.
  • web-platform-tests/css/css-text/white-space/break-spaces-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-009.html.
  • web-platform-tests/css/css-text/white-space/break-spaces-004-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-010-expected.html.
  • web-platform-tests/css/css-text/white-space/break-spaces-004.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-005-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-005.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-006-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-006.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-007-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-007.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-008-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-008.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-000-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-000.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-001.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-002-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-002.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-003-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-003.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-004-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-004.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-005-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-005.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-006-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-006.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-007-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-007.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-008-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-008.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-00B-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-00B.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-00D-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-00D.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-00E-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-00E.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-00F-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-00F.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-010-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-010.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-011-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-011.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-012-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-012.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-013-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-013.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-014-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-014.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-015-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-015.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-016-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-016.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-017-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-017.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-018-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-018.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-019-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-019.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01A-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01A.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01B-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01B.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01C-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01C.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01D-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01D.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01E-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01E.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01F-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-01F.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-07F-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-07F.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-080-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-080.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-081-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-081.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-082-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-082.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-083-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-083.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-084-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-084.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-085-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-085.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-086-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-086.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-087-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-087.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-088-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-088.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-089-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-089.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08A-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08A.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08B-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08B.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08C-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08C.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08D-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08D.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08E-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08E.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08F-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-08F.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-090-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-090.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-091-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-091.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-092-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-092.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-093-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-093.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-094-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-094.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-095-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-095.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-096-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-096.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-097-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-097.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-098-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-098.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-099-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-099.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09A-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09A.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09B-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09B.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09C-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09C.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09D-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09D.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09E-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09E.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09F-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/control-chars-09F.html: Added.
  • web-platform-tests/css/css-text/white-space/line-edge-white-space-collapse-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/line-edge-white-space-collapse-001.html: Added.
  • web-platform-tests/css/css-text/white-space/line-edge-white-space-collapse-002-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/line-edge-white-space-collapse-002.html: Added.
  • web-platform-tests/css/css-text/white-space/pre-float-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/pre-float-001.html: Added.
  • web-platform-tests/css/css-text/white-space/pre-wrap-002.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-010.html: Removed.
  • web-platform-tests/css/css-text/white-space/pre-wrap-012-expected.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-012.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-013-expected.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-013.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-014-expected.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-014.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-015-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/white-space/pre-wrap-015.html: Added.
  • web-platform-tests/css/css-text/white-space/pre-wrap-016-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/white-space/pre-wrap-016.html: Added.
  • web-platform-tests/css/css-text/white-space/pre-wrap-float-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/pre-wrap-float-001.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-001.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-002-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-002.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-003-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-003.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-004-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-004.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-005-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-005.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-006-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/tab-stop-threshold-006.html: Added.
  • web-platform-tests/css/css-text/white-space/text-space-collapse-discard-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-collapsing-discard-001-expected.xht.
  • web-platform-tests/css/css-text/white-space/text-space-collapse-discard-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-collapsing-discard-001.xht.
  • web-platform-tests/css/css-text/white-space/text-space-collapse-preserve-breaks-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-collapsing-preserve-breaks-001-expected.xht.
  • web-platform-tests/css/css-text/white-space/text-space-collapse-preserve-breaks-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-collapsing-preserve-breaks-001.xht.
  • web-platform-tests/css/css-text/white-space/text-space-trim-trim-inner-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-collapsing-trim-inner-001-expected.xht.
  • web-platform-tests/css/css-text/white-space/text-space-trim-trim-inner-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-collapsing-trim-inner-001.xht.
  • web-platform-tests/css/css-text/white-space/textarea-break-spaces-001-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/textarea-pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/white-space/textarea-break-spaces-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/textarea-pre-wrap-008.html.
  • web-platform-tests/css/css-text/white-space/textarea-break-spaces-002-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/textarea-pre-wrap-009-expected.html.
  • web-platform-tests/css/css-text/white-space/textarea-break-spaces-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/textarea-pre-wrap-009.html.
  • web-platform-tests/css/css-text/white-space/textarea-pre-wrap-010-expected.html: Removed.
  • web-platform-tests/css/css-text/white-space/textarea-pre-wrap-010.html: Removed.
  • web-platform-tests/css/css-text/white-space/trailing-ideographic-space-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/trailing-ideographic-space-001.html: Added.
  • web-platform-tests/css/css-text/white-space/trailing-ideographic-space-002-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/trailing-ideographic-space-002.html: Added.
  • web-platform-tests/css/css-text/white-space/trailing-ideographic-space-003-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/trailing-ideographic-space-003.html: Added.
  • web-platform-tests/css/css-text/white-space/trailing-ideographic-space-004-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/trailing-ideographic-space-004.html: Added.
  • web-platform-tests/css/css-text/white-space/trailing-space-before-br-001-expected.txt: Added.
  • web-platform-tests/css/css-text/white-space/trailing-space-before-br-001.html: Added.
  • web-platform-tests/css/css-text/white-space/w3c-import.log:
  • web-platform-tests/css/css-text/white-space/white-space-empty-text-sibling-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-empty-text-sibling.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-pre-wrap-trailing-spaces-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-pre-wrap-trailing-spaces-001.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-pre-wrap-trailing-spaces-002-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-pre-wrap-trailing-spaces-002.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-pre-wrap-trailing-spaces-003-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-pre-wrap-trailing-spaces-003.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-wrap-after-nowrap-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/white-space-wrap-after-nowrap-001.html: Added.
  • web-platform-tests/css/css-text/word-break/w3c-import.log:
  • web-platform-tests/css/css-text/word-break/word-break-001.html: Removed.
  • web-platform-tests/css/css-text/word-break/word-break-002.html: Removed.
  • web-platform-tests/css/css-text/word-break/word-break-003.html: Removed.
  • web-platform-tests/css/css-text/word-break/word-break-004.html: Removed.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-008.html:
  • web-platform-tests/css/css-text/word-break/word-break-break-all-009-expected.xht: Removed.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-009.xht: Removed.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-010-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-010.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-011-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-011.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-012-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-012.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-013-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-013.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-014-expected.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-014.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-020-expected.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-020.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-keep-all-003-expected.html:
  • web-platform-tests/css/css-text/word-break/word-break-keep-all-003.html:
  • web-platform-tests/css/css-text/word-break/word-break-keep-all-004-expected.xht: Removed.
  • web-platform-tests/css/css-text/word-break/word-break-keep-all-004.xht: Removed.
  • web-platform-tests/css/css-text/word-break/word-break-keep-all-005-expected.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-keep-all-005.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-keep-all-006-expected.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-keep-all-006.html: Added.
  • web-platform-tests/css/css-text/writing-system/w3c-import.log: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-font-001-expected.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-font-001.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-line-break-001-expected.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-line-break-001.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-line-break-002-expected.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-line-break-002.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-segment-break-001-expected.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-segment-break-001.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-text-transform-001-expected.html: Added.
  • web-platform-tests/css/css-text/writing-system/writing-system-text-transform-001.html: Added.

LayoutTests:

  • TestExpectations: Flag tests that are not passing right now.
  • platform/gtk/TestExpectations: A few tests pass now.
7:21 AM Changeset in webkit [242549] by commit-queue@webkit.org
  • 6 edits
    1 copy
    242 adds in trunk/LayoutTests

Update WPT tests for the track element
https://bugs.webkit.org/show_bug.cgi?id=195358

Patch by Frederic Wang <fwang@igalia.com> on 2019-03-06
Reviewed by Rob Buis.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/003.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/004.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/005.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/006.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/007.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/008.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/009.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/010.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/011.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/012.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/013.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/014.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/015.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/016.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/017.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/018.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/019.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/020.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/021.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/022.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/023.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/024.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/025.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/026.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/027.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/028.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/029.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/030.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/031.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/032.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/033.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/034.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/035.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/036.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/037.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/038.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/039.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/040.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/041.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/042.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/043.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/044.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/045.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/046.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/support/common.js: Added.

(setup):
(window.otherOriginURL.string_appeared_here.location.pathname.replace):
(onload):
(setCrossDomainCookie):
(loadTrack.):
(loadTrack):
(removeLog):
(checkData):

  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/support/cors-tester.py: Added.

(main):

  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/support/remove-cookie.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/support/set-cookie.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/support/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/w3c-import.log: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/align-positioning-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/align-positioning.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/align-text-line-position-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/align-text-line-position.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/alignment-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/alignment-ltr.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/alignment.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/bom.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/captions-fast.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/captions-gaps.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/captions-html.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/captions.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/class-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/class.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-id-error.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-id.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-no-id-error.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-no-id.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-recovery-cuetext.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-recovery-header.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-recovery-note.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-size-align-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-size-align.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-size-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cue-size.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-no-separation.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-overlapping.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/default-styles.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/degenerate-cues.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/empty-cue.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/entities-wrong.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/entities.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/interspersed-non-cue.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/iso2022jp3.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/large-timestamp.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/line-position-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/line-position.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/markup-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/markup.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/metadata-area.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/metadata.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/missed-cues.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/no-newline-at-eof.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/no-timings.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/no-webvtt.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/positioning-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/positioning-ltr.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/positioning.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/settings-bad-separation.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/settings.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/simple-captions.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/sorted-dispatch.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/timestamp-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/timestamp.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/timings-hour-error.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/timings-hour.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/timings-no-hour-errors.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/timings-no-hour.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/timings-whitespace.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/unsupported-markup.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/utf8.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/valign-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/valign-ltr.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/valign.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/voice-bad.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/voice.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/vp8-vorbis-webvtt.webm: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/webvtt-file.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/webvtt-rubbish.vtt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/src-empty-string.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-active-cues.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-add-remove-cue.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-add-track-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-add-track.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-addtrack-kind-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-addtrack-kind.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-change-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-change-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-css-cue-pseudo-class-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-css-cue-pseudo-class.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-empty-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-empty.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-inline-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-inline.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-mutable-fragment.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-mutable.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-added-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-added.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-removed-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-after-controls-removed.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-missed.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-pause-on-exit.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-seeking.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-sorted-before-dispatch.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-default-attribute.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-delete-during-setup-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-delete-during-setup.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-disabled-addcue.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-disabled.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-element-dom-change-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-element-dom-change.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-element-src-change-error.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-element-src-change.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-helpers.js: Added.

(enableAllTextTracks):
(assert_cues_equal):
(assert_cues_match):
(assert_cues_html_content):
(check_cues_from_track):
(assert_cue_fragment_as_textcontent):
(createFragment):
(cloneChildrenToFragment):

  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-id-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-id.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-insert-after-load.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-large-timestamp.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-load-error-readyState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-load-from-element-readyState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-load-from-src-readyState-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-load-from-src-readyState.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-disabled.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-not-changed-by-new-track.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-triggers-loading.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-node-add-remove-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-node-add-remove.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-active-cue.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-by-setting-innerHTML.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-insert-ready-state.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-quickly-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-quickly.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track-inband.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-selection-metadata-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-selection-metadata.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-text-track-cue-list.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-texttracks-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-texttracks.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-align-positioning-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-align-positioning.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-align-text-line-position-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-align-text-line-position.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-alignment.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-blank-lines.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-bom.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-class-markup.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-cue-identifiers.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-cue-no-id.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-cue-recovery.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-cue-size-align.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-cue-size.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-degenerate-cues.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-empty-cue.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-entities.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-header-comment-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-header-comment.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-interspersed-non-cue.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-line-position-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-line-position.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-magic-header-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-magic-header.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-markup.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-newlines.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-no-timings.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-positioning.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-settings.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-timestamp.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-timings-hour-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-timings-hour.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-timings-no-hours-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-timings-no-hours.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-timings-whitespace.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-unsupported-markup.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-utf8-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-utf8.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-valign.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-voice.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/vtt-cue-float-precision-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/vtt-cue-float-precision.html: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/w3c-import.log:

LayoutTests:

5:50 AM Changeset in webkit [242548] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.23.92

WebKitGTK 2.23.92

5:49 AM Changeset in webkit [242547] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.23.92 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.23.92.
5:30 AM Changeset in webkit [242546] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/gtk/po

Merge r242436 - [GTK][l10n] Updated Polish translation of WebKitGTK for 2.24
https://bugs.webkit.org/show_bug.cgi?id=194859

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2019-03-05
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
5:30 AM Changeset in webkit [242545] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WTF

Merge r242353 - URLHelpers should use unorm2_quickCheck before converting to NFC
https://bugs.webkit.org/show_bug.cgi?id=194272

Reviewed by Darin Adler.

If the string is already in normalization form C, don't try to normalize it.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::toNormalizationFormC):

5:30 AM Changeset in webkit [242544] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebDriver

Merge r242352 - WebDriver: fix String not terminated with null caracter
https://bugs.webkit.org/show_bug.cgi?id=195274

Patch by Karl Leplat <karl.leplat_ext@softathome.com> on 2019-03-04
Reviewed by Carlos Garcia Campos.

This has been detected by an exception returned by the function
evaluateJavaScriptFunction with the message :
[native code]: JS ERROR SyntaxError: Unexpected keyword 'function'. Expected ')' to end a compound expression.
keyword 'function' has been initialized with a string that come from char array, not a null-terminated string.

  • Session.cpp:

(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::elementClear):

5:30 AM Changeset in webkit [242543] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Merge r242351 - [GTK][WPE] Wrong license header in WebKit{,WebExtension}Autocleanups.h
https://bugs.webkit.org/show_bug.cgi?id=195245

Reviewed by Carlos Garcia Campos.

Changed license headers to contain the LGPL, which is the correct one for the GTK
and WPE ports. The change was agreed by the contributors to the files involved.

  • UIProcess/API/gtk/WebKitAutocleanups.h:
  • UIProcess/API/wpe/WebKitAutocleanups.h:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitWebExtensionAutocleanups.h:
5:30 AM Changeset in webkit [242542] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24

Merge r242349 - [GLib] Returning G_TYPE_OBJECT from a constructor does not work
https://bugs.webkit.org/show_bug.cgi?id=195206

Reviewed by Žan Doberšek.

Source/JavaScriptCore:

We are freeing the newly created object before returning from the constructor.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::construct):

Tools:

Add a new test case.

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

(testJSCClass):

5:30 AM Changeset in webkit [242541] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore/platform/gtk/po

Merge r242348 - Unreviewed. Update POTFILES.in after r239627.

  • POTFILES.in:
5:30 AM Changeset in webkit [242540] by Carlos Garcia Campos
  • 23 edits
    2 deletes in releases/WebKitGTK/webkit-2.24

Merge r242330 - Retire legacy dtoa function and DecimalNumber class
https://bugs.webkit.org/show_bug.cgi?id=195253

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Rebaseline still-failing part of this test that dumps super-small numbers that are formatted
differently by the new code (exponential style).

Source/JavaScriptCore:

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToExponential): Removed dependency on NumberToStringBufferLength,
using NumberToStringBuffer instead. Also tweaked style of implementation a bit.

Source/WebCore:

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberValue const): Use makeString instead
of DecimalNumber. Also changed return type to String and use StringView and
removed special handling of literals.
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const): Removed an
unnecessary use of StringBuilder.

  • css/CSSPrimitiveValue.h: Updated for changes to formatNumberValue.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj: Removed DecimalNumber.cpp/h.
  • wtf/CMakeLists.txt: Ditto.
  • wtf/DecimalNumber.cpp: Removed.
  • wtf/DecimalNumber.h: Removed.
  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::writeJSON const): Use
StringBuilder::appendECMAScriptNumber instead of custom logic
using the DecimalNumber class.

  • wtf/dtoa.cpp:

(WTF::storeInc): Deleted.
(WTF::BigInt): Deleted.
(WTF::multadd): Deleted.
(WTF::hi0bits): Deleted.
(WTF::lo0bits): Deleted.
(WTF::i2b): Deleted.
(WTF::mult): Deleted.
(WTF::P5Node::P5Node): Deleted.
(WTF::pow5mult): Deleted.
(WTF::lshift): Deleted.
(WTF::cmp): Deleted.
(WTF::diff): Deleted.
(WTF::d2b): Deleted.
(WTF::quorem): Deleted.
(WTF::dtoa): Deleted.

  • wtf/dtoa.h: Removed DtoaBuffer, dtoa, and NumberToStringBufferLength.

LayoutTests:

  • fast/css/large-value-csstext-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:

Updated expected value to expect exponential syntax for super-small numbers that are formatted
differently by the new code.

  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:

Rebaseline still-failing parts of these tests that dump super-small numbers that are formatted
differently by the new code. Still probably needs to be done for 4 other platforms.

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

Merge r242328 - [SOUP] Cleanups in SoupNetworkSession
https://bugs.webkit.org/show_bug.cgi?id=195247

Reviewed by Daniel Bates.

This renames clientCertificates to allowedCertificates, since they are not client
certificates at all, but server certificates. It also adds a using statement to avoid
repeating the long type of the map, and avoids an unnecessary copy.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::allowedCertificates):
(WebCore::SoupNetworkSession::checkTLSErrors):
(WebCore::SoupNetworkSession::allowSpecificHTTPSCertificateForHost):
(WebCore::clientCertificates): Deleted.

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

Merge r242327 - -Wformat error in SharedBuffer::tryCreateArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=195004

Reviewed by Darin Adler.

Seems C++ has no format specifier appropriate for printing the result of sizeof. We should
just not try to print it. Anyway, that's easy in this case, because sizeof(char) is
guaranteed to be 1. This code was an attempt to be pedantic to account for mythical systems
with char larger than one byte, but perhaps it didn't realize sizeof always returns
multiples of char and so sizeof(char) is always one even on such mythical systems.

Note the sizeof(char) use two lines up is left since it's not clear that switching it to 1
would actually be more readable.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::tryCreateArrayBuffer const):

5:30 AM Changeset in webkit [242537] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.24/Source

Merge r242316 - Fixed makeString(float) to do shortest-form serialization without first converting to double
https://bugs.webkit.org/show_bug.cgi?id=195142

Reviewed by Daniel Bates.

Source/WebCore:

  • platform/graphics/Color.cpp: Removed unneeded include of DecimalNumber.h.

Source/WebKit:

  • UIProcess/PerActivityStateCPUUsageSampler.cpp: Removed unneeded include of DecimalNumber.h.

Source/WTF:

  • wtf/DecimalNumber.cpp: Removed unneeded includes.
  • wtf/DecimalNumber.h: Removed unused constructors; over time we will be

deprecating DecimalNumber, so we should removed the unused parts. Also
marked the constructor explicit, removed types used only for arguments for
the constructors, and removed the sign, exponent, significand, and precision
member functions.

  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::writeJSON const): Updated for changes to DecimalNumber
switched from NumberToLStringBuffer to NumberToStringBuffer, and for use of
std::array instead of C arrays.

  • wtf/dtoa.cpp: Removed unused dtoaRoundSF and dtoaRoundDP functions.

(WTF::dtoa): Updated to use std::array instead of C arrays.
(WTF::dtoaRoundSF): Removed.
(WTF::dtoaRoundDP): Removed.
(WTF::numberToString): Added an overload for float and updated to use std::array.
(WTF::formatStringTruncatingTrailingZerosIfNeeded): Updated to use std::array.
(WTF::numberToFixedPrecisionString): Ditto.
(WTF::numberToFixedWidthString): Ditto.

  • wtf/dtoa.h: Changed arrays to be std::array instead of C arrays so the

array types will be checked. Removed dtoaRoundSF and dtoaRoundDP.
Added float overloads for numberToString, numberToFixedPrecisionString,
and numberToFixedWidthString. The only one of these that is called at this
time is numberToString, called by the floating point StringTypeAdapter in
StringConcatenateNummbers.h.

  • wtf/text/StringConcatenateNumbers.h: Updated for std::array.
5:29 AM Changeset in webkit [242536] by Carlos Garcia Campos
  • 1 edit in releases/WebKitGTK/webkit-2.24/Source/WebKit/ChangeLog

Merge r242312 - [WPE] Public API headers are missing autocleanup definitions
https://bugs.webkit.org/show_bug.cgi?id=195211

Reviewed by Philippe Normand.

  • PlatformWPE.cmake: List new API headers as installable.
  • UIProcess/API/wpe/WebKitAutocleanups.h: Added. This is a copy of the header from the GTK

port, adapted to fit the WPE port.

  • UIProcess/API/wpe/webkit.h: Add inclusion of WebKitAutocleanups.h
  • WebProcess/InjectedBundle/API/wpe/WebKitWebExtensionAutocleanups.h: Added. Also adapted

from the equivalent header of the GTK port.

  • WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h: Add inclusion of

WebKitWebExtensionAutocleanups.h

5:29 AM Changeset in webkit [242535] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.24

Merge r242309 - [Datalist] fast/forms/datalist/datalist-child-validation.html crashes with a debug assertion in isValidFormControlElement()
https://bugs.webkit.org/show_bug.cgi?id=190620
<rdar://problem/19226679>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fixes and re-enables an existing layout test that is asserting on debug builds (and failing on release builds).
To understand why we hit this assertion, we first note several observations:

  • The validity of a form control (isValid()) depends on the value of willValidate().
  • Both of these results are cached in member variables: m_isValid and m_willValidate, respectively.
  • willValidate() changes the cached value of m_willValidate if necessary, but isValid() uses the

cached value without update.

Now, consider the following scenario:

  1. Something changes in the DOM that changes the result of willValidate(). This can happen as a result of

several things:

  1. The form control changes readonly state
  2. The form control changes disabled state
  3. The form control is added to a datalist element
  4. The form control is removed from a datalist element
  1. Call willValidate().
  2. Call isValid().

In scenarios (a) - (c), we ensure that cached form control validity (m_isValid) is updated alongside
m_willValidate by invoking setNeedsWillValidateCheck(), such that the result of isValid() matches the
result of m_isValid in step (3). However, in the last scenario (d), we don't do this, which causes form
control validity to fall out of sync with the result of isValid(). To fix the bug, we update willValidate and
isValid when a form control is removed from an ancestor, only if one of its ancestors is a datalist element.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::insertedIntoAncestor):
(WebCore::HTMLFormControlElement::removedFromAncestor):

Make a couple of minor tweaks:

  • Currently, we always invalidate m_dataListAncestorState by resetting the state to Unknown when the form control is removed from an ancestor or inserted. Instead, we only need to reset it when the form control already has an ancestor that is a datalist (in the case where it's being removed) or when the form control does not yet have an ancestor (in the case where it is being added).
  • If the form control was inside a datalist prior to removal, recompute its cached value of m_willValidate, as well as its cached validity (m_isValid).

LayoutTests:

Re-enables a crashing layout test. See WebCore ChangeLog for more details.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
3:28 AM Changeset in webkit [242534] by commit-queue@webkit.org
  • 28 edits
    57 adds in trunk

Consider supporting the referrerpolicy attribute.
https://bugs.webkit.org/show_bug.cgi?id=179053

Patch by Rob Buis <rbuis@igalia.com> on 2019-03-06
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved results.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

This patch adds 'referrerpolicy' attribute support for iframe.
If set, the value is restricted to the ReferrerPolicy enum, and
if valid it is used for the subframe load.
If not set or invalid, the current behavior is kept.

Tests: http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http-http.html

http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http.https.html
http/tests/referrer-policy-iframe/no-referrer-when-downgrade/same-origin.html
http/tests/referrer-policy-iframe/no-referrer/cross-origin-http-http.html
http/tests/referrer-policy-iframe/no-referrer/cross-origin-http.https.html
http/tests/referrer-policy-iframe/no-referrer/same-origin.html
http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http-http.html
http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http.https.html
http/tests/referrer-policy-iframe/origin-when-cross-origin/same-origin.html
http/tests/referrer-policy-iframe/origin/cross-origin-http-http.html
http/tests/referrer-policy-iframe/origin/cross-origin-http.https.html
http/tests/referrer-policy-iframe/origin/same-origin.html
http/tests/referrer-policy-iframe/same-origin/cross-origin-http-http.html
http/tests/referrer-policy-iframe/same-origin/cross-origin-http.https.html
http/tests/referrer-policy-iframe/same-origin/same-origin.html
http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http-http.html
http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http.https.html
http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/same-origin.html
http/tests/referrer-policy-iframe/strict-origin/cross-origin-http-http.html
http/tests/referrer-policy-iframe/strict-origin/cross-origin-http.https.html
http/tests/referrer-policy-iframe/strict-origin/same-origin.html
http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http-http.html
http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http.https.html
http/tests/referrer-policy-iframe/unsafe-url/same-origin.html

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

(WebCore::HTMLFrameOwnerElement::referrerPolicy const):

  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::setReferrerPolicyForBindings):
(WebCore::HTMLIFrameElement::referrerPolicyForBindings const):
(WebCore::HTMLIFrameElement::referrerPolicy const):

  • html/HTMLIFrameElement.h:
  • html/HTMLIFrameElement.idl:
  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadSubframe):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::referrerPolicyAttributeEnabled const):
(WebCore::RuntimeEnabledFeatures::setReferrerPolicyAttributeEnabled):

  • platform/ReferrerPolicy.cpp:

(WebCore::parseReferrerPolicy):

  • platform/ReferrerPolicy.h:

Source/WebKit:

Add a runtime flag for referrerpolicy attribute.

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

(WKPreferencesSetReferrerPolicyAttributeEnabled):
(WKPreferencesGetReferrerPolicyAttributeEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource): do not hardcode choosing
the document referrer policy.

Source/WebKitLegacy/mac:

Add a runtime flag for referrerpolicy attribute.

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

(+[WebPreferences initialize]):
(-[WebPreferences referrerPolicyAttributeEnabled]):
(-[WebPreferences setReferrerPolicyAttributeEnabled:]):

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

(-[WebView _preferencesChanged:]):

Tools:

Add a runtime flag for referrerpolicy attribute.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

LayoutTests:

Add tests for referrerpolicy attribute based on the referrer-policy
meta referrer tests.
Update improved results for reflection-embedded.html.
Mark some of the tests as Failure on windows.

  • http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-iframe/no-referrer-when-downgrade/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-iframe/no-referrer-when-downgrade/same-origin.html: Added.
  • http/tests/referrer-policy-iframe/no-referrer/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-iframe/no-referrer/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-iframe/no-referrer/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-iframe/no-referrer/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-iframe/no-referrer/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-iframe/no-referrer/same-origin.html: Added.
  • http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-iframe/origin-when-cross-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-iframe/origin-when-cross-origin/same-origin.html: Added.
  • http/tests/referrer-policy-iframe/origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-iframe/origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-iframe/origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-iframe/origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-iframe/origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-iframe/origin/same-origin.html: Added.
  • http/tests/referrer-policy-iframe/same-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-iframe/same-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-iframe/same-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-iframe/same-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-iframe/same-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-iframe/same-origin/same-origin.html: Added.
  • http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/same-origin.html: Added.
  • http/tests/referrer-policy-iframe/strict-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-iframe/strict-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-iframe/strict-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-iframe/strict-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-iframe/strict-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-iframe/strict-origin/same-origin.html: Added.
  • http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-iframe/unsafe-url/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-iframe/unsafe-url/same-origin.html: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/win/TestExpectations:
2:31 AM Changeset in webkit [242533] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests/imported/w3c

Update WPT tests for the canvas element
https://bugs.webkit.org/show_bug.cgi?id=195331

Patch by Frederic Wang <fwang@igalia.com> on 2019-03-06
Reviewed by Youenn Fablet.

  • resources/import-expectations.json:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.whitespace.html:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
2:25 AM Changeset in webkit [242532] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

Unreviewed, WPE build fix after r242503

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

ServiceWorker messages moved from network process to another
header, so it needs to be included.

Mar 5, 2019:

11:37 PM Changeset in webkit [242531] by commit-queue@webkit.org
  • 1 edit
    28 adds in trunk/LayoutTests

Add referrer-policy tests
https://bugs.webkit.org/show_bug.cgi?id=195269

Patch by Rob Buis <rbuis@igalia.com> on 2019-03-05
Reviewed by Daniel Bates.

The tests in http/tests/referrer-policy do not test all referrer-policy
values, add the remaining values.

  • http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy/no-referrer-when-downgrade/same-origin-expected.txt: Added.
  • http/tests/referrer-policy/no-referrer-when-downgrade/same-origin.html: Added.
  • http/tests/referrer-policy/no-referrer/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy/no-referrer/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy/no-referrer/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy/no-referrer/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy/no-referrer/same-origin-expected.txt: Added.
  • http/tests/referrer-policy/no-referrer/same-origin.html: Added.
  • http/tests/referrer-policy/origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy/origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy/origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy/origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy/origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy/origin/same-origin.html: Added.
  • http/tests/referrer-policy/unsafe-url/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy/unsafe-url/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy/unsafe-url/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy/unsafe-url/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy/unsafe-url/same-origin-expected.txt: Added.
  • http/tests/referrer-policy/unsafe-url/same-origin.html: Added.
9:48 PM Changeset in webkit [242530] by dbates@webkit.org
  • 2 edits in trunk/Tools

Update expected API test result following r242379
(https://bugs.webkit.org/show_bug.cgi?id=195125)

Update expected x-coordinate of selection rect now that the left padding of
a textarea is sized in ems (so dependent on the font size) just like the left
padding of a text field.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::TEST):

8:11 PM Changeset in webkit [242529] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/Source/WebCore

[curl] Remove unnecessary file.
https://bugs.webkit.org/show_bug.cgi?id=195350

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-03-05
Reviewed by Fujii Hironori.

Removed unused file.

No new tests. No change in behavior.

  • platform/network/curl/CookieJarCurlDatabase.cpp: Removed.
8:01 PM Changeset in webkit [242528] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

AX: Add remote search support for keyboard focusable element search type
https://bugs.webkit.org/show_bug.cgi?id=195336

Patch by Eric Liang <ericliang@apple.com> on 2019-03-05
Reviewed by Chris Fleizach.

Source/WebCore:

Added AXKeyboardFocusable search key to return default keyboard-focusable elements for accessibility.

Test: accessibility/mac/search-predicate-keyboard-focusable.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
(WebCore::AccessibilityObject::isKeyboardFocusable const):

  • accessibility/AccessibilityObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(createAccessibilitySearchKeyMap):

LayoutTests:

Added test that verifies search with AXKeyboardFocusableSearchKey returns the default keyboard-focusable elements.

  • accessibility/mac/search-predicate-keyboard-focusable-expected.txt: Added.
  • accessibility/mac/search-predicate-keyboard-focusable.html: Added.
6:15 PM Changeset in webkit [242527] by don.olmstead@sony.com
  • 4 edits in trunk

[WinCairo] Enable CSS Typed OM
https://bugs.webkit.org/show_bug.cgi?id=195340

Reviewed by Myles C. Maxfield.

.:

  • Source/cmake/OptionsWin.cmake:

Source/WebCore:

  • bindings/js/CallTracerTypes.h:
5:50 PM Changeset in webkit [242526] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Fix a typo in Web SQL quirk
https://bugs.webkit.org/show_bug.cgi?id=195338

Reviewed by Geoffrey Garen.

  • page/Quirks.cpp:

(WebCore::Quirks::hasWebSQLSupportQuirk const):

5:26 PM WikiStart edited by lingcherd_ho@apple.com
(diff)
5:25 PM TracAccountManagerPlugin_license created by lingcherd_ho@apple.com
5:25 PM python-zxcvbn_license created by lingcherd_ho@apple.com
5:24 PM Trac_license created by lingcherd_ho@apple.com
5:23 PM WikiStart edited by lingcherd_ho@apple.com
(diff)
5:22 PM WikiStart edited by lingcherd_ho@apple.com
(diff)
5:14 PM WikiStart edited by lingcherd_ho@apple.com
(diff)
5:13 PM Changeset in webkit [242525] by Alan Coon
  • 1 copy in tags/Safari-607.1.40.3.1

Tag Safari-607.1.40.3.1.

5:10 PM Changeset in webkit [242524] by Alan Coon
  • 1 copy in tags/Safari-607.1.40.1.3

Tag Safari-607.1.40.1.3.

5:03 PM Changeset in webkit [242523] by Alan Coon
  • 1 copy in tags/Safari-608.1.5.1.5

Tag Safari-608.1.5.1.5.

5:02 PM Changeset in webkit [242522] by Alan Coon
  • 1 copy in tags/Safari-607.1.40.0.5

Tag Safari-607.1.40.0.5.

4:48 PM Changeset in webkit [242521] by david_quesada@apple.com
  • 10 edits in trunk

[WK2] It should be possible to follow links with 'download' attributes
https://bugs.webkit.org/show_bug.cgi?id=195145
rdar://problem/48462642

Reviewed by Alex Christensen.

Source/WebKit:

When a link with a 'download' attribute is clicked and the navigation client
says to allow the navigation (i.e. provides PolicyAction::Use),
WebPageProxy::receivedNavigationPolicyDecision() should stop overriding this
decision and downloading the link instead. Instead, web view should honor the
policy chosen by the navigation delegate. This supports clients that want to
offer the user the ability to view, rather than download, the contents of
such links, which is permitted per the HTML spec.

This change is only made on Cocoa platforms for now since no other ports
expose an API on their navigation action to express whether the page intends
to download the linked resource.

  • UIProcess/API/APINavigation.h:

(API::Navigation::shouldPerformDownload const):

Rename this to be in line with APINavigationAction's shouldPerformDownload()
for consistency. 'Force' seems like too strong of a word for this property
considering that 'forcing' the download isn't really an attribute inherent
to the navigation, but a behavior implemented by the web page proxy.

(API::Navigation::shouldForceDownload const): Deleted.

  • UIProcess/Cocoa/VersionChecks.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

Tools:

Add a unit test to verify that activating links with 'download' attributes now
navigates to the linked resource, rather than starts downloading it. Add another
to verify that it is still possible to explicitly download the link via the
'Download' navigation action policy.

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(-[DownloadAttributeTestDelegate init]):
(-[DownloadAttributeTestDelegate waitForDidFinishNavigation]):
(-[DownloadAttributeTestDelegate waitForDownloadDidStart]):
(-[DownloadAttributeTestDelegate webView:didFinishNavigation:]):
(-[DownloadAttributeTestDelegate webView:didStartProvisionalNavigation:]):
(-[DownloadAttributeTestDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[DownloadAttributeTestDelegate _downloadDidStart:]):
(TEST):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::decidePolicyForNavigationAction):

  • WebKitTestRunner/TestController.h:
4:40 PM Changeset in webkit [242520] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: recordsInTimeRange sometimes does not get the expected record when includeRecordBeforeStart
https://bugs.webkit.org/show_bug.cgi?id=195317

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-03-05
Reviewed by Devin Rousso.

  • UserInterface/Models/Timeline.js:

(WI.Timeline.prototype.recordsOverlappingTimeRange):

4:20 PM Changeset in webkit [242519] by sbarati@apple.com
  • 5 edits
    1 add in trunk

op_switch_char broken for rope strings after JSRopeString layout rewrite
https://bugs.webkit.org/show_bug.cgi?id=195339
<rdar://problem/48592545>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/switch-on-char-llint-rope.js: Added.

Source/JavaScriptCore:

When we did the JSString rewrite, we accidentally broke LLInt's switch_char
for rope strings. That change made it so that we always go to the slow path
for ropes. That's wrong. The slow path should only be taken when the rope
is of length 1. For lengths other than 1, we need to fall through to the
default case. This patch fixes this.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSString.h:
3:40 PM Changeset in webkit [242518] by dbates@webkit.org
  • 22 edits
    11 adds in trunk

[iOS] Should not scroll when checkbox, radio, submit, reset, or button is spacebar activated
https://bugs.webkit.org/show_bug.cgi?id=195281
<rdar://problem/48564347>

Reviewed by Simon Fraser.

Source/WebCore:

Do not call the base class's default event handler (HTMLTextFormControlElement::defaultEventHandler())
when WebCore sees a keydown of the spacebar as we consider such an event as handled.
Otherwise, calling the base class's default event handler ultimately gives the embedding
client a chance to wrongly handle the event. In the case of iOS, keydown of the spacebar
causes the page to scroll.

WebCore implements spacebar activation on keydown for form controls. For IE compatibility
WebCore does not mark such keydown events as handled so that a DOM keypress event will
be subsequently dispatched. The current logic only skips calling the base class's default
event handler if the DOM event was not marked handled. This is insufficient. We need to
know whether WebCore handled the event. If asking the input type to handle the key down
marks the DOM event as handled then, clearly, WebCore handled the event. However, if the
event is not marked as handled, but WebCore actually accounted for this event then we need
to know this so that we do not call the base class's default event handler and ultimately
the embedding client asking for an interpretation of the key event. Towards this, have
InputType::handleKeydownEvent() return a bit whether or not the base class's default
event handler should be invoked.

Tests: fast/events/ios/activating-button-should-not-scroll-page.html

fast/events/ios/activating-checkbox-should-not-scroll-page.html
fast/events/ios/activating-radio-button-should-not-scroll-page.html
fast/events/ios/activating-reset-button-should-not-scroll-page.html
fast/events/ios/activating-submit-button-should-not-scroll-page.html

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::handleKeydownEvent): Return ShouldCallBaseEventHandler::No
if WebCore handled the spacebar activation. Otherewise, return ShouldCallBaseEventHandler::Yes.

  • html/BaseCheckableInputType.h:
  • html/BaseChooserOnlyDateAndTimeInputType.cpp:

(WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent): Ditto.

  • html/BaseChooserOnlyDateAndTimeInputType.h:
  • html/BaseClickableWithKeyInputType.cpp:

(WebCore::BaseClickableWithKeyInputType::handleKeydownEvent): Keep our current behavior by returning ShouldCallBaseEventHandler::Yes.

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

(WebCore::HTMLInputElement::defaultEventHandler): Do not fallthrough and call the base class's default
event handler if the input type told us it handled the event regardless of whether the event was handled
from the perspective of the DOM.

  • html/InputType.cpp:

(WebCore::InputType::handleKeydownEvent): Keep our current behavior by returning ShouldCallBaseEventHandler::Yes.

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

(WebCore::NumberInputType::handleKeydownEvent):

  • html/NumberInputType.h:
  • html/RadioInputType.cpp:

(WebCore::RadioInputType::handleKeydownEvent):

  • html/RadioInputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::handleKeydownEvent):

  • html/RangeInputType.h:
  • html/SearchInputType.cpp:

(WebCore::SearchInputType::handleKeydownEvent):

  • html/SearchInputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::handleKeydownEvent):

  • html/TextFieldInputType.h:

Keep our current behavior by returning ShouldCallBaseEventHandler::Yes.

LayoutTests:

Add some tests to ensure that we do not scroll when a checkbox, radio, submit, reset, or button
is spacebar activated.

  • fast/events/ios/activating-button-should-not-scroll-page-expected.txt: Added.
  • fast/events/ios/activating-button-should-not-scroll-page.html: Added.
  • fast/events/ios/activating-checkbox-should-not-scroll-page-expected.txt: Added.
  • fast/events/ios/activating-checkbox-should-not-scroll-page.html: Added.
  • fast/events/ios/activating-radio-button-should-not-scroll-page-expected.txt: Added.
  • fast/events/ios/activating-radio-button-should-not-scroll-page.html: Added.
  • fast/events/ios/activating-reset-button-should-not-scroll-page-expected.txt: Added.
  • fast/events/ios/activating-reset-button-should-not-scroll-page.html: Added.
  • fast/events/ios/activating-submit-button-should-not-scroll-page-expected.txt: Added.
  • fast/events/ios/activating-submit-button-should-not-scroll-page.html: Added.
  • fast/events/ios/resources/press-spacebar-at-element-and-check-for-page-scroll.js: Added.

(done):
(handleInteraction.checkForScrollAndDone):
(handleInteraction):
(handleScroll):
(handleFocus):
(checkActivatingElementUsingSpacebarDoesNotScrollPage):

  • platform/ios/TestExpectations: Skip the tests for now until ENABLE(FULL_KEYBOARD_ACCESS) is enabled

by default on iOS.

3:36 PM Changeset in webkit [242517] by commit-queue@webkit.org
  • 16 edits in trunk

[Curl] Implement Cookie Accept Policy.
https://bugs.webkit.org/show_bug.cgi?id=191645

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-03-05
Reviewed by Fujii Hironori.

Source/WebCore:

Make Curl network layer respect to coookie accept policy.
This patch fixes tests below on TestRunner, but doesn't fix tests on DumpRenderTree.

Tests: http/tests/cookies/only-accept-first-party-cookies.html

http/tests/cookies/third-party-cookie-relaxing.html
http/tests/security/cookies/third-party-cookie-blocking-redirect.html
http/tests/security/cookies/third-party-cookie-blocking-user-action.html
http/tests/security/cookies/third-party-cookie-blocking-xslt.xml
http/tests/security/cookies/third-party-cookie-blocking.html

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::cookiesForSession):
(WebCore::CookieJarCurl::setCookiesFromDOM const):
(WebCore::CookieJarCurl::setCookiesFromHTTPResponse const):
(WebCore::CookieJarCurl::setCookieAcceptPolicy const):
(WebCore::CookieJarCurl::cookieAcceptPolicy const):
(WebCore::CookieJarCurl::getRawCookies const):

  • platform/network/curl/CookieJarCurl.h:
  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::openDatabase):
(WebCore::CookieJarDB::isEnabled const):
(WebCore::CookieJarDB::checkCookieAcceptPolicy):
(WebCore::CookieJarDB::hasCookies):
(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::canAcceptCookie):
(WebCore::CookieJarDB::setCookie):
(WebCore::CookieJarDB::setEnabled): Deleted.

  • platform/network/curl/CookieJarDB.h:

(WebCore::CookieJarDB::setAcceptPolicy):
(WebCore::CookieJarDB::acceptPolicy const):

  • platform/network/curl/CookieUtil.cpp:

(WebCore::CookieUtil::parseCookieAttributes):
(WebCore::CookieUtil::parseCookieHeader):

  • platform/network/curl/CurlResourceHandleDelegate.cpp:

(WebCore::handleCookieHeaders):
(WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):

Source/WebKit:

  • NetworkProcess/Cookies/curl/WebCookieManagerCurl.cpp:

(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
(WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::curlDidReceiveResponse):
(WebKit::NetworkDataTaskCurl::handleCookieHeaders):

  • NetworkProcess/curl/NetworkDataTaskCurl.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp:

(TestWebKitAPI::Curl::TEST_F):

LayoutTests:

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
3:35 PM Changeset in webkit [242516] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] Assert on if notify content change is allowed
https://bugs.webkit.org/show_bug.cgi?id=195332
<rdar://problem/48603276>

Reviewed by Simon Fraser.

Assert we don't notify the client about the state change while in handleSyntheticClick().

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::domTimerExecuteDidStart):
(WebCore::ContentChangeObserver::domTimerExecuteDidFinish):
(WebCore::ContentChangeObserver::adjustObservedState):

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::isObservingContentChanges const):
(WebCore::ContentChangeObserver::isNotifyContentChangeAllowed const):

3:12 PM Changeset in webkit [242515] by Said Abou-Hallawa
  • 3 edits
    2 adds in trunk

SVGPathSegList.insertItemBefore() should fail if the newItem belongs to an animating animPathSegList
https://bugs.webkit.org/show_bug.cgi?id=195333
<rdar://problem/48475802>

Reviewed by Simon Fraser.

Source/WebCore:

Because the SVG1.1 specs states that the newItem should be removed from
its original list before adding it to another list,
SVGPathSegList.insertItemBefore() should fail if the new item belongs to
an animating animPathSegList since it is read-only.

Test: svg/dom/SVGPathSegList-insert-from-animating-animPathSegList.svg

  • svg/SVGPathSegList.cpp:

(WebCore::SVGPathSegList::processIncomingListItemValue):

LayoutTests:

  • svg/dom/SVGPathSegList-insert-from-animating-animPathSegList-expected.txt: Added.
  • svg/dom/SVGPathSegList-insert-from-animating-animPathSegList.svg: Added.
2:19 PM Changeset in webkit [242514] by Kocsen Chung
  • 2 edits in branches/safari-607.1.40.3-branch/Source/WebKit

Cherry-pick r242394. rdar://problem/48591302

Unreviewed build fix after r242378

  • UIProcess/ios/EditableImageController.mm: (WebKit::EditableImageController::associateWithAttachment):

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

2:19 PM Changeset in webkit [242513] by Kocsen Chung
  • 5 edits in branches/safari-607.1.40.3-branch/Source/WebKit

Cherry-pick r242378. rdar://problem/48591302

Check contextIDs when handling WebContent messages
https://bugs.webkit.org/show_bug.cgi?id=195289
<rdar://problem/48475870>

Reviewed by Alex Christensen.

The WebContent process is untrusted because it handles arbitrary markup and javascript from untrusted sources.
We should handle its messages with suspicion, and make sure the arguments are valid and usable before honoring them.

This patch hardens the message passing layer by performing MESSAGE_CHECK in places that had been overlooked.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: (WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID): (WebKit::PlaybackSessionManagerProxy::currentTimeChanged): (WebKit::PlaybackSessionManagerProxy::bufferedTimeChanged): (WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged): (WebKit::PlaybackSessionManagerProxy::canPlayFastReverseChanged): (WebKit::PlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged): (WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged): (WebKit::PlaybackSessionManagerProxy::audioMediaSelectionIndexChanged): (WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged): (WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged): (WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged): (WebKit::PlaybackSessionManagerProxy::mutedChanged): (WebKit::PlaybackSessionManagerProxy::volumeChanged): (WebKit::PlaybackSessionManagerProxy::durationChanged): (WebKit::PlaybackSessionManagerProxy::playbackStartedTimeChanged): (WebKit::PlaybackSessionManagerProxy::rateChanged): (WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged): (WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged): (WebKit::PlaybackSessionManagerProxy::handleControlledElementIDResponse const):
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): (WebKit::UserMediaCaptureManagerProxy::startProducingData): (WebKit::UserMediaCaptureManagerProxy::stopProducingData): (WebKit::UserMediaCaptureManagerProxy::end): (WebKit::UserMediaCaptureManagerProxy::capabilities): (WebKit::UserMediaCaptureManagerProxy::setMuted): (WebKit::UserMediaCaptureManagerProxy::applyConstraints):
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: (WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID): (WebKit::VideoFullscreenManagerProxy::setHasVideo): (WebKit::VideoFullscreenManagerProxy::setVideoDimensions): (WebKit::VideoFullscreenManagerProxy::enterFullscreen): (WebKit::VideoFullscreenManagerProxy::exitFullscreen): (WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode): (WebKit::VideoFullscreenManagerProxy::setInlineRect): (WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer): (WebKit::VideoFullscreenManagerProxy::cleanupFullscreen): (WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline): (WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):
  • UIProcess/ios/EditableImageController.mm: (WebKit::EditableImageController::didCreateEditableImage): (WebKit::EditableImageController::didDestroyEditableImage): (WebKit::EditableImageController::associateWithAttachment):

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

2:14 PM Changeset in webkit [242512] by Kocsen Chung
  • 7 edits in branches/safari-607.1.40.3-branch/Source

Versioning.

2:05 PM Changeset in webkit [242511] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: remove event listeners once a recording is ready
https://bugs.webkit.org/show_bug.cgi?id=195324

Reviewed by Matt Baker.

  • UserInterface/Models/Recording.js:

(WI.Recording):
(WI.Recording.prototype.async swizzle):
(WI.Recording.prototype.async _process):

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement):
(WI.RecordingActionTreeElement.prototype._handleValidityChanged):

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype.set recording):
(WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction):

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView.prototype.initialLayout):
(WI.RecordingContentView.prototype._handleRecordingProcessedAction):

2:00 PM Changeset in webkit [242510] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Attempting to select records in the bottom 16px of the timeline overview graph fails
https://bugs.webkit.org/show_bug.cgi?id=195318

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-03-05
Reviewed by Devin Rousso.

The bottom few pixels of the overview are reserved for the scroll-container
which may show a scrollbar if the overview needs to scroll. When the scrollbars
are not visible we can allow pointer events to click through the invisible
scroll-container and allow record selection.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview:not(.has-scrollbar) > .scroll-container):

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview.prototype._handleScrollEvent):
(WI.TimelineOverview.prototype._handleWheelEvent):
(WI.TimelineOverview._handleGestureStart):

1:55 PM Changeset in webkit [242509] by Kocsen Chung
  • 1 copy in branches/safari-607.1.40.3-branch

New branch.

1:52 PM Changeset in webkit [242508] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] Send content change notification through adjustObservedState
https://bugs.webkit.org/show_bug.cgi?id=195328
<rdar://problem/48601143>

Reviewed by Simon Fraser.

Have a dedicated place for the notification logic.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::stopDurationBasedContentObservation):
(WebCore::ContentChangeObserver::didInstallDOMTimer):
(WebCore::ContentChangeObserver::didRemoveDOMTimer):
(WebCore::ContentChangeObserver::domTimerExecuteDidFinish):
(WebCore::ContentChangeObserver::styleRecalcDidFinish):
(WebCore::ContentChangeObserver::mouseMovedDidStart):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::registerDOMTimer): Deleted.
(WebCore::ContentChangeObserver::unregisterDOMTimer): Deleted.
(WebCore::ContentChangeObserver::notifyContentChangeIfNeeded): Deleted.

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::registerDOMTimer):
(WebCore::ContentChangeObserver::unregisterDOMTimer):

1:49 PM Changeset in webkit [242507] by ysuzuki@apple.com
  • 4 edits in trunk/Source/bmalloc

[bmalloc] Bmalloc DebugHeap should have dump and scavenge features
https://bugs.webkit.org/show_bug.cgi?id=195305

Reviewed by Saam Barati.

As the same to bmalloc, bmalloc::DebugHeap should have scavenge feature to make it scavengable if we want.
We also add DebugHeap::dump feature which dumps system malloc data in the WebKit Malloc zone.

  • bmalloc/DebugHeap.cpp:

(bmalloc::DebugHeap::scavenge):
(bmalloc::DebugHeap::dump):

  • bmalloc/DebugHeap.h:
  • bmalloc/bmalloc.cpp:

(bmalloc::api::scavenge):

1:49 PM Changeset in webkit [242506] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

MockLibWebRTCPeerConnection is leaking some session description
https://bugs.webkit.org/show_bug.cgi?id=195315
<rdar://problem/47840038>

Reviewed by David Kilzer.

Make sure to release raw pointers given from WebCore to mock libwebrtc layer.
Covered by existing tests when run in leaks mode.

  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::MockLibWebRTCPeerConnection::SetLocalDescription):
(WebCore::MockLibWebRTCPeerConnection::SetRemoteDescription):

1:49 PM Changeset in webkit [242505] by Kocsen Chung
  • 2 edits in branches/safari-607.1.40.1-branch/Source/WebKit

Cherry-pick r242394. rdar://problem/48591280

Unreviewed build fix after r242378

  • UIProcess/ios/EditableImageController.mm: (WebKit::EditableImageController::associateWithAttachment):

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

1:49 PM Changeset in webkit [242504] by Kocsen Chung
  • 5 edits in branches/safari-607.1.40.1-branch/Source/WebKit

Cherry-pick r242378. rdar://problem/48591280

Check contextIDs when handling WebContent messages
https://bugs.webkit.org/show_bug.cgi?id=195289
<rdar://problem/48475870>

Reviewed by Alex Christensen.

The WebContent process is untrusted because it handles arbitrary markup and javascript from untrusted sources.
We should handle its messages with suspicion, and make sure the arguments are valid and usable before honoring them.

This patch hardens the message passing layer by performing MESSAGE_CHECK in places that had been overlooked.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: (WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID): (WebKit::PlaybackSessionManagerProxy::currentTimeChanged): (WebKit::PlaybackSessionManagerProxy::bufferedTimeChanged): (WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged): (WebKit::PlaybackSessionManagerProxy::canPlayFastReverseChanged): (WebKit::PlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged): (WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged): (WebKit::PlaybackSessionManagerProxy::audioMediaSelectionIndexChanged): (WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged): (WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged): (WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged): (WebKit::PlaybackSessionManagerProxy::mutedChanged): (WebKit::PlaybackSessionManagerProxy::volumeChanged): (WebKit::PlaybackSessionManagerProxy::durationChanged): (WebKit::PlaybackSessionManagerProxy::playbackStartedTimeChanged): (WebKit::PlaybackSessionManagerProxy::rateChanged): (WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged): (WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged): (WebKit::PlaybackSessionManagerProxy::handleControlledElementIDResponse const):
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): (WebKit::UserMediaCaptureManagerProxy::startProducingData): (WebKit::UserMediaCaptureManagerProxy::stopProducingData): (WebKit::UserMediaCaptureManagerProxy::end): (WebKit::UserMediaCaptureManagerProxy::capabilities): (WebKit::UserMediaCaptureManagerProxy::setMuted): (WebKit::UserMediaCaptureManagerProxy::applyConstraints):
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: (WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID): (WebKit::VideoFullscreenManagerProxy::setHasVideo): (WebKit::VideoFullscreenManagerProxy::setVideoDimensions): (WebKit::VideoFullscreenManagerProxy::enterFullscreen): (WebKit::VideoFullscreenManagerProxy::exitFullscreen): (WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode): (WebKit::VideoFullscreenManagerProxy::setInlineRect): (WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer): (WebKit::VideoFullscreenManagerProxy::cleanupFullscreen): (WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline): (WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):
  • UIProcess/ios/EditableImageController.mm: (WebKit::EditableImageController::didCreateEditableImage): (WebKit::EditableImageController::didDestroyEditableImage): (WebKit::EditableImageController::associateWithAttachment):

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

1:49 PM Changeset in webkit [242503] by youenn@apple.com
  • 18 edits
    3 adds in trunk/Source/WebKit

Introduce ServiceWorkerFetchTask
https://bugs.webkit.org/show_bug.cgi?id=195130

Reviewed by Chris Dumez.

ServiceWorkerFetchTask is added to represent NetworkProcess side of an ongoing fetch intercepted by service worker.
This patch should not change existing behavior.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didFailFetch): Deleted.
(WebKit::NetworkProcess::didNotHandleFetch): Deleted.
(WebKit::NetworkProcess::didReceiveFetchRedirectResponse): Deleted.
(WebKit::NetworkProcess::didReceiveFetchResponse): Deleted.
(WebKit::NetworkProcess::didReceiveFetchData): Deleted.
(WebKit::NetworkProcess::didReceiveFetchFormData): Deleted.
(WebKit::NetworkProcess::didFinishFetch): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::cancelFetch):
(WebKit::WebSWServerConnection::continueDidReceiveFetchResponse):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::didReceiveFetchRedirectResponse): Deleted.
(WebKit::WebSWServerConnection::didReceiveFetchResponse): Deleted.
(WebKit::WebSWServerConnection::didReceiveFetchData): Deleted.
(WebKit::WebSWServerConnection::didReceiveFetchFormData): Deleted.
(WebKit::WebSWServerConnection::didFinishFetch): Deleted.
(WebKit::WebSWServerConnection::didFailFetch): Deleted.
(WebKit::WebSWServerConnection::didNotHandleFetch): Deleted.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::connectionClosed):
(WebKit::WebSWServerToContextConnection::startFetch):
(WebKit::WebSWServerToContextConnection::cancelFetch):
(WebKit::WebSWServerToContextConnection::continueDidReceiveFetchResponse):
(WebKit::WebSWServerToContextConnection::didReceiveFetchTaskMessage):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::startFetch):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveRedirection):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveResponse):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):
(WebKit::WebServiceWorkerFetchTaskClient::didFail):
(WebKit::WebServiceWorkerFetchTaskClient::didFinish):
(WebKit::WebServiceWorkerFetchTaskClient::didNotHandle):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: Added.

(WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::didReceiveFormData):
(WebKit::ServiceWorkerFetchTask::didFinish):
(WebKit::ServiceWorkerFetchTask::didFail):
(WebKit::ServiceWorkerFetchTask::didNotHandle):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: Added.

(WebKit::ServiceWorkerFetchTask::create):
(WebKit::ServiceWorkerFetchTask::Identifier::hash const):
(WebKit::ServiceWorkerFetchTask::identifier const):
(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):
(WebKit::operator==):
(WTF::ServiceWorkerFetchTaskIdentifierHash::hash):
(WTF::ServiceWorkerFetchTaskIdentifierHash::equal):
(WTF::HashTraits<WebKit::ServiceWorkerFetchTask::Identifier>::emptyValue):
(WTF::HashTraits<WebKit::ServiceWorkerFetchTask::Identifier>::constructDeletedValue):
(WTF::HashTraits<WebKit::ServiceWorkerFetchTask::Identifier>::isDeletedValue):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in: Added.
1:38 PM Changeset in webkit [242502] by Kocsen Chung
  • 2 edits in branches/safari-607.1.40.0-branch/Source/WebKit

Cherry-pick r242394. rdar://problem/48591281

Unreviewed build fix after r242378

  • UIProcess/ios/EditableImageController.mm: (WebKit::EditableImageController::associateWithAttachment):

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

1:38 PM Changeset in webkit [242501] by Kocsen Chung
  • 5 edits in branches/safari-607.1.40.0-branch/Source/WebKit

Cherry-pick r242378. rdar://problem/48591281

Check contextIDs when handling WebContent messages
https://bugs.webkit.org/show_bug.cgi?id=195289
<rdar://problem/48475870>

Reviewed by Alex Christensen.

The WebContent process is untrusted because it handles arbitrary markup and javascript from untrusted sources.
We should handle its messages with suspicion, and make sure the arguments are valid and usable before honoring them.

This patch hardens the message passing layer by performing MESSAGE_CHECK in places that had been overlooked.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: (WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID): (WebKit::PlaybackSessionManagerProxy::currentTimeChanged): (WebKit::PlaybackSessionManagerProxy::bufferedTimeChanged): (WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged): (WebKit::PlaybackSessionManagerProxy::canPlayFastReverseChanged): (WebKit::PlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged): (WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged): (WebKit::PlaybackSessionManagerProxy::audioMediaSelectionIndexChanged): (WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged): (WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged): (WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged): (WebKit::PlaybackSessionManagerProxy::mutedChanged): (WebKit::PlaybackSessionManagerProxy::volumeChanged): (WebKit::PlaybackSessionManagerProxy::durationChanged): (WebKit::PlaybackSessionManagerProxy::playbackStartedTimeChanged): (WebKit::PlaybackSessionManagerProxy::rateChanged): (WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged): (WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged): (WebKit::PlaybackSessionManagerProxy::handleControlledElementIDResponse const):
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): (WebKit::UserMediaCaptureManagerProxy::startProducingData): (WebKit::UserMediaCaptureManagerProxy::stopProducingData): (WebKit::UserMediaCaptureManagerProxy::end): (WebKit::UserMediaCaptureManagerProxy::capabilities): (WebKit::UserMediaCaptureManagerProxy::setMuted): (WebKit::UserMediaCaptureManagerProxy::applyConstraints):
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: (WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID): (WebKit::VideoFullscreenManagerProxy::setHasVideo): (WebKit::VideoFullscreenManagerProxy::setVideoDimensions): (WebKit::VideoFullscreenManagerProxy::enterFullscreen): (WebKit::VideoFullscreenManagerProxy::exitFullscreen): (WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode): (WebKit::VideoFullscreenManagerProxy::setInlineRect): (WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer): (WebKit::VideoFullscreenManagerProxy::cleanupFullscreen): (WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline): (WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):
  • UIProcess/ios/EditableImageController.mm: (WebKit::EditableImageController::didCreateEditableImage): (WebKit::EditableImageController::didDestroyEditableImage): (WebKit::EditableImageController::associateWithAttachment):

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

1:20 PM Changeset in webkit [242500] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Should check exception for JSString::toExistingAtomicString
https://bugs.webkit.org/show_bug.cgi?id=195337

Reviewed by Keith Miller, Saam Barati, and Mark Lam.

We missed the exception check for JSString::toExistingAtomicString while it can resolve
a rope and throw an OOM exception. This patch adds necessary exception checks. This patch
fixes test failures in debug build, reported in https://bugs.webkit.org/show_bug.cgi?id=194375#c93.

  • dfg/DFGOperations.cpp:
  • jit/JITOperations.cpp:

(JSC::getByVal):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::getByVal):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

12:37 PM Changeset in webkit [242499] by Kocsen Chung
  • 7 edits in branches/safari-607.1.40.0-branch/Source

Versioning.

12:30 PM Changeset in webkit [242498] by bshafiei@apple.com
  • 7 edits in branches/safari-607.1.40.1-branch/Source

Versioning.

12:29 PM Changeset in webkit [242497] by youenn@apple.com
  • 12 edits in trunk

Rename requestCacheStorageSpace to requestStorageSpace
https://bugs.webkit.org/show_bug.cgi?id=195282

Reviewed by Chris Dumez.

Source/WebKit:

Make the name more abstract as it might be used in the future for other storage
like IDB or service worker registrations.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::requestStorageSpace):
(WebKit::NetworkProcess::requestCacheStorageSpace): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::requestSpace):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(WebsiteDataStoreClient::WebsiteDataStoreClient):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::requestStorageSpace):
(WebKit::NetworkProcessProxy::requestCacheStorageSpace): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStoreClient.h:

(WebKit::WebsiteDataStoreClient::requestStorageSpace):
(WebKit::WebsiteDataStoreClient::requestCacheStorageSpace): Deleted.

Tools:

  • WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.mm:

(-[TestWebsiteDataStoreDelegate requestStorageSpace:frameOrigin:quota:currentSize:spaceRequired:decisionHandler:]):
(-[TestWebsiteDataStoreDelegate requestCacheStorageSpace:frameOrigin:quota:currentSize:spaceRequired:decisionHandler:]): Deleted.

12:14 PM Changeset in webkit [242496] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Drop cached WebProcesses for a given session when this session is destroyed
https://bugs.webkit.org/show_bug.cgi?id=195212
<rdar://problem/48301483>

Reviewed by Geoffrey Garen.

Drop cached WebProcesses for a give session when this session is destroyed. This way, when you close
your private browsing window, all the processes it used get cleared and it cannot leave any state
behind.

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::canCacheProcess const):
(WebKit::WebProcessCache::addProcessIfPossible):
(WebKit::WebProcessCache::addProcess):
(WebKit::WebProcessCache::clearAllProcessesForSession):

  • UIProcess/WebProcessCache.h:

(WebKit::WebProcessCache::capacity const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):
(WebKit::WebProcessPool::hasPagesUsingWebsiteDataStore const):

  • UIProcess/WebProcessPool.h:
11:44 AM Changeset in webkit [242495] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: iPod user agent UIString should have a lowercase "T"
https://bugs.webkit.org/show_bug.cgi?id=195312
<rdar://problem/48586853>

Reviewed by Matt Baker.

  • UserInterface/Base/Main.js:

(WI._handleDeviceSettingsToolbarButtonClicked):

11:13 AM Changeset in webkit [242494] by Alan Coon
  • 5 edits
    1 add in tags/Safari-608.1.7.1.1

Cherry-pick r242468. rdar://problem/47820581

Correctly handle sandbox extensions when the same WKWebView loads multiple file:// URLs.
<rdar://problem/47820581> and https://bugs.webkit.org/show_bug.cgi?id=195291

Reviewed by Tim Horton.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::SandboxExtensionTracker::shouldReuseCommittedSandboxExtension): If there is a pendingProvisionalSandboxExtension then its existence should override our willingness to reuse the existing committed extension. (WebKit::shouldReuseCommittedSandboxExtension): Deleted.
  • WebProcess/WebPage/WebPage.h:

Tools:

Loading a file: URL into a WKWebView and then loading another file: url from a completely
different directory into that same WKWebView should work.

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

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

11:13 AM Changeset in webkit [242493] by Alan Coon
  • 2 edits in tags/Safari-608.1.7.1.1/Source/WebKit

Cherry-pick r242411. rdar://problem/47820581

Unreviewed, rolling out r242376.

Broke some tests

Reverted changeset:

"Correctly handle sandbox extensions when the same WKWebView
loads multiple file:// URLs."
https://bugs.webkit.org/show_bug.cgi?id=195291
https://trac.webkit.org/changeset/242376

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

11:10 AM Changeset in webkit [242492] by Alan Coon
  • 5 edits
    1 add in branches/safari-608.1.5.1-branch

Cherry-pick r242468. rdar://problem/47820581

Correctly handle sandbox extensions when the same WKWebView loads multiple file:// URLs.
<rdar://problem/47820581> and https://bugs.webkit.org/show_bug.cgi?id=195291

Reviewed by Tim Horton.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::SandboxExtensionTracker::shouldReuseCommittedSandboxExtension): If there is a pendingProvisionalSandboxExtension then its existence should override our willingness to reuse the existing committed extension. (WebKit::shouldReuseCommittedSandboxExtension): Deleted.
  • WebProcess/WebPage/WebPage.h:

Tools:

Loading a file: URL into a WKWebView and then loading another file: url from a completely
different directory into that same WKWebView should work.

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

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

11:10 AM Changeset in webkit [242491] by Alan Coon
  • 2 edits in branches/safari-608.1.5.1-branch/Source/WebKit

Cherry-pick r242411. rdar://problem/47820581

Unreviewed, rolling out r242376.

Broke some tests

Reverted changeset:

"Correctly handle sandbox extensions when the same WKWebView
loads multiple file:// URLs."
https://bugs.webkit.org/show_bug.cgi?id=195291
https://trac.webkit.org/changeset/242376

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

9:23 AM Changeset in webkit [242490] by Carlos Garcia Campos
  • 29 edits in releases/WebKitGTK/webkit-2.24

Merge r242308 - Finish removing String::format
https://bugs.webkit.org/show_bug.cgi?id=194893

Reviewed by Daniel Bates.
Source/JavaScriptCore:

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::nameForRegister): Use makeString instead of String::format,
using the new "pad" function.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::lastModified const): Use makeString and pad.

  • html/FTPDirectoryDocument.cpp:

(WebCore::processFileDateString): Ditto.

  • mathml/MathMLElement.cpp:

(WebCore::convertToPercentageIfNeeded): Use makeString and FormattedNumber.

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::ResourceUsageOverlay::platformDraw): Use makeString and pad.

  • page/linux/ResourceUsageOverlayLinux.cpp:

(WebCore::cpuUsageString): Use makeString, FormattedNumber, and pad.
(WebCore::gcTimerString): Use String::number.

  • platform/DateComponents.cpp:

(WebCore::DateComponents::toStringForTime const): Use makeString and pad.
(WebCore::DateComponents::toString const): Ditto.

  • platform/LocalizedStrings.cpp: Removed comment that mentioned String::format,

and that was also inaccurate.

  • platform/audio/HRTFElevation.cpp:

(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
Use makeString and pad.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText): Ditto.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo): Ditto.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::formatMediaControlsTime const): Ditto.

Source/WebKit:

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::getAssertion): Use makeString, attempting to fix
a problem where we passed an NSData * to format with a "%s"."

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(timeToString): Use makeString and pad.

Source/WTF:

  • wtf/Assertions.cpp:

(WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
(WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.

  • wtf/HexNumber.h: Deleted unneeded toString function.
  • wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of

StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
a bit. Use function templates for writeTo functions rather than having two of each.
Removed unused toString functions. Optimized case where we use have a UChar* and
a length of zero to not force the result to be 16-bit. Also gets rid of a small
NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
static member helper functions to compute string lengths. Added the pad function
and the PaddingSpecification struct template, so we can add padding to anything
we can turn into a string. Got rid of the special case overload for single
arguments, since it only worked for things that the String constructor can handle.
Instead we will now use StringTypeAdapter, which works for more types. Possibly
less optimal for some special cases, which we could specialize for later if we like.

  • wtf/text/StringConcatenateNumbers.h: Ditto.
  • wtf/text/StringOperators.h: Ditto.
  • wtf/text/StringView.h: Ditto.
  • wtf/text/WTFString.cpp:

(WTF::createWithFormatAndArguments): Deleted.
(WTF::String::format): Deleted.

  • wtf/text/WTFString.h: Deleted declaration of String::format.
9:22 AM Changeset in webkit [242489] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242299 - [JSC] Fix FTL build on ARM32_64 by adding stubs for JSRopeString::offsetOfXXX
https://bugs.webkit.org/show_bug.cgi?id=195235

Reviewed by Saam Barati.

This is a workaround until https://bugs.webkit.org/show_bug.cgi?id=195234 is done.

  • runtime/JSString.h:
9:22 AM Changeset in webkit [242488] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242286 - [JSC] Use runtime calls for DFG MakeRope if !CPU(ADDRESS64)
https://bugs.webkit.org/show_bug.cgi?id=195221

Reviewed by Mark Lam.

ARM32_64 builds DFG 64bit, but the size of address is 32bit. Make DFG MakeRope a runtime call not only for DFG 32_64,
but also DFG 64 with !CPU(ADDRESS64). This patch unifies compileMakeRope again, and use a runtime call for !CPU(ADDRESS64).

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMakeRope):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileMakeRope): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileMakeRope): Deleted.

9:22 AM Changeset in webkit [242487] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.24/Source

Merge r242281 - Serialize IndexedDB::ObjectStoreOverwriteMode as an enum
https://bugs.webkit.org/show_bug.cgi?id=195213

Reviewed by Alex Christensen.

Source/WebCore:

Add traits to enable enum IPC encoding.
No change of behavior.

  • Modules/indexeddb/IndexedDB.h:

Source/WebKit:

Make use of enum trait to automatically check for correct enum value when receiving a putOrAdd message.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::putOrAdd):

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • Scripts/webkit/messages.py:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::putOrAdd):

9:22 AM Changeset in webkit [242486] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242261 - [ARM] Fix assembler warnings in ctiMasmProbeTrampoline
https://bugs.webkit.org/show_bug.cgi?id=195164

Reviewed by Mark Lam.

Short branches in IT blocks are deprecated in AArch32. In addition the
the conditional branch was the only instruction in the IT block. Short
branches are able to encode the condition code themselves, the additional
IT instruction is not needed.

The assembler was also warning that writing into APSR without a bitmask
was deprecated. Therefore use APSR_nzcvq instead, this generates the same
instruction encoding.

  • assembler/MacroAssemblerARMv7.cpp:
9:22 AM Changeset in webkit [242485] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Tools

Merge r242260 - Unreviewed, fix lldb webkitpy tests
https://bugs.webkit.org/show_bug.cgi?id=194375

Since we changed the value of Is8Bit flag in StringImpl, we change lldb webkitpy tests accordingly.

  • lldb/lldb_webkit.py:

(WTFStringImplProvider.is_8bit):

9:22 AM Changeset in webkit [242484] by Carlos Garcia Campos
  • 40 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r242252 - [JSC] sizeof(JSString) should be 16
https://bugs.webkit.org/show_bug.cgi?id=194375

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/make-rope.js: Added.

(makeRope):

  • stress/to-lower-case-intrinsic-on-empty-rope.js: We no longer allow 0 length JSString except for jsEmptyString singleton per VM.

(returnRope.helper): Deleted.
(returnRope): Deleted.

Source/JavaScriptCore:

This patch reduces sizeof(JSString) from 24 to 16 to fit it into GC heap cell atom. And it also reduces sizeof(JSRopeString) from 48 to 32.
Both classes cut 16 bytes per instance in GC allocation. This new layout is used in 64bit architectures which has little endianess.

JSString no longer has length and flags directly. JSString has String, and we query information to this String instead of holding duplicate
information in JSString. We embed isRope bit into this String's pointer so that we can convert JSRopeString to JSString in an atomic manner.
We emit store-store fence before we put String pointer. This should exist even before this patch, so this patch also fixes one concurrency issue.

The old JSRopeString separately had JSString* fibers along with String. In this patch, we merge the first JSString* fiber and String pointer
storage into one to reduce the size of JSRopeString. JSRopeString has three pointer width storage. We pick 48bit effective address of JSString*
fibers to compress three fibers + length + flags into three pointer width storage.

In 64bit architecture, JSString and JSRopeString have the following memory layout to make sizeof(JSString) == 16 and sizeof(JSRopeString) == 32.
JSString has only one pointer. We use it for String. length() and is8Bit() queries go to StringImpl. In JSRopeString, we reuse the above pointer
place for the 1st fiber. JSRopeString has three fibers so its size is 48. To keep length and is8Bit flag information in JSRopeString, JSRopeString
encodes these information into the fiber pointers. is8Bit flag is encoded in the 1st fiber pointer. length is embedded directly, and two fibers
are compressed into 12bytes. isRope information is encoded in the first fiber's LSB.

Since length of JSRopeString should be frequently accessed compared to each fiber, we put length in contiguous 32byte field, and compress 2nd
and 3rd fibers into the following 80byte fields. One problem is that now 2nd and 3rd fibers are split. Storing and loading 2nd and 3rd fibers
are not one pointer load operation. To make concurrent collector work correctly, we must initialize 2nd and 3rd fibers at JSRopeString creation
and we must not modify these part later.

0 8 10 16 32 48

JSString [ ID ][ header ][ String pointer 0]
JSRopeString [ ID ][ header ][ flags ][ 1st fiber 1][ length ][2nd lower32][2nd upper16][3rd lower16][3rd upper32]


isRope bit

Since fibers in JSRopeString are not initialized in atomic pointer store manner, we must initialize all the fiber fields at JSRopeString creation.
To achieve this, we modify our JSRopeString::RopeBuilder implementation not to create half-baked JSRopeString.

This patch also makes an empty JSString singleton per VM. This makes evaluation of JSString in boolean context one pointer comparison. This is
critical in this change since this patch enlarges the code necessary to get length from JSString in JIT. Without this guarantee, our code of boolean
context evaluation is bloated. This patch hides all the JSString::create and JSRopeString::create in the private permission. JSString and JSRopeString
creation is only allowed from jsString and related helper functions and they return a singleton empty JSString if the length is zero. We also change
JSRopeString::RopeBuilder not to construct an empty JSRopeString.

This patch is performance neutral in Speedometer2 and JetStream2. And it improves RAMification by 2.7%.

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

(JSC::MacroAssemblerARM64::storeZero16):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::storeZero16):
(JSC::MacroAssemblerX86Common::store16):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::linkCodeInline):
(JSC::InlineAccess::isCacheableStringLength):
(JSC::InlineAccess::generateStringLength):

  • bytecode/InlineAccess.h:

(JSC::InlineAccess::sizeForPropertyAccess):
(JSC::InlineAccess::sizeForPropertyReplace):
(JSC::InlineAccess::sizeForLengthAccess):

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

(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileStringEquality):
(JSC::DFG::SpeculativeJIT::compileStringZeroLength):
(JSC::DFG::SpeculativeJIT::compileLogicalNotStringOrOther):
(JSC::DFG::SpeculativeJIT::emitStringBranch):
(JSC::DFG::SpeculativeJIT::emitStringOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::emitPopulateSliceIndex):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileArrayIndexOf):
(JSC::DFG::SpeculativeJIT::speculateStringIdentAndLoadStorage):
(JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
(JSC::DFG::SpeculativeJIT::compileMakeRope): Deleted.

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLAbstractHeapRepository.cpp:

(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileStringToUntypedStrictEquality):
(JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
(JSC::FTL::DFG::LowerDFGToB3::mapHashString):
(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileHasOwnProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
(JSC::FTL::DFG::LowerDFGToB3::compileToLowerCase):
(JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
(JSC::FTL::DFG::LowerDFGToB3::boolify):
(JSC::FTL::DFG::LowerDFGToB3::switchString):
(JSC::FTL::DFG::LowerDFGToB3::isRopeString):
(JSC::FTL::DFG::LowerDFGToB3::isNotRopeString):
(JSC::FTL::DFG::LowerDFGToB3::speculateStringIdent):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfRopeStringImpl):
(JSC::AssemblyHelpers::branchIfNotRopeStringImpl):

  • jit/JITInlines.h:

(JSC::JIT::emitLoadCharacterString):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

  • jit/ThunkGenerators.cpp:

(JSC::stringGetByValGenerator):
(JSC::stringCharLoad):

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

(JSC::JSString::createEmptyString):
(JSC::JSRopeString::RopeBuilder<RecordOverflow>::expand):
(JSC::JSString::dumpToStream):
(JSC::JSString::estimatedSize):
(JSC::JSString::visitChildren):
(JSC::JSRopeString::resolveRopeInternal8 const):
(JSC::JSRopeString::resolveRopeInternal8NoSubstring const):
(JSC::JSRopeString::resolveRopeInternal16 const):
(JSC::JSRopeString::resolveRopeInternal16NoSubstring const):
(JSC::JSRopeString::resolveRopeToAtomicString const):
(JSC::JSRopeString::convertToNonRope const):
(JSC::JSRopeString::resolveRopeToExistingAtomicString const):
(JSC::JSRopeString::resolveRopeWithFunction const):
(JSC::JSRopeString::resolveRope const):
(JSC::JSRopeString::resolveRopeSlowCase8 const):
(JSC::JSRopeString::resolveRopeSlowCase const):
(JSC::JSRopeString::outOfMemory const):
(JSC::JSRopeString::visitFibers): Deleted.
(JSC::JSRopeString::clearFibers const): Deleted.

  • runtime/JSString.h:

(JSC::JSString::uninitializedValueInternal const):
(JSC::JSString::valueInternal const):
(JSC::JSString::JSString):
(JSC::JSString::finishCreation):
(JSC::JSString::create):
(JSC::JSString::offsetOfValue):
(JSC::JSString::isRope const):
(JSC::JSString::is8Bit const):
(JSC::JSString::length const):
(JSC::JSString::tryGetValueImpl const):
(JSC::JSString::toAtomicString const):
(JSC::JSString::toExistingAtomicString const):
(JSC::JSString::value const):
(JSC::JSString::tryGetValue const):
(JSC::JSRopeString::unsafeView const):
(JSC::JSRopeString::viewWithUnderlyingString const):
(JSC::JSString::unsafeView const):
(JSC::JSString::viewWithUnderlyingString const):
(JSC::JSString::offsetOfLength): Deleted.
(JSC::JSString::offsetOfFlags): Deleted.
(JSC::JSString::setIs8Bit const): Deleted.
(JSC::JSString::setLength): Deleted.
(JSC::JSString::string): Deleted.
(JSC::jsStringBuilder): Deleted.

  • runtime/JSStringInlines.h:

(JSC::JSString::~JSString):
(JSC::JSString::equal const):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/RegExpObjectInlines.h:

(JSC::collectMatches):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncSplitFast):

  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::createEmptyString): Deleted.

  • runtime/SmallStrings.h:
  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncSlice):

  • runtime/StringPrototypeInlines.h: Added.

(JSC::stringSlice):

Source/WTF:

  • wtf/text/StringImpl.h:

(WTF::StringImpl::flagIs8Bit):
(WTF::StringImpl::flagIsAtomic):
(WTF::StringImpl::flagIsSymbol):
(WTF::StringImpl::maskStringKind):

  • wtf/text/WTFString.cpp:

(WTF::nullString):

  • wtf/text/WTFString.h:
9:22 AM Changeset in webkit [242483] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r242237 - Use-after-move in RenderCombineText::combineTextIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=195188

Reviewed by Zalan Bujtas.

Source/WebCore:

r241288 uncovered an existing problem with our text-combine code. r242204 alleviated the
symptom, but this patch fixes the source of the problem (and reverts r242204).

The code in RenderCombineText::combineTextIfNeeded() has a bit that’s like:

FontDescription bestFitDescription;
while (...) {

FontCascade compressedFont(WTFMove(bestFitDescription), ...);
...

}

Clearly this is wrong.

Test: fast/text/text-combine-crash-2.html

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::FontDescription::platformResolveGenericFamily):

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineTextIfNeeded):

LayoutTests:

  • fast/text/text-combine-crash-2-expected.html: Added.
  • fast/text/text-combine-crash-2.html: Added.
9:22 AM Changeset in webkit [242482] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.24

Merge r242193 - The parser is failing to record the token location of new in new.target.
https://bugs.webkit.org/show_bug.cgi?id=195127
<rdar://problem/39645578>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/parser-should-record-token-location-of-new-dot-target.js: Added.

Source/JavaScriptCore:

Also adjust the token location for the following to be as shown:

new.target

super

import.meta

  • parser/Parser.cpp:

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

9:22 AM Changeset in webkit [242481] by Carlos Garcia Campos
  • 15 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r242192 - [JSC] mustHandleValues for dead bytecode locals should be ignored in DFG phases
https://bugs.webkit.org/show_bug.cgi?id=195144
<rdar://problem/47595961>

Reviewed by Mark Lam.

JSTests:

  • stress/read-dead-bytecode-locals-in-must-handle-values1.js: Added.

(bar):
(foo):

  • stress/read-dead-bytecode-locals-in-must-handle-values2.js: Added.

(bar):
(foo):

Source/JavaScriptCore:

DFGMaximalFlushInsertionPhase inserts Flush for all the locals at the end of basic blocks. This enlarges the live ranges of
locals in DFG, and it sometimes makes DFG value live while it is dead in bytecode. The issue happens when we use mustHandleValues
to widen AbstractValue in CFAPhase. At that time, DFG tells "this value is live in DFG", but it may be dead in the bytecode level.
At that time, we attempt to merge AbstractValue with dead mustHandleValue, which is cleared as jsUndefined() in
DFG::Plan::cleanMustHandleValuesIfNecessary before start compilation, and crash because jsUndefined() may be irrelevant to the FlushFormat
in VariableAccessData.

This patch makes the type of mustHandleValues Operands<Optional<JSValue>>. We clear dead JSValues in DFG::Plan::cleanMustHandleValuesIfNecessary.
And we skip handling dead mustHandleValue in DFG phases.

  • bytecode/Operands.h:

(JSC::Operands::isLocal const):
(JSC::Operands::isVariable const): Deleted.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::injectOSR):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):
(JSC::DFG::compile):

  • dfg/DFGDriver.h:
  • dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::reconstruct):

  • dfg/DFGJITCode.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::mustHandleValues const):

  • dfg/DFGPredictionInjectionPhase.cpp:

(JSC::DFG::PredictionInjectionPhase::run):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::disableHoistingAcrossOSREntries):

  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • jit/JITOperations.cpp:
9:22 AM Changeset in webkit [242480] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r242129 - [MSE] SourceBuffer sample time increment vs. last frame duration check is broken
https://bugs.webkit.org/show_bug.cgi?id=194747
<rdar://problem/48148469>

Patch by Ulrich Pflueger <up@nanocosmos.de> on 2019-02-27
Reviewed by Jer Noble.

Source/WebCore:

Prevent unintended frame drops by including last frame duration in discontinuity check.

Test: media/media-source/media-source-append-variable-frame-lengths-with-matching-durations.html

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

LayoutTests:

  • media/media-source/media-source-append-variable-frame-lengths-with-matching-durations-expected.txt: Added.
  • media/media-source/media-source-append-variable-frame-lengths-with-matching-durations.html: Added.
9:21 AM Changeset in webkit [242479] by Carlos Garcia Campos
  • 12 edits
    9 deletes in releases/WebKitGTK/webkit-2.24

Merge r242127 - Remove remaining poisoning code.
https://bugs.webkit.org/show_bug.cgi?id=194138

Reviewed by Saam Barati.

Source/WTF:

This patch removes the instantiation of Poisoned variants of the various containers
but retains the ability of those containers to work with pointer traits. This
allows us to use them with smart pointers in the future (just like we used to with
Poisoned values). At minimum, this ability will be useful when we want to insert
an observer into the container storage type for debugging purposes, or to collect
statistics for profiling.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Bag.h:
  • wtf/CMakeLists.txt:
  • wtf/Platform.h:
  • wtf/Poisoned.cpp: Removed.
  • wtf/Poisoned.h: Removed.
  • wtf/PoisonedUniquePtr.h: Removed.
  • wtf/Ref.h:
  • wtf/RefCountedArray.h:
  • wtf/RefPtr.h:
  • wtf/WTFAssertions.cpp:

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Poisoned.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedRef.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp: Removed.
9:21 AM Changeset in webkit [242478] by Carlos Garcia Campos
  • 55 edits
    2 deletes in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242123 - Remove poisons in JSCPoison and uses of them.
https://bugs.webkit.org/show_bug.cgi?id=195082

Reviewed by Yusuke Suzuki.

Also removed unused poisoning code in WriteBarrier, AssemblyHelpers,
DFG::SpeculativeJIT, FTLLowerDFGToB3, and FTL::Output.

  • API/JSAPIWrapperObject.h:

(JSC::JSAPIWrapperObject::wrappedObject):

  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.h:
  • API/glib/JSAPIWrapperGlobalObject.h:
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileGetExecutable):
(JSC::DFG::SpeculativeJIT::compileCreateThis):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::TrustedImmPtr::weakPoisonedPointer): Deleted.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetExecutable):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::weakPointer):
(JSC::FTL::DFG::LowerDFGToB3::dynamicPoison): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::dynamicPoisonOnLoadedType): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::dynamicPoisonOnType): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::weakPoisonedPointer): Deleted.

  • ftl/FTLOutput.h:

(JSC::FTL::Output::weakPoisonedPointer): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitDynamicPoison): Deleted.
(JSC::AssemblyHelpers::emitDynamicPoisonOnLoadedType): Deleted.
(JSC::AssemblyHelpers::emitDynamicPoisonOnType): Deleted.

  • jit/AssemblyHelpers.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_create_this):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitScopedArgumentsGetByVal):

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • parser/UnlinkedSourceCode.h:
  • runtime/ArrayPrototype.h:
  • runtime/CustomGetterSetter.h:

(JSC::CustomGetterSetter::getter const):
(JSC::CustomGetterSetter::setter const):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/InternalFunction.cpp:

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

  • runtime/InternalFunction.h:

(JSC::InternalFunction::nativeFunctionFor):

  • runtime/JSArrayBuffer.h:
  • runtime/JSBoundFunction.h:
  • runtime/JSCPoison.cpp: Removed.
  • runtime/JSCPoison.h: Removed.
  • runtime/JSFunction.h:
  • runtime/JSGlobalObject.h:
  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/JSString.h:
  • runtime/NativeExecutable.cpp:

(JSC::NativeExecutable::hashFor const):

  • runtime/NativeExecutable.h:
  • runtime/Options.h:
  • runtime/ScopedArguments.h:
  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::setSingleTransition):

  • runtime/StructureTransitionTable.h:

(JSC::StructureTransitionTable::map const):
(JSC::StructureTransitionTable::weakImpl const):
(JSC::StructureTransitionTable::setMap):

  • runtime/WriteBarrier.h:
  • wasm/WasmB3IRGenerator.cpp:
  • wasm/WasmInstance.h:
  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::visitChildren):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::grow):
(JSC::JSWebAssemblyTable::clearFunction):

  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/WasmToJS.cpp:

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

  • wasm/js/WebAssemblyFunctionBase.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyToJSCallee.h:
  • wasm/js/WebAssemblyWrapperFunction.h:
9:21 AM Changeset in webkit [242477] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r242117 - Remove conditional compile guard for InsertIntoTextNodeCommand::doReapply
https://bugs.webkit.org/show_bug.cgi?id=195067
<rdar://problem/44812080>

Reviewed by Tim Horton.

Source/WebCore:

This iOS-specific override was introduced to fix <rdar://problem/7114425>, in which the last typed character
would be revealed when redoing text input on iOS inside a password field. The associated change fixed this bug
by overriding doReapply on iOS to only insert text (instead of additionally handling password echo); however, it
really makes sense to skip password echo when redoing on all platforms, so we can just remove the platform-
specific guards around this logic.

Doing this allows us to add the hasEditableStyle() check on iOS when redoing text insertion, which results in
a very subtle behavior change covered by the new layout test below.

Test: editing/undo/redo-text-insertion-in-non-editable-node.html

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::doReapply):

  • editing/InsertIntoTextNodeCommand.h:

LayoutTests:

Add a new layout test to verify that redoing text insertion in a non-editable element (which was previously
editable) does not mutate the text nodes affected by editing. This test case currently fails on iOS, since we
take a separate codepath when redoing that does not contain this additional check.

  • editing/undo/redo-text-insertion-in-non-editable-node-expected.txt: Added.
  • editing/undo/redo-text-insertion-in-non-editable-node.html: Added.
9:21 AM Changeset in webkit [242476] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24/Source

Merge r242116 - Code quality cleanup in NeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=194824

Source/WebCore:

Reviewed by Mark Lam.

name_names.pl should not just assume the layout of LazyNeverDestroyed.

  • dom/make_names.pl:

(printNamesCppFile):

Source/WTF:

Reviewed by Yusuke Suzuki.

First, move data members to the end of the class per WebKit
style. Also, add forbid heap allocation since we expect the
NeverDestroyed classes to be static.

  • wtf/NeverDestroyed.h:
9:21 AM Changeset in webkit [242475] by Carlos Garcia Campos
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.24

Merge r242114 - wasmToJS() should purify incoming NaNs.
https://bugs.webkit.org/show_bug.cgi?id=194807
<rdar://problem/48189132>

Reviewed by Saam Barati.

JSTests:

  • wasm/regress/wasmToJS-should-purify-NaNs.js: Added.

Source/JavaScriptCore:

  • runtime/JSCJSValue.h:

(JSC::jsNumber):

  • runtime/TypedArrayAdaptors.h:

(JSC::IntegralTypedArrayAdaptor::toJSValue):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

9:21 AM Changeset in webkit [242474] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r242110 - [Mac WK2] storage/indexeddb/IDBObject-leak.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=195036

Reviewed by Geoffrey Garen.

When connection to IDBServer is lost, IDBDatabase in web process should not only stop active transactions, but
also transactions in committing process.

Also, TransactionOpration should clear its perform function when the operation is being completed, otherwise
there is a reference cycle of TransactionOpration.

Covered by existing tests storage/indexeddb/IDBObject-leak.html.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::connectionToServerLost): notify committing transasctions that connection is lost.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::connectionClosedFromServer): notify IDBConnectionProxy that transaction ends.

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::forgetTransaction): clear finished transactions.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::TransactionOperation::doComplete): clear perform function unconditionally when the
operation is in completion process.

9:21 AM Changeset in webkit [242473] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.24

Merge r242109 - Fix warnings on ARM and MIPS
https://bugs.webkit.org/show_bug.cgi?id=195049

Reviewed by Mark Lam.

.:

Disable warnings for changes to the ABI with GCC 7.1.

  • Source/cmake/WebKitCompilerFlags.cmake:

Source/JavaScriptCore:

Fix all warnings on ARM and MIPS.

  • assembler/MacroAssemblerPrinter.cpp:

(JSC::Printer::printMemory):

  • assembler/testmasm.cpp:

(JSC::testProbeModifiesStackValues):

  • bytecode/InByIdStatus.cpp:

(JSC::InByIdStatus::computeFor):

  • runtime/CachedTypes.cpp:

(JSC::VariableLengthObject::buffer const):

  • runtime/JSBigInt.h:
  • tools/JSDollarVM.cpp:

(JSC::codeBlockFromArg):

9:21 AM Changeset in webkit [242472] by Carlos Garcia Campos
  • 19 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242100 - Unpoison MacroAssemblerCodePtr, ClassInfo pointers, and a few other things.
https://bugs.webkit.org/show_bug.cgi?id=195039

Reviewed by Saam Barati.

  1. Unpoison MacroAssemblerCodePtrs, ReturnAddressPtr.
  2. Replace PoisonedClassInfoPtr with ClassInfo*.
  3. Replace PoisonedMasmPtr with const void*.
  4. Remove all references to CodeBlockPoison, JITCodePoison, and GlobalDataPoison.
  • API/JSCallbackObject.h:
  • API/JSObjectRef.cpp:

(classInfoPrivate):

  • assembler/MacroAssemblerCodeRef.h:

(JSC::FunctionPtr::FunctionPtr):
(JSC::FunctionPtr::executableAddress const):
(JSC::FunctionPtr::retaggedExecutableAddress const):
(JSC::ReturnAddressPtr::ReturnAddressPtr):
(JSC::ReturnAddressPtr::value const):
(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress):
(JSC::MacroAssemblerCodePtr:: const):
(JSC::MacroAssemblerCodePtr::operator! const):
(JSC::MacroAssemblerCodePtr::operator== const):
(JSC::MacroAssemblerCodePtr::hash const):
(JSC::MacroAssemblerCodePtr::emptyValue):
(JSC::MacroAssemblerCodePtr::deletedValue):
(JSC::FunctionPtr<tag>::FunctionPtr):
(JSC::MacroAssemblerCodePtr::poisonedPtr const): Deleted.

  • b3/B3LowerMacros.cpp:
  • b3/testb3.cpp:

(JSC::B3::testInterpreter):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateDestructibleObject):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • runtime/JSCPoison.h:
  • runtime/JSDestructibleObject.h:

(JSC::JSDestructibleObject::classInfo const):

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::classInfo const):

  • runtime/Structure.h:
  • runtime/VM.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

9:20 AM Changeset in webkit [242471] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242103 - Misc cleanup in StructureIDTable after r242096.
https://bugs.webkit.org/show_bug.cgi?id=195063

Reviewed by Saam Barati.

  • runtime/StructureIDTable.cpp:

(JSC::StructureIDTable::allocateID):

  • RELEASE_ASSERT that the StructureID allocation will succeed.
  • runtime/StructureIDTable.h:

(JSC::StructureIDTable::decode):
(JSC::StructureIDTable::encode):

  • Add back a comment that Yusuke requested but was lost when the patch was rolled out and relanded.
  • Applied bitwise_casts that Saam requested.
9:20 AM Changeset in webkit [242470] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242101 - Gardening: 32-bit build fix after r242096.
https://bugs.webkit.org/show_bug.cgi?id=194989

Not reviewed.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):

9:20 AM Changeset in webkit [242469] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242096 - [Re-landing] Add some randomness into the StructureID.
https://bugs.webkit.org/show_bug.cgi?id=194989
<rdar://problem/47975563>

Reviewed by Yusuke Suzuki.

  1. On 64-bit, the StructureID will now be encoded as:

----------------------------------------------------------------
| 1 Nuke Bit | 24 StructureIDTable index bits | 7 entropy bits |
----------------------------------------------------------------

The entropy bits are chosen at random and assigned when a StructureID is
allocated.

  1. Instead of Structure pointers, the StructureIDTable will now contain encodedStructureBits, which is encoded as such:

----------------------------------------------------------------
| 7 entropy bits | 57 structure pointer bits |
----------------------------------------------------------------

The entropy bits here are the same 7 bits used in the encoding of the
StructureID for this structure entry in the StructureIDTable.

  1. Retrieval of the structure pointer given a StructureID is now computed as follows:

index = structureID >> 7; with arithmetic shift.
encodedStructureBits = structureIDTable[index];
structure = encodedStructureBits (structureID << 57);

We use an arithmetic shift for the right shift because that will preserve
the nuke bit in the high bit of the index if the StructureID was not
decontaminated before use as expected.

  1. Remove unused function loadArgumentWithSpecificClass() in SpecializedThunkJIT.
  1. Define StructureIDTable::m_size to be the number of allocated StructureIDs instead of always being the same as m_capacity.
  1. Change StructureIDTable::s_unusedID's value to 0.

Its previous value of unusedPointer i.e. 0xd1e7beef, does not make sense for
StructureID on 64-bit. Also, there was never any code that initializes unused
IDs to the s_unusedID. The only meaningful value for s_unusedID is 0, which
is the ID we'll get when the freelist is empty, prompting a resize of the
structureIDTable.

This patch appears to be perf neutral on JetStream 2 run via the cli on a
11" MacBook Air, 13" MacBook Pro, iPhone 6S, and iPhone XR.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::loadStructure):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::appendJSCellOrAuxiliary):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):

  • jit/AssemblyHelpers.h:
  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass): Deleted.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/StructureIDTable.cpp:

(JSC::StructureIDTable::StructureIDTable):
(JSC::StructureIDTable::makeFreeListFromRange):
(JSC::StructureIDTable::resize):
(JSC::StructureIDTable::allocateID):
(JSC::StructureIDTable::deallocateID):

  • runtime/StructureIDTable.h:

(JSC::StructureIDTable::decode):
(JSC::StructureIDTable::encode):
(JSC::StructureIDTable::get):
(JSC::StructureIDTable::isValid):

9:20 AM Changeset in webkit [242468] by beidson@apple.com
  • 5 edits
    1 add in trunk

Correctly handle sandbox extensions when the same WKWebView loads multiple file:// URLs.
<rdar://problem/47820581> and https://bugs.webkit.org/show_bug.cgi?id=195291

Reviewed by Tim Horton.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::SandboxExtensionTracker::shouldReuseCommittedSandboxExtension): If there is a pendingProvisionalSandboxExtension

then its existence should override our willingness to reuse the existing committed extension.

(WebKit::shouldReuseCommittedSandboxExtension): Deleted.

  • WebProcess/WebPage/WebPage.h:

Tools:

Loading a file: URL into a WKWebView and then loading another file: url from a completely
different directory into that same WKWebView should work.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/LoadFileURL.mm: Added.
9:18 AM Changeset in webkit [242467] by Ryan Haddad
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r242403.

Caused layout test crashes on iOS simulator.

Reverted changeset:

"[ContentChangeObserver] Introduce fixed duration content
observation"
https://bugs.webkit.org/show_bug.cgi?id=195295
https://trac.webkit.org/changeset/242403

8:18 AM Changeset in webkit [242466] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Web Inspector: Better categorize CPU usage per-thread / worker
https://bugs.webkit.org/show_bug.cgi?id=194564

Unreviewed compilation fix.

Patch by Frederic Wang <fwang@igalia.com> on 2019-03-05

  • page/ResourceUsageData.h: Add missing headers.
6:54 AM Changeset in webkit [242465] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Share more code for updating the state of frame scrolling nodes
https://bugs.webkit.org/show_bug.cgi?id=195254

Unreviewed compilation warning fix.

Patch by Frederic Wang <fwang@igalia.com> on 2019-03-05

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Add UNUSED_PARAM on non-Cocoa
platforms.

6:21 AM Changeset in webkit [242464] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

The include file in ScrollingStateFrameHostingNode.h is wrong.
https://bugs.webkit.org/show_bug.cgi?id=195280

Patch by Cathie Chen <cathiechen> on 2019-03-05
Reviewed by Frédéric Wang.

  • page/scrolling/ScrollingStateFrameHostingNode.h:
4:42 AM Changeset in webkit [242463] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r242084 - [EGL] Runtime support for RGB565 pixel layout
https://bugs.webkit.org/show_bug.cgi?id=194817

Reviewed by Carlos Garcia Campos.

Currently our graphics pipeline always relies on a ARGB8888 (32
bpp) pixel configuration. On some low-end (old) embedded platforms
the graphics driver is sometimes optimized for 16 bpp
configurations, such as RGB565. On those platforms the application
can now set the WEBKIT_EGL_PIXEL_LAYOUT environment variable to
"RGB565" to adjust to the best pixel configuration supported by
the screen and graphics driver.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):

4:42 AM Changeset in webkit [242462] by Carlos Garcia Campos
  • 1 edit in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore/ChangeLog

Merge r242083 - [JSC] Fix compilation on 32-bit platforms after r242071
https://bugs.webkit.org/show_bug.cgi?id=195042

Reviewed by Carlos Garcia Campos.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):

4:42 AM Changeset in webkit [242461] by Carlos Garcia Campos
  • 50 edits
    3 adds in releases/WebKitGTK/webkit-2.24

Merge r242082 - [WPE] Add API for webview background color configuration
https://bugs.webkit.org/show_bug.cgi?id=192305

Source/WebCore:

Reviewed by Michael Catanzaro.

Adapt the FrameView API to allow a default non-white background color.

  • page/Frame.cpp:

(WebCore::Frame::createView): Replace isTransparent argument with a background color one.

  • page/Frame.h:
  • page/FrameView.cpp:

(WebCore::FrameView::recalculateBaseBackgroundColor): Use Color::transparent if m_isTransparent is true.
(WebCore::FrameView::updateBackgroundRecursively): Allow the fallback background color to be non-white, this is
used only in non-dark-mode-css build configurations.

  • page/FrameView.h:
  • testing/Internals.cpp:

(WebCore::Internals::setViewIsTransparent): Use Color::transparent if transparent is true.

Source/WebKit:

Reviewed by Michael Catanzaro.

In the case of WPE we need to send the background color to the web process to be used as the background color of
the page. This patch adapts the GTK+ implementation to do the same, since it's a lot simpler. The patch also
removes the SetDrawsBackground message in favor of the new SetBackgroundColor message that receives an optional
color.

  • PlatformWPE.cmake: Add new WPE API for WebKitColor boxed type.
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): Remove background rendering and opacity handling.

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

(WebKit::ThreadedCompositor::renderLayerTree): Remove drawsBakground and always clear the context with
transparent color.

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

(WebKit::WebPageCreationParameters::encode const): Replace drawsBackground with backgroundColor.
(WebKit::WebPageCreationParameters::decode): Ditto.

  • Shared/WebPageCreationParameters.h:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitWebView.cpp:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(webkit_web_view_set_background_color):
(webkit_web_view_get_background_color):

  • UIProcess/API/wpe/WebKitColor.cpp: Added.

(webkit_color_copy):
(webkit_color_free):
(webkitColorToWebCoreColor):
(webkitColorFillFromWebCoreColor):
(webkit_color_parse):

  • UIProcess/API/wpe/WebKitColor.h: Added.
  • UIProcess/API/wpe/WebKitColorPrivate.h: Added.
  • UIProcess/API/wpe/WebKitWebView.h: Implement webkit_web_view_set_background_color API.
  • UIProcess/API/wpe/WebKitWebViewWPE.cpp: Ditto.

(webkit_web_view_set_background_color):
(webkit_web_view_get_background_color):

  • UIProcess/API/wpe/docs/wpe-0.1-sections.txt: Add new symbols.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setDrawsBackground): Set a transparent background color when false is passed.
(WebKit::WebPageProxy::setBackgroundColor): Send background color to the WebProcess.
(WebKit::WebPageProxy::creationParameters): Replace drawsBackground with backgroundColor.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::drawsBackground const):
(WebKit::WebPageProxy::backgroundColor const):

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::incorporateUpdate): Remove GTK+ code to handle background color.

  • UIProcess/gtk/AcceleratedBackingStore.cpp:
  • UIProcess/gtk/AcceleratedBackingStore.h: Make paint() pure virtual and remove the implementation.
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::paint): Dot not call AcceleratedBackingStore::paint() now that is pure virtual.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::paint): Ditto.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Use background color as provided by the
UIProcess when creating the FrameView.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:
  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::setIsDiscardable):

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::display): Remove special case for transparent background.

  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setBackgroundColor): New API for background color configuration. Proxies to FrameView and DrawingArea.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::backgroundColor const): Read-only access to the current background color.

  • WebProcess/WebPage/WebPage.messages.in: Replace SetDrawsBackground message with SetBackgroundColor.

Source/WebKitLegacy/win:

Patch by Philippe Normand <pnormand@igalia.com> on 2019-02-26
Reviewed by Michael Catanzaro.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::transitionToCommittedForNewPage): Create
FrameView with background color.

Tools:

Patch by Philippe Normand <pnormand@igalia.com> on 2019-02-26
Reviewed by Michael Catanzaro.

  • MiniBrowser/wpe/main.cpp:

(main): Add a new option to configure the webview background
color. Example: --bg-color=transparent.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewBackgroundColor): Enable background color API tests for WPE.
(beforeAll): Ditto.

4:42 AM Changeset in webkit [242460] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r242081 - [JSC] Repeat string created from Array.prototype.join() take too much memory
https://bugs.webkit.org/show_bug.cgi?id=193912

Reviewed by Saam Barati.

JSTests:

Added a test and a microbenchmark for corner cases of
Array.prototype.join() with an uninitialized array.

  • microbenchmarks/array-prototype-join-uninitialized.js: Added.
  • stress/array-prototype-join-uninitialized.js: Added.

(testArray):
(testABC):
(B):
(C):

Source/JavaScriptCore:

Added a fast case in Array.prototype.join when the array is
uninitialized.

  • runtime/ArrayPrototype.cpp:

(JSC::canUseFastJoin):
(JSC::fastJoin):

  • runtime/JSStringInlines.h:

(JSC::repeatCharacter): moved from StringPrototype.cpp

  • runtime/StringPrototype.cpp:
4:42 AM Changeset in webkit [242459] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242070 - [JSC] Revert r226885 to make SlotVisitor creation lazy
https://bugs.webkit.org/show_bug.cgi?id=195013

Reviewed by Saam Barati.

We once changed SlotVisitor creation apriori to drop the lock. Also, it turns out that SlotVisitor is memory-consuming.
We should defer SlotVisitor creation until it is actually required. This patch reverts r226885. Even with this patch,
we still hold many SlotVisitors after we execute many parallel markers at least once. But recovering the feature of
dynamically allocating SlotVisitors helps further memory optimizations in this area.

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::runBeginPhase):

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::forEachSlotVisitor):
(JSC::Heap::numberOfSlotVisitors):

  • heap/MarkingConstraintSolver.cpp:

(JSC::MarkingConstraintSolver::didVisitSomething const):

  • heap/SlotVisitor.h:
4:42 AM Changeset in webkit [242458] by Carlos Garcia Campos
  • 1 edit in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore/ChangeLog

Merge r242067 - [JSC] stress/function-constructor-reading-from-global-lexical-environment.js fails in 32bit arch
https://bugs.webkit.org/show_bug.cgi?id=195030
<rdar://problem/48385088>

Reviewed by Saam Barati.

While LLInt64 has checkTDZInGlobalPutToScopeIfNecessary for op_put_to_scope GlobalLexicalVar to check the value in the variable slot is not empty,
this check is missing in LLInt32_64. Previously, this check was subsumed accidentally by the WatchpointSet check in GlobalLexicalVar in notifyWrite:
because no "put" attempt succeeds here, the status WatchpointSet was ClearWatchpoint, we always go to the slow path, and we always throw the TDZ error
before configuring the WatchpointSet in the slow path. But after r241862, WatchpointSet is not used under non-JIT configuration. This skips WatchpointSet
check and LLInt32_64 starts failing tests because of lack of checkTDZInGlobalPutToScopeIfNecessary. This patch adds checkTDZInGlobalPutToScopeIfNecessary
in LLInt32_64 too. This patch fixes the following four failing tests.

stress/function-constructor-reading-from-global-lexical-environment.js.bytecode-cache
stress/function-constructor-reading-from-global-lexical-environment.js.default
stress/global-lexical-variable-tdz.js.bytecode-cache
stress/global-lexical-variable-tdz.js.default

  • llint/LowLevelInterpreter32_64.asm:
4:41 AM Changeset in webkit [242457] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242064 - [JSC] Make Intl fields lazily-allocated
https://bugs.webkit.org/show_bug.cgi?id=195022

Reviewed by Mark Lam.

This patch makes the following memory footprint optimization in IntlObject.

  1. Make IntlObject fields including Intl.Collator lazily-allocated because we already removed direct references from JS builtins to these constructors (@Collator etc.).
  1. Move LazyProperty<IntlObject, Structure> structures from IntlObject to JSGlobalObject. This makes sizeof(IntlObject) the same to the other ones of usual runtime Objects, and drop one MarkedBlock.
  • runtime/IntlCollatorConstructor.h:
  • runtime/IntlDateTimeFormatConstructor.h:
  • runtime/IntlNumberFormatConstructor.h:
  • runtime/IntlObject.cpp:

(JSC::createCollatorConstructor):
(JSC::createNumberFormatConstructor):
(JSC::createDateTimeFormatConstructor):
(JSC::createPluralRulesConstructor):
(JSC::IntlObject::finishCreation):
(JSC::IntlObject::visitChildren): Deleted.

  • runtime/IntlObject.h:
  • runtime/IntlPluralRulesConstructor.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::defaultCollator):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::collatorStructure):
(JSC::JSGlobalObject::numberFormatStructure):
(JSC::JSGlobalObject::dateTimeFormatStructure):
(JSC::JSGlobalObject::pluralRulesStructure):
(JSC::JSGlobalObject::intlObject const): Deleted.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncDateTimeFormat):

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToLocaleString):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncLocaleCompare):

4:41 AM Changeset in webkit [242456] by Carlos Garcia Campos
  • 20 edits
    3 adds
    2 deletes in releases/WebKitGTK/webkit-2.24/Source/WTF

Merge r242048 - Update double-conversion to the latest version
https://bugs.webkit.org/show_bug.cgi?id=194994

Import the latest version of the double-conversion library based on
https://github.com/google/double-conversion/commit/990c44707c70832dc1ce1578048c2198bafd3307

In additon to importing the code, the following changes were applied (or re-applied) to maintain
parity with what we had previously:

  • Add #include "config.h" to each cpp file.
  • Put everything inside the WTF namespace.
  • Changed all in library includes to be of the form #include <wtf/dtoa/FILE.h>.
  • Renamed double_conversion::Vector<> to double_conversion::BufferReference<>.
  • Replaced duplicated functions with ASCIICType.h variants
  • Made CachedPower table a constexpr.
  • Exported (via WTF_EXPORT_PRIVATE) several functions in double-conversion.h.
  • Made substantial changes to StringToDoubleConverter to avoid unnecessary overhead of parameterization, as we only ever want one configuration. Instead of constructing a configured class and calling StringToDouble on it, StringToDouble is now a static function. This allows a bunch of now dead code (hex support, octal support, etc.) to be eliminated. As StringToDoubleConverter now supports single precision floats, some additional templating of StringToIeee was added to avoid extra unnecessary branching.
  • Added RemoveCharacters function to double_conversion::StringBuilder.

Patch by Sam Weinig <sam@webkit.org> on 2019-02-25
Reviewed by Darin Adler.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/dtoa/AUTHORS: Added.
  • wtf/dtoa/README: Removed.
  • wtf/dtoa/README.md: Added.
  • wtf/dtoa/bignum-dtoa.cc:
  • wtf/dtoa/bignum-dtoa.h:
  • wtf/dtoa/bignum.cc:
  • wtf/dtoa/bignum.h:

(WTF::double_conversion::Bignum::Times10):
(WTF::double_conversion::Bignum::Equal):
(WTF::double_conversion::Bignum::LessEqual):
(WTF::double_conversion::Bignum::Less):
(WTF::double_conversion::Bignum::PlusEqual):
(WTF::double_conversion::Bignum::PlusLessEqual):
(WTF::double_conversion::Bignum::PlusLess):
(WTF::double_conversion::Bignum::EnsureCapacity):
(WTF::double_conversion::Bignum::BigitLength const):

  • wtf/dtoa/cached-powers.cc:
  • wtf/dtoa/cached-powers.h:
  • wtf/dtoa/diy-fp.cc:
  • wtf/dtoa/diy-fp.h:

(WTF::double_conversion::DiyFp::DiyFp):
(WTF::double_conversion::DiyFp::Subtract):
(WTF::double_conversion::DiyFp::Minus):
(WTF::double_conversion::DiyFp::Times):
(WTF::double_conversion::DiyFp::Normalize):
(WTF::double_conversion::DiyFp::f const):
(WTF::double_conversion::DiyFp::e const):
(WTF::double_conversion::DiyFp::set_f):
(WTF::double_conversion::DiyFp::set_e):

  • wtf/dtoa/double-conversion.cc:
  • wtf/dtoa/double-conversion.h:

(WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
(WTF::double_conversion::DoubleToStringConverter::ToShortest const):
(WTF::double_conversion::DoubleToStringConverter::ToShortestSingle const):
(WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):

  • wtf/dtoa/double.h: Removed.
  • wtf/dtoa/fast-dtoa.cc:
  • wtf/dtoa/fast-dtoa.h:
  • wtf/dtoa/fixed-dtoa.cc:
  • wtf/dtoa/fixed-dtoa.h:
  • wtf/dtoa/ieee.h: Added.

(WTF::double_conversion::double_to_uint64):
(WTF::double_conversion::uint64_to_double):
(WTF::double_conversion::float_to_uint32):
(WTF::double_conversion::uint32_to_float):
(WTF::double_conversion::Double::Double):
(WTF::double_conversion::Double::AsDiyFp const):
(WTF::double_conversion::Double::AsNormalizedDiyFp const):
(WTF::double_conversion::Double::AsUint64 const):
(WTF::double_conversion::Double::NextDouble const):
(WTF::double_conversion::Double::PreviousDouble const):
(WTF::double_conversion::Double::Exponent const):
(WTF::double_conversion::Double::Significand const):
(WTF::double_conversion::Double::IsDenormal const):
(WTF::double_conversion::Double::IsSpecial const):
(WTF::double_conversion::Double::IsNan const):
(WTF::double_conversion::Double::IsInfinite const):
(WTF::double_conversion::Double::Sign const):
(WTF::double_conversion::Double::UpperBoundary const):
(WTF::double_conversion::Double::NormalizedBoundaries const):
(WTF::double_conversion::Double::LowerBoundaryIsCloser const):
(WTF::double_conversion::Double::value const):
(WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
(WTF::double_conversion::Double::Infinity):
(WTF::double_conversion::Double::NaN):
(WTF::double_conversion::Double::DiyFpToUint64):
(WTF::double_conversion::Single::Single):
(WTF::double_conversion::Single::AsDiyFp const):
(WTF::double_conversion::Single::AsUint32 const):
(WTF::double_conversion::Single::Exponent const):
(WTF::double_conversion::Single::Significand const):
(WTF::double_conversion::Single::IsDenormal const):
(WTF::double_conversion::Single::IsSpecial const):
(WTF::double_conversion::Single::IsNan const):
(WTF::double_conversion::Single::IsInfinite const):
(WTF::double_conversion::Single::Sign const):
(WTF::double_conversion::Single::NormalizedBoundaries const):
(WTF::double_conversion::Single::UpperBoundary const):
(WTF::double_conversion::Single::LowerBoundaryIsCloser const):
(WTF::double_conversion::Single::value const):
(WTF::double_conversion::Single::Infinity):
(WTF::double_conversion::Single::NaN):

  • wtf/dtoa/strtod.cc:
  • wtf/dtoa/strtod.h:
  • wtf/dtoa/utils.h:

(abort_noreturn):
(WTF::double_conversion::Max):
(WTF::double_conversion::Min):
(WTF::double_conversion::StrLength):
(WTF::double_conversion::BufferReference::BufferReference):
(WTF::double_conversion::BufferReference::SubVector):
(WTF::double_conversion::BufferReference::length const):
(WTF::double_conversion::BufferReference::is_empty const):
(WTF::double_conversion::BufferReference::start const):
(WTF::double_conversion::BufferReference::operator[] const):
(WTF::double_conversion::BufferReference::first):
(WTF::double_conversion::BufferReference::last):
(WTF::double_conversion::StringBuilder::StringBuilder):
(WTF::double_conversion::StringBuilder::~StringBuilder):
(WTF::double_conversion::StringBuilder::size const):
(WTF::double_conversion::StringBuilder::position const):
(WTF::double_conversion::StringBuilder::Reset):
(WTF::double_conversion::StringBuilder::AddCharacter):
(WTF::double_conversion::StringBuilder::AddString):
(WTF::double_conversion::StringBuilder::AddSubstring):
(WTF::double_conversion::StringBuilder::AddPadding):
(WTF::double_conversion::StringBuilder::RemoveCharacters):
(WTF::double_conversion::StringBuilder::Finalize):
(WTF::double_conversion::StringBuilder::is_finalized const):
(WTF::double_conversion::BitCast):
(WTF::double_conversion::BufferReference::SubBufferReference): Deleted.
(WTF::double_conversion::StringBuilder::SetPosition): Deleted.

4:41 AM Changeset in webkit [242455] by Carlos Garcia Campos
  • 14 edits
    1 delete in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242047 - [JSC] Drop direct references to Intl constructors by rewriting Intl JS builtins in C++
https://bugs.webkit.org/show_bug.cgi?id=194976

Reviewed by Michael Saboff.

This patch paves the way to making IntlObject allocation lazy by removing direct references
to Intl constructors (Intl.Collator etc.) from builtin JS. To achieve that,

  1. We implement String.prototype.toLocaleCompare and Number.prototype.toLocaleString in C++ instead of JS builtins. Since these functions end up calling ICU C++ runtime, writing them in JS does not offer performance improvement.
  1. We remove @DateTimeFormat constructor reference, and instead, exposing @dateTimeFormat function, which returns formatted string directly. We still have JS builtins for DateTimeFormat things because the initialization of its "options" JSObject involves many get_by_id / put_by_id things, which are efficient in JS. But we avoid exposing @DateTimeFormat directly, so that Intl constructors can be lazily allocated.
  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinNames.h:
  • builtins/DatePrototype.js:

(toLocaleString):
(toLocaleDateString):
(toLocaleTimeString):

  • builtins/NumberPrototype.js: Removed.
  • builtins/StringPrototype.js:

(intrinsic.StringPrototypeReplaceIntrinsic.replace):
(globalPrivate.getDefaultCollator): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::defaultCollator):

  • runtime/JSGlobalObject.h:
  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncDateTimeFormat):

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::finishCreation):
(JSC::throwVMToThisNumberError):
(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):
(JSC::numberProtoFuncToLocaleString):
(JSC::numberProtoFuncValueOf):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::stringProtoFuncLocaleCompare):

4:41 AM Changeset in webkit [242454] by Carlos Garcia Campos
  • 10 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r242043 - IndexedDB: IDBDatabase and IDBTransaction are leaked in layout tests
https://bugs.webkit.org/show_bug.cgi?id=194709

Reviewed by Geoffrey Garen.

Source/WebCore:

When connection to IDB server is closed, IDBTransaction would abort without notifying IDBDatabase, so
IDBDatabase didn't clear its reference to IDBTransaction which created a reference cycle.

Also IDBTransaction didn't clear its reference to IDBRequest in this case and it led to another reference cycle
between IDBOpenDBRequest and IDBTransaction.

Test: storage/indexeddb/IDBObject-leak.html

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::connectionToServerLost):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::~IDBTransaction):
(WebCore::IDBTransaction::connectionClosedFromServer):

  • Modules/indexeddb/IDBTransaction.h:
  • testing/Internals.cpp:

(WebCore::Internals::numberOfIDBTransactions const):

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

LayoutTests:

  • TestExpectations:
  • platform/wk2/TestExpectations:
  • storage/indexeddb/IDBObject-leak-expected.txt: Added.
  • storage/indexeddb/IDBObject-leak.html: Added.
4:41 AM Changeset in webkit [242453] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Merge r242042 - [WPE][GTK] Clean up handling of WEBKIT_FORCE_COMPLEX_TEXT
https://bugs.webkit.org/show_bug.cgi?id=194614

Reviewed by Carlos Garcia Campos.

This environment variable is now enabled for WPE, not just for GTK.

It is now possible to use this environment variable to enable complex text, not just to
disable it.

WebProcessPool::setAlwaysUsesComplexTextCodePath is fixed to be respected even when this
environment variable is set, although WPE and GTK will never do so.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::platformInitializeWebProcess):

4:41 AM Changeset in webkit [242452] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r242035 - [EME][GStreamer] Replace caps field loop with gst_structure_remove_fields
https://bugs.webkit.org/show_bug.cgi?id=194992

Reviewed by Xabier Rodriguez-Calvar.

Refactoring, no new tests.

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(transformCaps): Simplify the code a little. The idea to use this
utility function came from a review upstream here:
https://gitlab.freedesktop.org/gstreamer/gst-devtools/merge_requests/67

4:41 AM Changeset in webkit [242451] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r242034 - [MSE][GStreamer] Batch player duration updates
https://bugs.webkit.org/show_bug.cgi?id=194220

Reviewed by Xabier Rodriguez-Calvar.

This saves up a ton of CPU cycles doing layout unnecessarily when all
the appended frames extend the duration of the movie, like in
YTTV 2018 59.DASHLatencyVP9.

This patch is an optimization that introduces no new behavior.

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

(WebCore::AppendPipeline::consumeAppsinkAvailableSamples):

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

(WebCore::MediaPlayerPrivateGStreamerMSE::blockDurationChanges):
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
4:41 AM Changeset in webkit [242450] by Carlos Garcia Campos
  • 6 edits
    1 move
    5 adds in releases/WebKitGTK/webkit-2.24

Merge r242033 - [WPE] Add support for holepunch using an external video player
https://bugs.webkit.org/show_bug.cgi?id=194899

Reviewed by Xabier Rodriguez-Calvar.

.:

Add EXTERNAL_HOLEPUNCH option to the WPE port. Add a manual test to check the
feature. Rename and update the test for GStreamer holepunch to avoid confusion.

  • ManualTests/wpe/video-player-holepunch-external.html: Added.
  • ManualTests/wpe/video-player-holepunch-gstreamer.html: Renamed from ManualTests/wpe/video-player-holepunch.html.
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Implement the holepunch feature to allow playback using an external player. This creates
a new dummy MediaPlayerPrivateHolePunch that accepts only the type "video/holepunch", and
whose goal is to just draw a transparent rectangle in the position where the video should be.
This can be used to allow a player placed on a lower plane than the browser to become visible.

Added ManualTest wpe/video-player-holepunch-external.html to test the feature.

  • PlatformWPE.cmake:
  • platform/HolePunch.cmake: Added.
  • platform/graphics/MediaPlayer.cpp:

(WebCore::buildMediaEnginesVector):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp: Added.

(WebCore::MediaPlayerPrivateHolePunch::MediaPlayerPrivateHolePunch):
(WebCore::MediaPlayerPrivateHolePunch::~MediaPlayerPrivateHolePunch):
(WebCore::MediaPlayerPrivateHolePunch::platformLayer const):
(WebCore::MediaPlayerPrivateHolePunch::naturalSize const):
(WebCore::MediaPlayerPrivateHolePunch::pushNextHolePunchBuffer):
(WebCore::MediaPlayerPrivateHolePunch::swapBuffersIfNeeded):
(WebCore::MediaPlayerPrivateHolePunch::proxy const):
(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateHolePunch::getSupportedTypes):
(WebCore::MediaPlayerPrivateHolePunch::supportsType):
(WebCore::MediaPlayerPrivateHolePunch::registerMediaEngine):
(WebCore::MediaPlayerPrivateHolePunch::notifyReadyState):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h: Added.
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

4:41 AM Changeset in webkit [242449] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242015 - [JSC] Lazily create sentinel Map and Set buckets
https://bugs.webkit.org/show_bug.cgi?id=194975

Reviewed by Saam Barati.

If VM::canUseJIT() returns false, we can lazily initialize sentinel Map and Set buckets.
This patch adds getters to VM which lazily allocate these buckets. We eagerly initialize
them if VM::canUseJIT() returns true since they can be touched from DFG and FTL.

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::sentinelMapBucketValue):
(JSC::BytecodeIntrinsicRegistry::sentinelSetBucketValue):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • dfg/DFGByteCodeParser.cpp:

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

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

(JSC::DFG::SpeculativeJIT::compileGetMapBucketNext):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucketNext):

  • runtime/MapConstructor.cpp:

(JSC::mapPrivateFuncMapBucketNext):

  • runtime/SetConstructor.cpp:

(JSC::setPrivateFuncSetBucketNext):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::sentinelSetBucketSlow):
(JSC::VM::sentinelMapBucketSlow):

  • runtime/VM.h:

(JSC::VM::sentinelSetBucket):
(JSC::VM::sentinelMapBucket):

4:41 AM Changeset in webkit [242448] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24

Merge r242013 - [WPE][GTK] Remove user agent quirk for washingtonpost.com
https://bugs.webkit.org/show_bug.cgi?id=194981

Reviewed by Žan Doberšek.

Source/WebCore:

Remove user agent quirk for washingtonpost.com because we support JPEG 2000 now.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

4:40 AM Changeset in webkit [242447] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Merge r242012 - [WPE] Install MemoryPressureHandler in UIProcess
https://bugs.webkit.org/show_bug.cgi?id=194617

Reviewed by Žan Doberšek.

Currently only GTK and Cocoa ports run MemoryPressureHandler in the UI process. WPE should
too.

We need @no-unify to avoid changing the unified source bundles under API/, which are
notoriously fragile. (WebMemoryPressureHandler.cpp sorts just above API/.)

  • SourcesWPE.txt:
  • UIProcess/WebMemoryPressureHandler.cpp:

(WebKit::installMemoryPressureHandler):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitialize):

4:40 AM Changeset in webkit [242446] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WTF

Merge r241998 - Unreviewed, fix find/replace error from r232178

Looks like this was the only such error in that commit.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::isLookalikeCharacter):

4:40 AM Changeset in webkit [242445] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24/Source

Merge r241991 - Add an exception check and some assertions in StringPrototype.cpp.
https://bugs.webkit.org/show_bug.cgi?id=194962
<rdar://problem/48013416>

Reviewed by Yusuke Suzuki and Saam Barati.

Source/JavaScriptCore:

  • runtime/StringPrototype.cpp:

(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):

Source/WTF:

Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
for assertion purpose only on debug builds but sacrifices no performance on
release builds.

  • wtf/CheckedArithmetic.h:

(WTF::AssertNoOverflow::overflowed):
(WTF::AssertNoOverflow::clearOverflow):
(WTF::AssertNoOverflow::crash):
(WTF::AssertNoOverflow::hasOverflowed const):
(WTF::observesOverflow):
(WTF::observesOverflow<AssertNoOverflow>):
(WTF::safeAdd):
(WTF::safeSub):
(WTF::safeMultiply):
(WTF::Checked::operator+=):
(WTF::Checked::operator-=):
(WTF::Checked::operator*=):
(WTF::operator+):
(WTF::operator-):
(WTF::operator*):

4:40 AM Changeset in webkit [242444] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.24

Merge r241968 - DFGBytecodeParser should not declare that a node won't clobberExit if DFGFixupPhase can later declare it does clobberExit
https://bugs.webkit.org/show_bug.cgi?id=194953
<rdar://problem/47595253>

Reviewed by Saam Barati.

JSTests:

I could not make this work without the infinite loop, so I am using a watchdog to be able to use it as a regression test.

  • stress/has-indexed-property-with-worsening-array-mode.js: Added.

Source/JavaScriptCore:

For each node that
(a) may or may not clobberExit depending on their arrayMode
(b) and get their arrayMode from profiling information in DFGBytecodeParser
(c) and can have their arrayMode refined by DFGFixupPhase,
We must make sure to be conservative in the DFGBytecodeParser and treat it as if it unconditionnally clobbered the exit.
Otherwise we will hit a validation failure after fixup if the next node was marked ExitValid and exits to the same semantic origin.

The list of nodes that fit (a) is:

  • StringCharAt
  • HasIndexProperty
  • GetByVal
  • PutByValDirect
  • PutByVal
  • PutByValAlias
  • GetIndexedPropertyStorage

Out of these, the following also fit (b) and (c):

  • HasIndexedProperty
  • GetByVal
  • PutByValDirect
  • PutByVal

GetByVal already had "m_exitOK = false; GetByVal must be treated as if it clobbers exit state, since FixupPhase may make it generic."
So we just have to fix the other three the same way.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):

4:40 AM Changeset in webkit [242443] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r241967 - Crash under IDBServer::IDBConnectionToClient::identifier() const
https://bugs.webkit.org/show_bug.cgi?id=194843
<rdar://problem/48203102>

Reviewed by Geoffrey Garen.

UniqueIDBDatabase should ignore requests from connections that are already closed.

Tests are hard to create without some tricks on UniqueIDBDatabase so this fix is verified manually.
One test is created by adding delay to UniqueIDBDatabase::openBackingStore on the background thread to make sure
disconnection of web process happens before UniqueIDBDatabase::didOpenBackingStore, because didOpenBackingStore
may start a version change transaction and ask for identifier from the connection that is already gone.

  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::connectionToClientClosed):

  • Modules/indexeddb/server/IDBConnectionToClient.h:

(WebCore::IDBServer::IDBConnectionToClient::isClosed):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::clearStalePendingOpenDBRequests):
(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
4:40 AM Changeset in webkit [242442] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r241964 - B3ReduceStrength: missing peephole optimizations for binary operations
https://bugs.webkit.org/show_bug.cgi?id=194252

Reviewed by Saam Barati.

Adds several sets of optimizations for BitAnd, BitOr and BitXor.
Using BitAnd distributivity over BitOr and BitXor:

Turn any of these (for Op == BitOr
Op == BitXor):

Op(BitAnd(x1, x2), BitAnd(x1, x3))
Op(BitAnd(x2, x1), BitAnd(x1, x3))
Op(BitAnd(x1, x2), BitAnd(x3, x1))
Op(BitAnd(x2, x1), BitAnd(x3, x1))

Into this: BitAnd(Op(x2, x3), x1)
And any of these:

Op(BitAnd(x1, x2), x1)
Op(BitAnd(x2, x1), x1)
Op(x1, BitAnd(x1, x2))
Op(x1, BitAnd(x2, x1))

Into this: BitAnd(Op(x2, x1), x1)
This second set is equivalent to doing x1 => BitAnd(x1, x1), and then applying the first set.

Using de Morgan laws (we represent not as BitXor with allOnes):

BitAnd(BitXor(x1, allOnes), BitXor(x2, allOnes)) => BitXor(BitOr(x1, x2), allOnes)
BitOr(BitXor(x1, allOnes), BitXor(x2, allOnes) => BitXor(BitAnd(x1, x2), allOnes)
BitOr(BitXor(x, allOnes), c) => BitXor(BitAnd(x, ~c), allOnes)
BitAnd(BitXor(x, allOnes), c) => BitXor(BitOr(x, ~c), allOnes)

The latter two are equivalent to doing c => BitXor(~c, allOnes), and then applying the former two.

All of these transformations either reduce the number of operations (which we always do when possible), or bring the expression closer to having:

  • BitXor with all ones at the outermost
  • then BitAnd
  • then other BitXor
  • then BitOr at the innermost.

These transformations that don't directly reduce the number of operations are still useful for normalization (helping things like CSE), and also can enable
more optimizations (for example BitXor with all ones can easily cancel each other once they are all at the outermost level).

  • b3/B3ReduceStrength.cpp:
  • b3/testb3.cpp:

(JSC::B3::testBitAndNotNot):
(JSC::B3::testBitAndNotImm):
(JSC::B3::testBitOrAndAndArgs):
(JSC::B3::testBitOrAndSameArgs):
(JSC::B3::testBitOrNotNot):
(JSC::B3::testBitOrNotImm):
(JSC::B3::testBitXorAndAndArgs):
(JSC::B3::testBitXorAndSameArgs):
(JSC::B3::run):

4:40 AM Changeset in webkit [242441] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r241954,r241955 - [JSC] SmallStringsStorage is unnecessary
https://bugs.webkit.org/show_bug.cgi?id=194939

Reviewed by Mark Lam.

SmallStrings hold common small JSStrings. Their underlying StringImpl is also held by SmallStringsStorage.
But it is duplicate since we can get StringImpl from small JSStrings. This patch removes SmallStringsStorage,
and get StringImpls from JSStrings if necessary.

We also add m_canAccessHeap flag to SmallStrings. At the time of VM destruction, JSStrings are destroyed when
VM's Heap is finalized. We must not touch JSStrings before VM's heap (and JSStrings in SmallStrings) is initialized,
and after VM's Heap is destroyed. We add this m_canAccessHeap flag to allow users to get StringImpl during the
this sensitive period. If m_canAccessHeap is false, we get StringImpl from AtomicStringImpl::add.

  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::singleCharacterStringRep):
(JSC::SmallStringsStorage::rep): Deleted.
(JSC::SmallStringsStorage::SmallStringsStorage): Deleted.
(JSC::SmallStrings::createSingleCharacterString): Deleted.

  • runtime/SmallStrings.h:

(JSC::SmallStrings::setCanAccessHeap):

  • runtime/VM.cpp:

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

4:40 AM Changeset in webkit [242440] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Merge r241952 - [GTK] Navigation gesture improvements
https://bugs.webkit.org/show_bug.cgi?id=194943

Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2019-02-22
Reviewed by Michael Catanzaro.

Cancel the gesture if progress is less than 0.5 and velocity is not high enough.

Allow to continue the gesture during animation. Introduce finished state to be used
when showing snapshot after the animation ends.

Fix duration calculation, also slow it down so that the initial velocity matches
what it was during the gesture.

  • UIProcess/ViewGestureController.h: Add shouldCancel() and State::Finishing to SwipeProgressTracker.
  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::SwipeProgressTracker::handleEvent):
Fix velocity calculation, allow scrolling during State::Animating.
(WebKit::ViewGestureController::SwipeProgressTracker::shouldCancel): Added.
(WebKit::ViewGestureController::SwipeProgressTracker::startAnimation): Use shouldCancel() and fix duration calculation.
(WebKit::ViewGestureController::SwipeProgressTracker::endAnimation): Set state to State::Finishing when the animation ends.

4:40 AM Changeset in webkit [242439] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24

Merge r241942 - Fix unitless usage of mathsize
https://bugs.webkit.org/show_bug.cgi?id=194940

Patch by Rob Buis <rbuis@igalia.com> on 2019-02-22
Reviewed by Frédéric Wang.

Source/WebCore:

Convert unitless lengths to percentage values to correct the computed
font size.

  • mathml/MathMLElement.cpp:

(WebCore::convertToPercentageIfNeeded):
(WebCore::MathMLElement::collectStyleForPresentationAttribute):

LayoutTests:

Tests lengths-1.html and length-3.html now pass.

4:40 AM Changeset in webkit [242438] by Carlos Garcia Campos
  • 33 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r241932 - Some refinements for Node and Document
https://bugs.webkit.org/show_bug.cgi?id=194764

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press): Use shadowHost instead of
deprecatedShadowAncestorNode.
(WebCore::AccessibilityObject::axObjectCache const): Tweak coding style.
(WebCore::AccessibilityObject::focusedUIElement const): Use existing page
function to streamline.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::accessKey const): Use
attributeWithoutSynchronization for efficiency and consistency with other
code working with the accesskey attribute.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::childrenChanged): Added call to
invalidateAccessKeyCache, replacing old scheme tied to style recalculation.

  • dom/DecodedDataDocumentParser.cpp:

(WebCore::DecodedDataDocumentParser::appendBytes): Update for name and return
type change of createDecoderIfNeeded to decoder.
(WebCore::DecodedDataDocumentParser::flush): Ditto.

  • dom/Document.cpp:

(WebCore::Document::elementForAccessKey): Renamed from getElementForAccessKey
to match WebKit coding style. Changed to use unique_ptr instead of separate
boolean to keep track of map validity status.
(WebCore::Document::buildAccessKeyCache): Renamed from buildAccessKeyMap to
clarify that this is a cache. Changed to use composedTreeDescendants rather
than explicit calls to shadowRoot. Use add instead of set so that first element
in document order wins, instead of last element in document order. Updated
to make a new map in a new unique_ptr instead of populating a map.
(WebCore::Document::invalidateAccessKeyCacheSlowCase): Renamed from
invalidateAccessKeyMap, and left an inline part in the header so the fast case
of quickly checking for a null pointer can be inlined.
(WebCore::Document::doctype const): Use downcast instead of static_cast.
(WebCore::Document::scheduleStyleRecalc): Moved call to invalidateAccessKeyMap
from here to childrenChanged and accesskey attribute change handling.
(WebCore::Document::processFormatDetection): Set m_isTelephoneNumberParsingAllowed
directly since this is the only place that does it and we don't need to factor
that one line of code into a function.
(WebCore::Document::getOverrideStyle): Moved to header since it's just a stub
that always returns nullptr and can be inlined.
(WebCore::Document::setIsTelephoneNumberParsingAllowed): Deleted.
(WebCore::Document::ensureTemplateDocument): Removed nullptr frame argument to
the create function, since Document::create now always involves no frame.
(WebCore::Document::didAssociateFormControl): Changed argument type to a reference
and simplified the logic with a local variable.
(WebCore::Document::didAssociateFormControlsTimerFired): Simplified the null
checks and rearranged things so that m_associatedFormControls will always
get cleared even if the document is no longer associated with a page.

  • dom/Document.h: Removed unnnecessary explicit values for enumerations (first

value is always zero, etc.) and formatted simple enumerations in a single line
for easier reading. Moved Document::create fucntion bodies out of line, removed
the frame argument from the simple "create with URL" overload and made the frame
argument for createNonRenderedPlaceholder be a reference rather than a pointer.
Renamed getElementByAccessKey to elementForAccessKey, invalidateAccessKeyMap to
invalidateAccessKeyCache, buildAccessKeyMap to buildAccessKeCache,
m_elementsByAccessKey to m_accessKeyCache and changed its type.
Removed bogus "DOM methods" comment, unused setParserFeature friend declaration,
setIsTelephoneNumberParsingAllowed function, and m_accessKeyMapValid flag.

  • dom/Document.idl: Added comment highlighting that getOverrideStyle is just a

placeholder returning null.

  • dom/Element.cpp:

(WebCore::Element::attributeChanged): Call invalidateAccessKeyCache when the
value of the accesskey attribute is changed. Also moved the class attribute code
so the attributes here are in alphabetical order (only class and id were out of
alphabetical order).

  • dom/Node.cpp:

(WebCore::Node::isDescendantOrShadowDescendantOf const): Rewrote to no longer
use deprecatedShadowAncestorNode and used boolean operators to make it a
single line and easier to understand. Also added a FIXME since the
containsIncludingShadowDOM function is so similar, yet differently written.
(WebCore::Node::contains const): Rewrote as a single line to make this easier
to read and to *slightly* improve the speed in the "this == node" case.
(WebCore::Node::containsIncludingHostElements const): Use downcast.
(WebCore::Node::deprecatedShadowAncestorNode const): Deleted.

  • dom/Node.h: Deleted now-unused deprecatedShadowAncestorNode.
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::ReplacementFragment): Rewrote to use shadowHost
instead of deprecatedShadowAncestorNode.

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::resetFormOwner): Pass reference to
didAssociateFormControl.
(WebCore::FormAssociatedElement::formAttributeChanged): Ditto.

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::parseAttribute): Removed special case for accesskey
attribute, because we want to call the base class parseAttribute in that case.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::insertedIntoAncestor): Pass reference to
didAssociateFormControl.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::parseAttribute): Removed special case for accesskey
attribute with mysterious FIXME, because we want to call the base class
parseAttribute in that case. The old code had no effect before; the access key
logic would still find the attribute; if the goal is to ignore the attribute
for these elements we will need a different solution.

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::parseAttribute): Ditto.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::DocumentLoader): Removed code that was always passing
nullptr as the frame for the newly created DocumentWriter. It used m_frame, but
m_frame was always null.
(WebCore::DocumentLoader::attachToFrame): Pass reference to DocumentWriter::setFrame.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::DocumentWriter): Deleted. The old version set m_frame to
the passed in frame, which was always nullptr, and initialized some booleans and an
enumeration, which are now initialized in the class definition.
(WebCore::DocumentWriter::createDocument): Pass a reference for the frame.
(WebCore::DocumentWriter::begin): Updated now that State is an enum class.
(WebCore::DocumentWriter::decoder): Renamed from createDecoderIfNeeded and changed
to return a reference.
(WebCore::DocumentWriter::addData): Use RELEASE_ASSERT instead of if/CRASH and
updated now that State is an enum class.
(WebCore::DocumentWriter::insertDataSynchronously): Updated now that State is an
enum class.
(WebCore::DocumentWriter::end): Ditto.

  • loader/DocumentWriter.h: Removed unneeded include and forward declaration.

Removed the frame pointer argument to the constructor, caller was always passing a
nullptr. Changed argument to setFrame to be a reference. Renamed createDecoderIfNeeded
to decoder and changed it to return a reference. Initialized m_frame,
m_hasReceivedSomeData, m_encodingWasChosenByUser, and m_state here so we don't need
to initialize them in a constructor. Renamed the enum from WriterState to State since
it's a member of DocumentWriter already, and made it an enum class rather than ending
each enumeration value with WritingState.

  • page/DragController.cpp:

(WebCore::isEnabledColorInput): Removed boolean argument setToShadowAncestor. The
one caller that formerly passed true now calls the new hasEnabledColorInputAsShadowHost
function instead.
(WebCore::hasEnabledColorInputAsShadowHost): Added.
(WebCore::elementUnderMouse): Use shadowHost instead of deprecatedShadowAncestorNode.
Also added FIXME since it seems this should instead be using parentElementInComposedTree.
(WebCore::DragController::concludeEditDrag): Removed "false" argument to isEnabledColorInput.
(WebCore::DragController::canProcessDrag): Removed "true" argument to isEnabledColorInput
and added call to hasEnabledColorInputAsShadowHost. Also put the value of the node to drag
into a local variable to simplify code.
(WebCore::DragController::draggableElement const): Removed "false" argument to isEnabledColorInput.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleAccessKey): Update name of elementForAccessKey.

  • page/FocusController.cpp:

(WebCore::clearSelectionIfNeeded): Use shadowHost instead of deprecatedShadowAncestorNode.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::createPageForServiceWorker): Pass reference instead of pointer for frame to
Document::createNonRenderedPlaceholder.

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js: Removed getOverrideStyle

because this deprecated non-working function is no longer something web authors
should be thinking about or typing.

Source/WebKit:

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

(webkit_dom_document_get_override_style): Changed to return nullptr directly instead of
calling a bunch of WebCore code first. No real value in checking arguments or doing any work.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::shouldAlwaysUsePluginDocument const): Deleted.
No need to override the function inherited from the base class, nor to keep track of the
unnecessary task of implementing this some day.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h: Updated for the above.

Source/WebKitLegacy/mac:

  • DOM/DOMDocument.mm:

(-[DOMDocument getOverrideStyle:pseudoElement:]): Return nil without calling
through to WebCore or even looking at the arguments.
(-[DOMDocument getOverrideStyle::]): Ditto.

LayoutTests:

fast/forms/access-key-shadow-and-ordering-expected.txt: Added.
fast/forms/access-key-shadow-and-ordering.html: Added.

3:59 AM Changeset in webkit [242437] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

[WPE] Do not create a PlatformDisplay in the Service Worker process
https://bugs.webkit.org/show_bug.cgi?id=194830

Patch by Loïc Yhuel <loic.yhuel@softathome.com> on 2019-03-05
Reviewed by Žan Doberšek.

It avoids opening the Wayland socket in this WPEWebProcess, which might cause issues
depending on the platform, and allocates unneeded resources.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h: Add new isServiceWorkerProcess parameter.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess): Set isServiceWorkerProcess parameter.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): No implementationLibraryName and hostClientFileDescriptor for Service Worker.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): No wpe_loader_init nor PlatformDisplayLibWPE for Service Worker.

2:35 AM Changeset in webkit [242436] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK][l10n] Updated Polish translation of WebKitGTK for 2.24
https://bugs.webkit.org/show_bug.cgi?id=194859

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2019-03-05
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
2:27 AM Changeset in webkit [242435] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CPU Usage Timeline - Adjust sizes in timeline overview
https://bugs.webkit.org/show_bug.cgi?id=195313

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-03-05
Reviewed by Devin Rousso.

Reduce the height slightly to save some precious vertical space.
Also increase the size of the minimum bar height so that it doesn't
look like there are no events when there is low CPU.

  • UserInterface/Views/CPUTimelineOverviewGraph.css:

(body .sidebar > .panel.navigation.timeline > .timelines-content li.item.cpu,):

  • UserInterface/Views/CPUTimelineOverviewGraph.js:

(WI.CPUTimelineOverviewGraph.prototype.get height):
Reduce the CPU overview graph height to 60px.

(WI.CPUTimelineOverviewGraph.prototype.layout):
Increase the minimum size of a column bar to 4px.

12:44 AM Changeset in webkit [242434] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r241927 - Add more doesGC() assertions.
https://bugs.webkit.org/show_bug.cgi?id=194911
<rdar://problem/48285723>

Reviewed by Saam Barati and Yusuke Suzuki.

  • dfg/DFGOSRExit.cpp:

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

  • Set expectDoesGC here because we no longer have to worry about missing store barriers in optimized code after this point. This will prevent false positive assertion failures arising from functions called beneath compileOSRExit().

(JSC::DFG::OSRExit::compileExit):

  • Add a comment to explain why the generated ramp needs to set expectDoesGC even though compileOSRExit() also sets it. Reason: compileOSRExit() is only called for the first OSR from this code origin, the generated ramp is called for many subsequents OSR exits from this code origin.
  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • Added a comment for the equivalent reason to the one above.

(JSC::FTL::compileFTLOSRExit):

  • Set expectDoesGC here because we no longer have to worry about missing store barriers in optimized code after this point. This will prevent false positive assertion failures arising from functions called beneath compileFTLOSRExit().
  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::tryAllocateSlow):

  • heap/CompleteSubspaceInlines.h:

(JSC::CompleteSubspace::allocateNonVirtual):

  • assert expectDoesGC.
  • heap/DeferGC.h:

(JSC::DeferGC::~DeferGC):

  • assert expectDoesGC.
  • Also added WTF_FORBID_HEAP_ALLOCATION to DeferGC, DeferGCForAWhile, and DisallowGC because all 3 should be stack allocated RAII objects.
  • heap/GCDeferralContext.h:
  • heap/GCDeferralContextInlines.h:

(JSC::GCDeferralContext::~GCDeferralContext):

  • Added WTF_FORBID_HEAP_ALLOCATION.
  • assert expectDoesGC.
  • heap/Heap.cpp:

(JSC::Heap::collectNow):
(JSC::Heap::collectAsync):
(JSC::Heap::collectSync):
(JSC::Heap::stopIfNecessarySlow):
(JSC::Heap::collectIfNecessaryOrDefer):

  • heap/HeapInlines.h:

(JSC::Heap::acquireAccess):
(JSC::Heap::stopIfNecessary):

  • heap/LargeAllocation.cpp:

(JSC::LargeAllocation::tryCreate):

  • heap/LocalAllocatorInlines.h:

(JSC::LocalAllocator::allocate):

  • conservatively assert expectDoesGC on these functions that may trigger a GC though they don't always do.
  • runtime/DisallowScope.h:
  • DisallowScope should be stack allocated because it's an RAII object.
  • runtime/JSCellInlines.h:

(JSC::tryAllocateCellHelper):

  • Remove the expectDoesGC assertion because it is now covered by assertions in CompleteSubspace, LargeAllocation, and LocalAllocator.
  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • assert expectDoesGC.
12:44 AM Changeset in webkit [242433] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r241923 - [JSC] Use Fast Malloc as much as possible
https://bugs.webkit.org/show_bug.cgi?id=194316

Reviewed by Mark Lam.

We should use Fast Malloc as much as possible to offer the whole memory view to bmalloc.

  • inspector/scripts/codegen/cpp_generator_templates.py:
  • inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/generic/expected/enum-values.json-result:
  • inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
  • jit/ExecutableAllocator.h:
  • jsc.cpp:
  • runtime/JSRunLoopTimer.h:
  • tools/VMInspector.h:
  • wasm/WasmThunks.h:
12:44 AM Changeset in webkit [242432] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r241913 - IndexedDB: leak UniqueIDBDatabase in layout tests
https://bugs.webkit.org/show_bug.cgi?id=194870
<rdar://problem/48163812>

Reviewed by Geoffrey Garen.

UniqueIDBDatabase owns a pointer to itself after it is hard closed. It should release the pointer when it
receives confirmation from clients and all pending tasks are done. UniqueIDBDatabase already checks whether the
pointer should be released when a database task finishes, but it didn't perform a check when a confirm message
is received.

No new test as the order of task completion and confirmation arrival is uncertain.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::confirmDidCloseFromServer):

12:44 AM Changeset in webkit [242431] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebInspectorUI

Merge r241874 - Web Inspector: DOM Debugger: node-specific event breakpoints aren't cleared/recalculated on navigation
https://bugs.webkit.org/show_bug.cgi?id=194874
<rdar://problem/48253415>

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype._setDocument):
(WI.DOMManager.prototype.removeBreakpointForEventListener):

12:44 AM Changeset in webkit [242430] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.24

Merge r241863 - Update MIME type parser
https://bugs.webkit.org/show_bug.cgi?id=180526

Patch by Rob Buis <rbuis@igalia.com> on 2019-02-21
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test expectations.

  • web-platform-tests/xhr/overridemimetype-blob-expected.txt:

Source/WebCore:

Further testing showed the MIME parser needs these fixes:

  • stripWhitespace is wrong for removing HTTP whitespace, use stripLeadingAndTrailingHTTPSpaces instead.
  • HTTP Token code points checking for Rfc2045 and Mimesniff were mixed up, use the dedicated isValidHTTPToken for Mimesniff mode.
  • Quoted Strings were not unescaped/escaped, this seems ok for serializing but is wrong when gettings individual parameter values. Implement [1] and [2] Step 2.4 to properly unescape and escape.

This change also tries to avoid hard to read uses of find.

Test: ParsedContentType.Serialize

[1] https://fetch.spec.whatwg.org/#collect-an-http-quoted-string
[2] https://mimesniff.spec.whatwg.org/#serializing-a-mime-type

  • platform/network/ParsedContentType.cpp:

(WebCore::skipSpaces):
(WebCore::parseToken):
(WebCore::isNotQuoteOrBackslash):
(WebCore::collectHTTPQuotedString):
(WebCore::containsNonTokenCharacters):
(WebCore::parseQuotedString):
(WebCore::ParsedContentType::parseContentType):
(WebCore::ParsedContentType::create):
(WebCore::ParsedContentType::setContentType):
(WebCore::containsNonQuoteStringTokenCharacters):
(WebCore::ParsedContentType::setContentTypeParameter):
(WebCore::ParsedContentType::serialize const):
(WebCore::substringForRange): Deleted.
(WebCore::isNonTokenCharacter): Deleted.
(WebCore::isNonQuotedStringTokenCharacter): Deleted.

  • platform/network/ParsedContentType.h:

Tools:

Add tests involving leading and trailing whitespace, non-token
characters and quoted strings.

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:

(TestWebKitAPI::TEST):

12:44 AM Changeset in webkit [242429] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r242067 - [JSC] stress/function-constructor-reading-from-global-lexical-environment.js fails in 32bit arch
https://bugs.webkit.org/show_bug.cgi?id=195030
<rdar://problem/48385088>

Reviewed by Saam Barati.

While LLInt64 has checkTDZInGlobalPutToScopeIfNecessary for op_put_to_scope GlobalLexicalVar to check the value in the variable slot is not empty,
this check is missing in LLInt32_64. Previously, this check was subsumed accidentally by the WatchpointSet check in GlobalLexicalVar in notifyWrite:
because no "put" attempt succeeds here, the status WatchpointSet was ClearWatchpoint, we always go to the slow path, and we always throw the TDZ error
before configuring the WatchpointSet in the slow path. But after r241862, WatchpointSet is not used under non-JIT configuration. This skips WatchpointSet
check and LLInt32_64 starts failing tests because of lack of checkTDZInGlobalPutToScopeIfNecessary. This patch adds checkTDZInGlobalPutToScopeIfNecessary
in LLInt32_64 too. This patch fixes the following four failing tests.

stress/function-constructor-reading-from-global-lexical-environment.js.bytecode-cache
stress/function-constructor-reading-from-global-lexical-environment.js.default
stress/global-lexical-variable-tdz.js.bytecode-cache
stress/global-lexical-variable-tdz.js.default

  • llint/LowLevelInterpreter32_64.asm:
12:44 AM Changeset in webkit [242428] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r241862 - [JSC] Remove WatchpointSet creation for SymbolTable entries if VM::canUseJIT() returns false
https://bugs.webkit.org/show_bug.cgi?id=194891

Reviewed by Geoffrey Garen.

WatchpointSet in SymbolTable is used to fold the value into a constant in JIT tiers. And it is
not useful under the non-JIT mode. This patch avoids creation of WatchpointSet in SymbolTable
if VM::canUseJIT() returns false.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/SymbolTable.cpp:

(JSC::SymbolTableEntry::addWatchpoint): Deleted.

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::isWatchable const):
(JSC::SymbolTableEntry::watchpointSet):

12:44 AM Changeset in webkit [242427] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r241860 - REGRESSION (240698): Fixed position banners flicker and move when scrolling on iOS
https://bugs.webkit.org/show_bug.cgi?id=194889
rdar://problem/47755552

Reviewed by Tim Horton.

After r240698 we could commit scrolling changes for a fixed node where the "viewportRectAtLastLayout" and the layer
position were mismatched; this happened when AsyncScrollingCoordinator::reconcileScrollingState() came back from the UI process
with an unstable update and set a new layoutViewport, then some other layout triggered a compositing tree update. During the tree
update, we'd update the fixed scrolling node with the new viewport, and an old layer position.

Fix by ensuring that we only update the geometry info for a scrolling tree node when we update layer geometry for the corresponding
layer.

Not currently testable.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):

12:43 AM Changeset in webkit [242426] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.24/Source/WTF

Merge r241856 - URL percent-encode operations should use checked arithmetic for buffer allocation length
https://bugs.webkit.org/show_bug.cgi?id=194877
<rdar://problem/48212062>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-02-20
Reviewed by Tim Horton.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::userVisibleURL):

  • wtf/cocoa/NSURLExtras.mm:

(WTF::dataWithUserTypedString):

12:43 AM Changeset in webkit [242425] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merge r241849 - Add code to validate expected GC activity modelled by doesGC() against what the runtime encounters.
https://bugs.webkit.org/show_bug.cgi?id=193938
<rdar://problem/47616277>

Reviewed by Michael Saboff, Saam Barati, and Robin Morisset.

In DFG::SpeculativeJIT::compile() and FTL::LowerDFGToB3::compileNode(), before
emitting code / B3IR for each DFG node, we emit a write to set Heap::m_expectDoesGC
to the value returned by doesGC() for that node. In the runtime (i.e. in allocateCell()
and functions that can resolve a rope), we assert that Heap::m_expectDoesGC is
true.

This validation code is currently only enabled for debug builds. It is disabled
for release builds by default, but it can easily be made to run on release builds
as well by forcing ENABLE_DFG_DOES_GC_VALIDATION to 1 in Heap.h.

To allow this validation code to run on release builds as well, the validation uses
RELEASE_ASSERT instead of ASSERT.

To ensure that Heap.h is #include'd for all files that needs to do this validation
(so that the validation code is accidentally disabled), we guard the validation
code with an if conditional on constexpr bool validateDFGDoesGC (instead of using
a #if ENABLE(DFG_DOES_GC_VALIDATION)). This way, if Heap.h isn't #include'd, the
validation code will fail to build (no silent failures).

Currently, all JSC tests and Layout tests should pass with this validation enabled
in debug builds. We'll only see new failures if there's a regression or if new
tests reveal a previously untested code path that has an undetected issue.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::executeOSRExit):
(JSC::DFG::OSRExit::compileExit):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • heap/Heap.h:

(JSC::Heap::expectDoesGC const):
(JSC::Heap::setExpectDoesGC):
(JSC::Heap::addressOfExpectDoesGC):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_compareAndJump):

  • runtime/JSCellInlines.h:

(JSC::tryAllocateCellHelper):

  • runtime/JSString.h:

(JSC::jsSingleCharacterString):
(JSC::JSString::toAtomicString const):
(JSC::JSString::toExistingAtomicString const):
(JSC::JSString::value const):
(JSC::JSString::tryGetValue const):
(JSC::JSRopeString::unsafeView const):
(JSC::JSRopeString::viewWithUnderlyingString const):
(JSC::JSString::unsafeView const):

12:43 AM Changeset in webkit [242424] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r241848 - Crash in DOMWindowExtension::suspendForPageCache
https://bugs.webkit.org/show_bug.cgi?id=194871

Reviewed by Chris Dumez.

This is a speculative fix for a crash in DOMWindowExtension::suspendForPageCache.

We think it's possible for DOMWindowExtension::suspendForPageCache notifying the clients via
dispatchWillDisconnectDOMWindowExtensionFromGlobalObject to remove other DOMWindowExtension's.
Check that each DOMWindowProperty is still in m_properties before invoking suspendForPageCache
to avoid the crash.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::willDestroyCachedFrame):
(WebCore::DOMWindow::willDestroyDocumentInFrame):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::suspendForPageCache):
(WebCore::DOMWindow::resumeFromPageCache):

  • page/DOMWindowExtension.cpp:

(WebCore::DOMWindowExtension::suspendForPageCache):

12:43 AM Changeset in webkit [242423] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.24/Source/bmalloc

Merge r241847 - [bmalloc] bmalloc::Heap is allocated even though we use system malloc mode
https://bugs.webkit.org/show_bug.cgi?id=194836

Reviewed by Mark Lam.

Previously, bmalloc::Heap holds DebugHeap, and delegates allocation and deallocation to debug heap.
However, bmalloc::Heap is large. We would like to avoid initialization of bmalloc::Heap under the
system malloc mode.

This patch extracts out DebugHeap from bmalloc::Heap, and logically puts this in a boundary of
bmalloc::api. bmalloc::api delegates allocation and deallocation to DebugHeap if DebugHeap is enabled.
Otherwise, using bmalloc's usual mechanism. The challenge is that we would like to keep bmalloc fast
path fast.

  1. For IsoHeaps, we use the similar techniques done in Cache. If the debug mode is enabled, we always go to the slow path of the IsoHeap allocation, and keep IsoTLS::get() returning nullptr. In the slow path, we just fallback to the usual bmalloc::api::tryMalloc implementation. This is efficient because bmalloc continues using the fast path.
  1. For the other APIs, like freeLargeVirtual, we just put DebugHeap check because this API itself takes fair amount of time. Then debug heap check does not matter.
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocateImpl):

  • bmalloc/Cache.cpp:

(bmalloc::Cache::tryAllocateSlowCaseNullCache):
(bmalloc::Cache::allocateSlowCaseNullCache):
(bmalloc::Cache::deallocateSlowCaseNullCache):
(bmalloc::Cache::tryReallocateSlowCaseNullCache):
(bmalloc::Cache::reallocateSlowCaseNullCache):
(): Deleted.
(bmalloc::debugHeap): Deleted.

  • bmalloc/DebugHeap.cpp:
  • bmalloc/DebugHeap.h:

(bmalloc::DebugHeap::tryGet):

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::footprint):
(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::deallocateLarge):

  • bmalloc/Heap.h:

(bmalloc::Heap::debugHeap): Deleted.

  • bmalloc/IsoTLS.cpp:

(bmalloc::IsoTLS::IsoTLS):
(bmalloc::IsoTLS::isUsingDebugHeap): Deleted.
(bmalloc::IsoTLS::debugMalloc): Deleted.
(bmalloc::IsoTLS::debugFree): Deleted.

  • bmalloc/IsoTLS.h:
  • bmalloc/IsoTLSInlines.h:

(bmalloc::IsoTLS::allocateSlow):
(bmalloc::IsoTLS::deallocateSlow):

  • bmalloc/ObjectType.cpp:

(bmalloc::objectType):

  • bmalloc/ObjectType.h:
  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::Scavenger):

  • bmalloc/bmalloc.cpp:

(bmalloc::api::tryLargeZeroedMemalignVirtual):
(bmalloc::api::freeLargeVirtual):
(bmalloc::api::scavenge):
(bmalloc::api::isEnabled):
(bmalloc::api::setScavengerThreadQOSClass):
(bmalloc::api::commitAlignedPhysical):
(bmalloc::api::decommitAlignedPhysical):
(bmalloc::api::enableMiniMode):

12:43 AM Changeset in webkit [242422] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r241842 - Always call CompletionHandlers after r240909
https://bugs.webkit.org/show_bug.cgi?id=194823

Patch by Alex Christensen <achristensen@webkit.org> on 2019-02-20
Reviewed by Ryosuke Niwa.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):
(WebCore::PolicyChecker::checkNewWindowPolicy):

12:43 AM Changeset in webkit [242421] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merge r241840 - drawImage() clears the canvas if it's the source of the image and globalCompositeOperation is "copy"
https://bugs.webkit.org/show_bug.cgi?id=194746

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-02-20
Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/canvas-drawImage-composite-copy.html

If the source canvas of drawImage() is the same as the destination and
globalCompositeOperation is set to "copy", copy the srcRect from the
canvas to a temporary buffer before calling clearCanvas() then drawImage
from this temporary buffer.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::copyRectToBuffer):

  • platform/graphics/ImageBuffer.h:

LayoutTests:

  • fast/canvas/canvas-drawImage-composite-copy-expected.html: Added.
  • fast/canvas/canvas-drawImage-composite-copy.html: Added.
12:43 AM Changeset in webkit [242420] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.24/Source/bmalloc

Merge r241837 - [bmalloc] DebugHeap::malloc does not have "try" version.
https://bugs.webkit.org/show_bug.cgi?id=194837

Reviewed by Mark Lam.

Since DebugHeap::malloc does not have "try" version, our tryAllocate implementation does not work well with DebugHeap.
This patch adds crashOnFailure flag to DebugHeap::malloc.

  • bmalloc/Cache.cpp:

(bmalloc::Cache::tryAllocateSlowCaseNullCache):
(bmalloc::Cache::allocateSlowCaseNullCache):

  • bmalloc/DebugHeap.cpp:

(bmalloc::DebugHeap::malloc):

  • bmalloc/DebugHeap.h:
  • bmalloc/IsoTLS.cpp:

(bmalloc::IsoTLS::debugMalloc):

12:43 AM Changeset in webkit [242419] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.24/Source/bmalloc

Merge r241832 - [bmalloc] bmalloc::Cache should not be instantiated if we are using system malloc
https://bugs.webkit.org/show_bug.cgi?id=194811

Reviewed by Mark Lam.

bmalloc::Cache is very large. It is 13KB. Since it exists per HeapKind, it takes 40KB.
But this is meaningless if we are under the system malloc mode by using "Malloc=1". We
found that it continues using so much dirty memory region even under the system malloc mode.
This patch avoids instantiation of bmalloc::Cache under the system malloc mode.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::Allocator):
(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocateImpl):
(bmalloc::Allocator::reallocateImpl):
(bmalloc::Allocator::allocateSlowCase):
Allocator is a per Cache object. So we no longer need to keep m_debugHeap. If debug heap is enabled,
Allocator is never created.

  • bmalloc/Allocator.h:
  • bmalloc/Cache.cpp:

(bmalloc::debugHeap):
(bmalloc::Cache::Cache):
(bmalloc::Cache::tryAllocateSlowCaseNullCache):
(bmalloc::Cache::allocateSlowCaseNullCache):
(bmalloc::Cache::deallocateSlowCaseNullCache):
(bmalloc::Cache::tryReallocateSlowCaseNullCache):
(bmalloc::Cache::reallocateSlowCaseNullCache):

  • bmalloc/Cache.h:

(bmalloc::Cache::tryAllocate):
(bmalloc::Cache::tryReallocate):
If the debug heap mode is enabled, we keep Cache::getFast() returning nullptr. And in the slow path case, we use debugHeap.
This makes bmalloc fast path fast, while we avoid Cache instantiation.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::Deallocator):
(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::deallocateSlowCase):

  • bmalloc/Deallocator.h:

Ditto for Deallocator.

  • bmalloc/bmalloc.cpp:

(bmalloc::api::isEnabled):
We used getFastCase() for Heap. But it is basically wrong since we do not have any guarantee that someone already initializes
Heap when this is called. Previously, luckily, Cache is initialized, and Cache initialized Heap. But Cache initialization is removed
for system malloc mode and now PerProcess<PerHeapKind<Heap>>::getFastCase() returns nullptr at an early phase. This patch just uses
Environment::isDebugHeapEnabled() instead.

12:43 AM Changeset in webkit [242418] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r241830 - REGRESSION (r241788>): ASSERTION FAILED: !m_normalFlowListDirty in TestWebKitAPI.WebKit.ResizeReversePaginatedWebView test
https://bugs.webkit.org/show_bug.cgi?id=194866

Reviewed by Antti Koivisto.

r241788 removed some calls that updated layer lists (normal flow and z-order) during compositing updates, causing
a later call to RenderLayerCompositor::recursiveRepaintLayer() to assert when the lists were dirty. Fix by updating
the lists in RenderLayerCompositor::recursiveRepaintLayer(), as we do in various other places.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::recursiveRepaintLayer):

12:43 AM Changeset in webkit [242417] by Carlos Garcia Campos
  • 8 edits
    4 adds in releases/WebKitGTK/webkit-2.24

Merge r241824 - Fix crash when opening Web Inspector after a WebSocket was blocked by content extensions
https://bugs.webkit.org/show_bug.cgi?id=194819

Patch by Loïc Yhuel <loic.yhuel@softathome.com> on 2019-02-20
Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: http/tests/inspector/network/contentextensions/blocked-websocket-crash.html

  • Modules/websockets/WebSocketChannel.h:

(WebCore::WebSocketChannel::hasCreatedHandshake):

  • inspector/agents/page/PageNetworkAgent.cpp:

Ignore WebSocketChannel without an WebSocketHandshake, which would crash in InspectorNetworkAgent::enable.

LayoutTests:

  • TestExpectations: Skip the test by default, like http/tests/contentextensions
  • http/tests/inspector/network/contentextensions/blocked-websocket-crash-expected.txt: Added.
  • http/tests/inspector/network/contentextensions/blocked-websocket-crash.html: Added.
  • http/tests/inspector/network/contentextensions/blocked-websocket-crash.html.json: Added.
  • platform/gtk/TestExpectations: Unskip the test
  • platform/mac-wk2/TestExpectations: Ditto
  • platform/wpe/TestExpectations: Ditto
12:43 AM Changeset in webkit [242416] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.24/Source

Merge r241820 - [MSVC] Fix compilation errors with lambdas in Service Workers
https://bugs.webkit.org/show_bug.cgi?id=194841

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. No change in behavior.

MSVC has problems with the scoping of this within a nested lambda. In these cases this is
referring to the enclosing lambda according to MSVC. This patch works around this behavior
through by using the protectedThis pattern in WebKit code.

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::openSQLiteDatabase):

Source/WebKit:

  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:

(WebKit::ServiceWorkerClientFetch::didReceiveRedirectResponse):

12:43 AM Changeset in webkit [242415] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.24/Source/bmalloc

Merge r241818 - Unreviewed, rolling out r241789.
https://bugs.webkit.org/show_bug.cgi?id=194856

GuardMalloc crashes (Requested by yusukesuzuki on #webkit).

Reverted changeset:

"[bmalloc] bmalloc::Cache should not be instantiated if we are
using system malloc"
https://bugs.webkit.org/show_bug.cgi?id=194811
https://trac.webkit.org/changeset/241789

12:42 AM Changeset in webkit [242414] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Merge r241816 - [WPE] Send client host fd and library name as web process creation parameters
https://bugs.webkit.org/show_bug.cgi?id=194494

Reviewed by Žan Doberšek.

Instead of using command line arguments. The code is simpler and we don't need wpe specific code in process
launcher glib implementation.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/wpe/WebProcessMainWPE.cpp:
12:42 AM Changeset in webkit [242413] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Merge r241817 - [GTK] Epiphany searching for plugins even if plugins are disabled
https://bugs.webkit.org/show_bug.cgi?id=194352

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-02-20
Reviewed by Michael Catanzaro.

Check pluginsEnabled setting before trying to get plugins from UI process.

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::populatePluginCache):

Mar 4, 2019:

11:58 PM Changeset in webkit [242412] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

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

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
11:55 PM Changeset in webkit [242411] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r242376.

Broke some tests

Reverted changeset:

"Correctly handle sandbox extensions when the same WKWebView
loads multiple file:// URLs."
https://bugs.webkit.org/show_bug.cgi?id=195291
https://trac.webkit.org/changeset/242376

8:27 PM Changeset in webkit [242410] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Reload actions from second level inspector should properly reload the inspected inspector
https://bugs.webkit.org/show_bug.cgi?id=195306

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-03-04
Reviewed by Matt Baker.

  • UserInterface/Base/Main.js:

Provide a better reload for a Nth level inspector.

  • UserInterface/Debug/Bootstrap.js:

(WI.runBootstrapOperations):
Simplify, should not need to check for InspectorFrontendHost.

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

Use a SQLite database to hold the ResourceLoadStatistics data
https://bugs.webkit.org/show_bug.cgi?id=194867
<rdar://problem/24240854>

Unreviewed build fix for WinCairo.

ResourceLoadStatisticsDebug and RELEASE_LOG_INFO_IF are not
defined because WinCairo port defines RELEASE_LOG_DISABLED.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): Enclosed RELEASE_LOG_INFO_IF with #if !RELEASE_LOG_DISABLED.
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener): Ditto.
(WebKit::ResourceLoadStatisticsDatabaseStore::updateCookieBlocking): Ditto.

8:22 PM Changeset in webkit [242408] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: MediaSource logging not initialized properly
https://bugs.webkit.org/show_bug.cgi?id=195307

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-03-04
Reviewed by Matt Baker.

  • UserInterface/Controllers/ConsoleManager.js:

(WI.ConsoleManager.prototype.initializeLogChannels):
Typo caused undefined to be included and trigger assertions.

8:00 PM Changeset in webkit [242407] by Justin Fan
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for High Sierra.

  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm: Should fix "global constructor" error.
7:00 PM Changeset in webkit [242406] by Brent Fulgham
  • 22 edits
    1 move
    4 adds in trunk/Source

Use a SQLite database to hold the ResourceLoadStatistics data
https://bugs.webkit.org/show_bug.cgi?id=194867
<rdar://problem/24240854>

Reviewed by Chris Dumez.

Source/WebCore:

Add a new runtime feature flag to support use of an experimental database
back-end. Also expose some SQLite function calls for use outside of WebCore.

No change in functionality, so no new tests.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setItpDatabaseModeEnabled):
(WebCore::RuntimeEnabledFeatures::itpDatabaseModeEnabled const):

  • platform/sql/SQLiteDatabase.h:
  • platform/sql/SQLiteStatement.h:

Source/WebKit:

The ResourceLoadStatistics database plist is inefficient. It requires more memory use
than it needs, and forces lots of looping and string comparisons to find information.

This problem has already been solved in the form of relational databases. We use them
elsewhere in WebKit, and should do so for this storage as well.

This patch creates an optional SQLite database to handle ITP operations.

  1. It adds a new internal experimental feature flag to activate it. It requires the user exit and restart the process to take effect.
  2. It populates itself from the existing plist file (if it exists).
  3. It stops using the plist in favor of the database.
  4. It does queries and other operations using the database instead of the old hash table implementation.

This patch refactors the exisiting ResourceLoadStatisticsMemoryStore class into a base
ResourceLoadStatisticsStore class, which ResourceLoadStatisticsMemoryStore is based on.
It adds a new ResourceLoadStatisticsDatabaseStore that is implemented in terms of SQL
operations.

These code changes should not have any impact on existing operations, and when enabled
should produce the same test results.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: Added.

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::createSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertObservedDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationship):
(WebKit::ResourceLoadStatisticsDatabaseStore::confirmDomainDoesNotExist const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainIDFromString const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships):
(WebKit::ResourceLoadStatisticsDatabaseStore::databaseIsEmpty const):
(WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::calculateAndSubmitTelemetry const):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain):
(WebKit::buildList):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::listToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::reclassifyResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::classifyPrevalentResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::syncStorageIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::syncStorageImmediately):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener):
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensurePrevalentResourcesForDebugMode):
(WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation):
(WebKit::ResourceLoadStatisticsDatabaseStore::logSubresourceLoading):
(WebKit::ResourceLoadStatisticsDatabaseStore::logSubresourceRedirect):
(WebKit::ResourceLoadStatisticsDatabaseStore::setUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::logUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics const):
(WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const):
(WebKit::ResourceLoadStatisticsDatabaseStore::isPrevalentResource const):
(WebKit::ResourceLoadStatisticsDatabaseStore::isVeryPrevalentResource const):
(WebKit::ResourceLoadStatisticsDatabaseStore::isRegisteredAsSubresourceUnder const):
(WebKit::ResourceLoadStatisticsDatabaseStore::isRegisteredAsSubFrameUnder const):
(WebKit::ResourceLoadStatisticsDatabaseStore::isRegisteredAsRedirectingTo const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setGrandfathered):
(WebKit::ResourceLoadStatisticsDatabaseStore::isGrandfathered const):
(WebKit::ResourceLoadStatisticsDatabaseStore::setSubframeUnderTopFrameOrigin):
(WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUnderTopFrameOrigin):
(WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUniqueRedirectTo):
(WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUniqueRedirectFrom):
(WebKit::ResourceLoadStatisticsDatabaseStore::setTopFrameUniqueRedirectTo):
(WebKit::ResourceLoadStatisticsDatabaseStore::setTopFrameUniqueRedirectFrom):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForPrimaryDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::clear):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieTreatmentForOrigin const):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlock const):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateCookieBlocking):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateCookieBlockingForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearBlockingStateForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::processStatistics const):
(WebKit::ResourceLoadStatisticsDatabaseStore::prevalentDomains const):
(WebKit::ResourceLoadStatisticsDatabaseStore::findExpiredUserInteractions const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredUserInteractions):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateLastSeen):
(WebKit::ResourceLoadStatisticsDatabaseStore::setLastSeen):
(WebKit::ResourceLoadStatisticsDatabaseStore::setVeryPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeAllStorageAccess):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: Added.

(WebKit::ResourceLoadStatisticsDatabaseStore::isEmpty const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::ResourceLoadStatisticsMemoryStore):
(WebKit::ResourceLoadStatisticsMemoryStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::classifyPrevalentResources):
(WebKit::ResourceLoadStatisticsMemoryStore::syncStorageIfNeeded):
(WebKit::ResourceLoadStatisticsMemoryStore::syncStorageImmediately):
(WebKit::ResourceLoadStatisticsMemoryStore::grandfatherDataForDomains):
(WebKit::domainsToString): Deleted.
(WebKit::OperatingDate::fromWallTime): Deleted.
(WebKit::OperatingDate::today): Deleted.
(WebKit::OperatingDate::secondsSinceEpoch const): Deleted.
(WebKit::OperatingDate::operator== const): Deleted.
(WebKit::OperatingDate::operator< const): Deleted.
(WebKit::OperatingDate::operator<= const): Deleted.
(WebKit::OperatingDate::OperatingDate): Deleted.
(WebKit::mergeOperatingDates): Deleted.
(WebKit::computeImportance): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::~ResourceLoadStatisticsMemoryStore): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setNotifyPagesWhenDataRecordsWereScanned): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setShouldClassifyResourcesBeforeDataRecordsRemoval): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setShouldSubmitTelemetry): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::grandfatherExistingWebsiteData): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setResourceLoadStatisticsDebugMode): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setPrevalentResourceForDebugMode): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::scheduleStatisticsProcessingRequestIfNecessary): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::cancelPendingStatisticsProcessingRequest): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setTimeToLiveUserInteraction): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setMinimumTimeBetweenDataRecordsRemoval): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setGrandfatheringTime): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setCacheMaxAgeCap): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::updateCacheMaxAgeCap): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setAgeCapForClientSideCookies): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::updateClientSideCookiesAgeCap): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveDataRecords const): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setDataRecordsBeingRemoved): Deleted.
(WebKit::debugLogDomainsInBatches): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::includeTodayAsOperatingDateIfNecessary): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::hasStatisticsExpired const): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setMaxStatisticsEntries): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setPruneEntriesDownTo): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::resetParametersToDefaultValues): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::logTestingEvent): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::didCreateNetworkProcess): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:

(WebKit::ResourceLoadStatisticsMemoryStore::data const):
(WebKit::ResourceLoadStatisticsMemoryStore::isDebugModeEnabled const): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::store const): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setStorageAccessPromptsEnabled): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setDebugLogggingEnabled): Deleted.
(): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: Added.

(WebKit::domainsToString):
(WebKit::OperatingDate::fromWallTime):
(WebKit::OperatingDate::today):
(WebKit::OperatingDate::secondsSinceEpoch const):
(WebKit::OperatingDate::operator== const):
(WebKit::OperatingDate::operator< const):
(WebKit::OperatingDate::operator<= const):
(WebKit::ResourceLoadStatisticsStore::ResourceLoadStatisticsStore):
(WebKit::ResourceLoadStatisticsStore::~ResourceLoadStatisticsStore):
(WebKit::ResourceLoadStatisticsStore::calculateAndSubmitTelemetry const):
(WebKit::ResourceLoadStatisticsStore::computeImportance):
(WebKit::ResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::ResourceLoadStatisticsStore::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::ResourceLoadStatisticsStore::setShouldSubmitTelemetry):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::ResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::ResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode):
(WebKit::ResourceLoadStatisticsStore::setPrevalentResourceForDebugMode):
(WebKit::ResourceLoadStatisticsStore::scheduleStatisticsProcessingRequestIfNecessary):
(WebKit::ResourceLoadStatisticsStore::cancelPendingStatisticsProcessingRequest):
(WebKit::ResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::ResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::ResourceLoadStatisticsStore::setGrandfatheringTime):
(WebKit::ResourceLoadStatisticsStore::setCacheMaxAgeCap):
(WebKit::ResourceLoadStatisticsStore::updateCacheMaxAgeCap):
(WebKit::ResourceLoadStatisticsStore::setAgeCapForClientSideCookies):
(WebKit::ResourceLoadStatisticsStore::updateClientSideCookiesAgeCap):
(WebKit::ResourceLoadStatisticsStore::shouldRemoveDataRecords const):
(WebKit::ResourceLoadStatisticsStore::setDataRecordsBeingRemoved):
(WebKit::ResourceLoadStatisticsStore::updateCookieBlockingForDomains):
(WebKit::ResourceLoadStatisticsStore::clearBlockingStateForDomains):
(WebKit::ResourceLoadStatisticsStore::processStatistics const):
(WebKit::ResourceLoadStatisticsStore::statisticsEpirationTime const):
(WebKit::ResourceLoadStatisticsStore::mergeOperatingDates):
(WebKit::ResourceLoadStatisticsStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired const):
(WebKit::ResourceLoadStatisticsStore::setMaxStatisticsEntries):
(WebKit::ResourceLoadStatisticsStore::setPruneEntriesDownTo):
(WebKit::ResourceLoadStatisticsStore::resetParametersToDefaultValues):
(WebKit::ResourceLoadStatisticsStore::logTestingEvent):
(WebKit::ResourceLoadStatisticsStore::removeAllStorageAccess):
(WebKit::ResourceLoadStatisticsStore::didCreateNetworkProcess):
(WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: Copied from Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h.

(WebKit::OperatingDate::OperatingDate):
(WebKit::ResourceLoadStatisticsStore::isEmpty const):
(WebKit::ResourceLoadStatisticsStore::data const):
(WebKit::ResourceLoadStatisticsStore::isDebugModeEnabled const):
(WebKit::ResourceLoadStatisticsStore::store const):
(WebKit::ResourceLoadStatisticsStore::setStorageAccessPromptsEnabled):
(WebKit::ResourceLoadStatisticsStore::setDebugLogggingEnabled):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStoreCocoa.mm: Renamed from Source/WebKit/UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm.

(WebKit::ResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebResourceLoadStatisticsStore::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsStore::setShouldSubmitTelemetry):
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore):
(WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResourceForDebugMode):
(WebKit::WebResourceLoadStatisticsStore::scheduleStatisticsAndDataRecordsProcessing):
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::performDailyTasks):
(WebKit::WebResourceLoadStatisticsStore::logFrameNavigation):
(WebKit::WebResourceLoadStatisticsStore::logWebSocketLoading):
(WebKit::WebResourceLoadStatisticsStore::logSubresourceLoading):
(WebKit::WebResourceLoadStatisticsStore::logSubresourceRedirect):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setLastSeen):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubresourceUnder):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdate):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearBlockingStateForDomains):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsStore::setGrandfatheringTime):
(WebKit::WebResourceLoadStatisticsStore::setMaxStatisticsEntries):
(WebKit::WebResourceLoadStatisticsStore::setPruneEntriesDownTo):
(WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues):

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

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • Platform/classifier/ResourceLoadStatisticsClassifier.cpp:

(WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence):

  • Platform/classifier/ResourceLoadStatisticsClassifier.h:
  • Shared/WebPreferences.yaml:
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebProcessPool.cpp:
  • WebKit.xcodeproj/project.pbxproj:
5:34 PM Changeset in webkit [242405] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS: class input isn't fully centered
https://bugs.webkit.org/show_bug.cgi?id=195297

Reviewed by Matt Baker.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
(body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input): Deleted.
(body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input): Deleted.

4:55 PM Changeset in webkit [242404] by Justin Fan
  • 25 edits
    2 copies
    4 adds in trunk

[Web GPU] Blitting function prototypes
https://bugs.webkit.org/show_bug.cgi?id=195224
<rdar://problem/48538902>

Reviewed by Dean Jackson.

Source/WebCore:

Implement barebones GPUCommandBuffer::copy* prototypes while rounding out GPUTexture implementation details.

Test: webgpu/blit-commands.html

  • Modules/webgpu/GPUOrigin3D.h: Added.
  • Modules/webgpu/GPUOrigin3D.idl: Added.
  • Modules/webgpu/WebGPUCommandBuffer.cpp: Add copy view struct implementations.

(WebCore::WebGPUBufferCopyView::asGPUBufferCopyView const): Added.
(WebCore::WebGPUTextureCopyView::asGPUTextureCopyView const): Added.
(WebCore::WebGPUCommandBuffer::copyBufferToBuffer): Added.
(WebCore::WebGPUCommandBuffer::copyBufferToTexture): Added.
(WebCore::WebGPUCommandBuffer::copyTextureToBuffer): Added.
(WebCore::WebGPUCommandBuffer::copyTextureToTexture): Added.

  • Modules/webgpu/WebGPUCommandBuffer.h: Add new functions and supporting structs.
  • Modules/webgpu/WebGPUCommandBuffer.idl: Ditto.
  • Modules/webgpu/WebGPURenderPassDescriptor.cpp: Refactor constructors to copy the entire base class.

(WebCore::GPURenderPassColorAttachmentDescriptor::GPURenderPassColorAttachmentDescriptor):
(WebCore::GPURenderPassDepthStencilAttachmentDescriptor::GPURenderPassDepthStencilAttachmentDescriptor):
(WebCore::WebGPURenderPassDescriptor::asGPURenderPassDescriptor const):
(WebCore::attachment): Deleted.

  • Modules/webgpu/WebGPUTexture.h:

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

  • platform/graphics/gpu/GPUBuffer.h:

(WebCore::GPUBuffer::byteLength const): Added.
(WebCore::GPUBuffer::isTransferSource const): Added.
(WebCore::GPUBuffer::isTransferDestination const): Renamed from isTransferDst. Refactored for OptionSet API.
(WebCore::GPUBuffer::isVertex const): Ditto.
(WebCore::GPUBuffer::isUniform const): Ditto.
(WebCore::GPUBuffer::isStorage const): Ditto.
(WebCore::GPUBuffer::isMappable const): Ditto.
(WebCore::GPUBuffer::isMapWrite const): Ditto.
(WebCore::GPUBuffer::isMapRead const): Ditto.

  • platform/graphics/gpu/GPUBufferUsage.h: Refactored for better bit flag style.
  • platform/graphics/gpu/GPUCommandBuffer.h:

(WebCore::GPUCommandBuffer::blitEncoder const): Added.

  • platform/graphics/gpu/GPURenderPassDescriptor.h:
  • platform/graphics/gpu/GPUTexture.h: Cache usage flags for reference.

(WebCore::GPUTexture::isTransferSrc const): Added.
(WebCore::GPUTexture::isTransferDst const): Added.
(WebCore::GPUTexture::isOutputAttachment const): Added.

  • platform/graphics/gpu/GPUTextureUsage.h: Refactor to match GPUBufferUsage.h.
  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm:

(WebCore::GPUBuffer::validateBufferUsage): Renamed from validateBufferCreate, refactored for OptionSet.
(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::GPUBuffer):
(WebCore::GPUBuffer::isReadOnly const):
(WebCore::GPUBuffer::setSubData): Add alignment check according to Metal docs.

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

(WebCore::GPUCommandBuffer::create): No need to use this alias here.
(WebCore::GPUCommandBuffer::GPUCommandBuffer): Ditto.
(WebCore::GPUCommandBuffer::copyBufferToBuffer): Added.
(WebCore::GPUCommandBuffer::copyBufferToTexture): Added.
(WebCore::GPUCommandBuffer::copyTextureToBuffer): Added.
(WebCore::GPUCommandBuffer::copyTextureToTexture): Added.

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

(WebCore::GPUQueue::submit): End encoding on the MTLCommandBuffer's blitCommandEncoder if it was used.

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

(WebCore::GPUSwapChain::getNextTexture): Now provide usage flags to texture creation.

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

(WebCore::mtlTextureUsageForGPUTextureUsageFlags): Refactor validation.
(WebCore::tryCreateMtlTextureDescriptor): Ditto.
(WebCore::GPUTexture::tryCreate): Now provide usage flags to texture creation.
(WebCore::GPUTexture::create): Ditto.
(WebCore::GPUTexture::GPUTexture): Ditto.
(WebCore::GPUTexture::createDefaultTextureView): Ditto.

LayoutTests:

Add basic test to copy data with all new blitting functions and verify the result.

  • webgpu/blit-commands-expected.html: Added.
  • webgpu/blit-commands.html: Added.
  • webgpu/buffer-command-buffer-races.html: Fixed typo.
  • webgpu/resources/green-400.png: Added.
4:43 PM Changeset in webkit [242403] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[ContentChangeObserver] Introduce fixed duration content observation
https://bugs.webkit.org/show_bug.cgi?id=195295
<rdar://problem/48579913>

Reviewed by Simon Fraser.

Source/WebCore:

Some pages have a runloop-like scheduling setup where the content triggering change happens at a nested timer firing.
This patch helps finding cases like that using a 32ms long fixed window. Currently nested timers get dropped on the floor and
we stop observing for content changes before they even get fired.

Test: fast/events/touch/ios/visibility-change-happens-on-timer-hops.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::ContentChangeObserver):
(WebCore::ContentChangeObserver::startContentObservationForDuration):
(WebCore::ContentChangeObserver::stopDurationBasedContentObservation):
(WebCore::ContentChangeObserver::hasDeterminateState const):
(WebCore::ContentChangeObserver::adjustObservedState):

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::isObservingContentChanges const):
(WebCore::ContentChangeObserver::hasPendingActivity const):

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

LayoutTests:

  • fast/events/touch/ios/visibility-change-happens-on-timer-hops-expected.txt: Added.
  • fast/events/touch/ios/visibility-change-happens-on-timer-hops.html: Added.
4:42 PM Changeset in webkit [242402] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.40.0.4

Tag Safari-607.1.40.0.4.

4:31 PM Changeset in webkit [242401] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

Native text selection UI is incorrectly suppressed in Microsoft Visio
https://bugs.webkit.org/show_bug.cgi?id=195178
<rdar://problem/48519394>

Reviewed by Darin Adler.

Source/WebCore:

Currently, our heuristics for detecting hidden editable areas attempt to search for empty parent renderers with
"overflow: hidden". It does this by ascending the layer tree in search of renderers that have an empty content
size, and whose renderers' styles indicate that they have overflow: hidden in the X or Y directions. This fails
in the case where a child renderer is positioned out of flow, relative to one of its parent layers, since the
child will be visible, but we'll incorrectly believe that it is hidden. This leads to selection UI unexpectedly
disappearing in the online version of Microsoft Visio.

To fix this, we check whether the enclosing layer around the editable element has an empty clip rect; if the
element is inside of a subframe, we additionally walk up to each enclosing frame's layer and check if that
frame's layer has an empty clip rect.

Test: editing/selection/ios/do-not-hide-selection-in-visible-container.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::isTransparentOrFullyClippedRespectingParentFrames const):

LayoutTests:

Add a new layout test that focuses several different text fields and checks whether or not editing UI is shown:

  1. A text field inside an overflow: hidden container, all within an absolutely positioned iframe, such that the

text field is not visible. The caret should be hidden.

  1. A text field inside an absolutely positioned iframe, inside an overflow: hidden container, such that the

text field is visible. The caret should be visible.

  1. A text field inside a relatively positioned iframe in an overflow: hidden container, such that the text field

is not visible. The caret should be hidden.

  1. A text field that is position: fixed inside an overflow: hidden container, such that the text field is

visible. The caret should be visible.

  • editing/selection/ios/do-not-hide-selection-in-visible-container-expected.txt: Added.
  • editing/selection/ios/do-not-hide-selection-in-visible-container.html: Added.
  • editing/selection/ios/hide-selection-in-empty-overflow-hidden-container.html:
  • resources/ui-helper.js:

(window.UIHelper.activateElementAndWaitForInputSession):

Add a convenience function in UIHelper that taps a given element and waits for the keyboard to show.

4:09 PM Changeset in webkit [242400] by Truitt Savell
  • 9 edits in trunk/Source/WebKit

Unreviewed, rolling out r242396.

Found issue to be unrelated. reverting my rollout.

Reverted changeset:

"Unreviewed, rolling out r242222."
https://bugs.webkit.org/show_bug.cgi?id=193683
https://trac.webkit.org/changeset/242396

3:51 PM Changeset in webkit [242399] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for debug builds after r242397

  • runtime/JSString.h:
3:49 PM Changeset in webkit [242398] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a followup after r242336

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::webViewDidMoveToWindow):
Copy the list of observers before iterating it to avoid observers modifying the list.

3:27 PM Changeset in webkit [242397] by ysuzuki@apple.com
  • 11 edits
    1 add in trunk

[JSC] Store bits for JSRopeString in 3 stores
https://bugs.webkit.org/show_bug.cgi?id=195234

Reviewed by Saam Barati.

JSTests:

  • stress/null-rope-and-collectors.js: Added.

Source/JavaScriptCore:

This patch cleans up the initialization of JSRopeString fields in DFG and FTL.
Previously, we store some part of data separately. Instead, this patch calculates
the data first by bit operations and store calculated data with fewer stores.

This patch also cleans up is8Bit and isSubstring flags. We put them in lower bits
of the first fiber instead of the upper 16 bits. Since we only have 3 bit flags, (isRope, is8Bit, isSubstring),
we can put them into the lower 3 bits, they are always empty due to alignment.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl): A bit clean up of StringLength IC to give a chance of unnecessary mov removal.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::canBeRope):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::compileMakeRope):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLAbstractHeapRepository.cpp:

(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::isRopeString):
(JSC::FTL::DFG::LowerDFGToB3::isNotRopeString):

  • runtime/JSString.cpp:

(JSC::JSString::visitChildren):

  • runtime/JSString.h:

(JSC::JSString::is8Bit const):
(JSC::JSString::isSubstring const):

  • tools/JSDollarVM.cpp:

(JSC::functionCreateNullRopeString):
(JSC::JSDollarVM::finishCreation):

3:11 PM Changeset in webkit [242396] by Truitt Savell
  • 9 edits in trunk/Source/WebKit

Unreviewed, rolling out r242222.

Broke internal debug testing

Reverted changeset:

"[iOS] Move calls to [UIKeyboard isInHardwareKeyboardMode] to
the UI process."
https://bugs.webkit.org/show_bug.cgi?id=193683
https://trac.webkit.org/changeset/242222

2:57 PM Changeset in webkit [242395] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: show the version number in the UI
https://bugs.webkit.org/show_bug.cgi?id=195292

Reviewed by Matt Baker.

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView):
(WI.AuditNavigationSidebarPanel.prototype._updateNoAuditsPlaceholder):
Fix the logic for showing a placeholder when editing or with only disabled tests.

  • UserInterface/Views/AuditNavigationSidebarPanel.css:

(.sidebar > .panel.navigation.audit > .content > .message-text-view): Added.
(.audit-version): Added.
Don't obstruct the "Edit" button when showing a placeholder.

  • Localizations/en.lproj/localizedStrings.js:
2:36 PM Changeset in webkit [242394] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r242378

  • UIProcess/ios/EditableImageController.mm:

(WebKit::EditableImageController::associateWithAttachment):

2:09 PM Changeset in webkit [242393] by Alan Coon
  • 2 edits in branches/safari-608.1.5.1-branch/Source/WebKit

Cherry-pick r242376. rdar://problem/47820581

Correctly handle sandbox extensions when the same WKWebView loads multiple file:// URLs.
<rdar://problem/47820581> and https://bugs.webkit.org/show_bug.cgi?id=195291

Reviewed by Andy Estes.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::shouldReuseCommittedSandboxExtension): Only retain the previous sandbox extension if the file URL we're currently loading is functionally equivalent to the previous one.

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

2:08 PM Changeset in webkit [242392] by Alan Coon
  • 7 edits in branches/safari-608.1.5.1-branch/Source

Versioning.

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

gPictureOwnerMap is unnecessary
https://bugs.webkit.org/show_bug.cgi?id=195228

Reviewed by Zalan Bujtas.

Just store in HTMLImageElement. An extra pointer isn't going to affect the memory use here.
If anything, we should worry about m_editableImage and m_pendingClonedAttachmentID instead.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::pictureElement const):
(WebCore::HTMLImageElement::setPictureElement):

  • html/HTMLImageElement.h:
1:59 PM Changeset in webkit [242390] by Alan Coon
  • 2 edits in tags/Safari-608.1.7.1.1/Source/WebKit

Cherry-pick r242376. rdar://problem/47820581

Correctly handle sandbox extensions when the same WKWebView loads multiple file:// URLs.
<rdar://problem/47820581> and https://bugs.webkit.org/show_bug.cgi?id=195291

Reviewed by Andy Estes.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::shouldReuseCommittedSandboxExtension): Only retain the previous sandbox extension if the file URL we're currently loading is functionally equivalent to the previous one.

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

1:57 PM Changeset in webkit [242389] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Caret x-position in empty text area does not match text field
https://bugs.webkit.org/show_bug.cgi?id=195125
<rdar://problem/47161070>

Remove the word "use" in the added comment to make it read well.

  • css/html.css:

(textarea):

1:53 PM Changeset in webkit [242388] by Kocsen Chung
  • 10 edits in branches/safari-607-branch

Cherry-pick r242302. rdar://problem/48572673

Add setters on WKWebsiteDataStore for sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier
https://bugs.webkit.org/show_bug.cgi?id=195229
<rdar://problem/48520362>

Reviewed by Chris Dumez.

Source/WebKit:

Just like _setBoundInterfaceIdentifier, we need a way to set these properties after instantiation of a WKWebsiteDataStore,
but we need to make sure we don't set it after the parameters have been copied to the NetworkProcess.

Functionality verified by manual testing. See radar.
Added an API test that verifies the setter restrictions work as expected.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]): (-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]): (-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]): (-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]):
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: (WebKit::toPKPaymentRequest):
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::parameters):
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::WebsiteDataStore): (WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier): (WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier):
  • UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier): (WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: (TEST):

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

1:52 PM Changeset in webkit [242387] by rniwa@webkit.org
  • 10 edits
    1 add in trunk

Add WeakHashSet
https://bugs.webkit.org/show_bug.cgi?id=195152

Reviewed by Antti Koivisto.

Source/WTF:

Added WeakHashSet which is a HashSet of WeakPtr. When the object pointed by WeakPtr is deleted,
WeakHashSet treats the key to be no longer in the set. That is, WeakHashSet::contains returns false
and const_iterator skips such a WeakPtr in the set.

We decided not to make HashSet<WeahPtr<T>> work because it involves weird semantics such as making
find(X) delete the table entry as remove(find(X)) would be a no-op otherwise as find(X) would return
necessarily need to return HashSet<WeakPtr<T>>::end().

Furthermore, we cannot determine the true size of this set in O(1) because the objected pointed by
some of WeakPtr in the set may have already been deleted. This has implications that we can't have
size(), isEmpty(), random(), etc... as O(1) operation.

WeakHashSet is implemented as HashSet<WeakReference<T>>. HashTable::rehash has been updated to delete
WeakReference<T>'s whose m_ptr has become null, and HashTable::expand first deletes any such entry
before deciding an actual expansion is needed. This is accomplished via newly added hash trait,
hasIsReleasedWeakValueFunction, and HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue which
returns true for when WeakReference<T> pointed by Ref<WeakReference<T>> has null m_ptr, not to be
confused with Ref<WeakReference<T>> itself pointing to a null WeakReference<T>.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Forward.h:
  • wtf/HashSet.h:

(WTF::HashSet<T, U, V>::checkConsistency const): Added.

  • wtf/HashTable.h:

(WTF::HashTable::isReleasedWeakBucket): Added.
(WTF::HashTable::expand): Delete WeakReference<T> with null m_ptr first. This updates m_keyCount
and may make mustRehashInPlace() return true.
(WTF::HashTable::deleteReleasedWeakBuckets): Added.
(WTF::HashTable::rehash): Delete WeakReference<T> with null m_ptr. Also refactored the code a bit
to avoid keep repeating oldTable[i].

  • wtf/HashTraits.h:

(WTF::HashTraits<T>::isHashTraitsReleasedWeakValue): Added.
(WTF::RefHashTraits<T>): Extracted from HashTraits<Ref<P>> to share code with
HashTraits<Ref<WeakReference<T>>>.
(WTF::HashTraitsReleasedWeakValueChecker<Traits, hasIsReleasedWeakValueFunction>): Added.
(WTF::isHashTraitsReleasedWeakValue<Traits, hasIsReleasedWeakValueFunction>): Added.

  • wtf/WeakHashSet.h: Added.

(WTF::WeakHashSet): Added.
(WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator):
(WTF::WeakHashSet::WeakHashSetConstIterator::get const):
(WTF::WeakHashSet::WeakHashSetConstIterator::operator* const):
(WTF::WeakHashSet::WeakHashSetConstIterator::operator-> const):
(WTF::WeakHashSet::WeakHashSetConstIterator::operator++):
(WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
(WTF::WeakHashSet::WeakHashSetConstIterator::operator== const):
(WTF::WeakHashSet::WeakHashSetConstIterator::operator!= const):
(WTF::WeakHashSet::WeakHashSet):
(WTF::WeakHashSet::begin const):
(WTF::WeakHashSet::end const):
(WTF::WeakHashSet::add):
(WTF::WeakHashSet::remove):
(WTF::WeakHashSet::contains const):
(WTF::WeakHashSet::capacity const):
(WTF::WeakHashSet::computeSize const): Deletes any WeakReference<T> with null m_ptr first.
(WTF::WeakHashSet::checkConsistency const):
(WTF::HashTraits<Ref<WeakReference<T>>>): Added. This hash traits triggers the new code in HashTable's
expand and rehash methods to delete WeakReference<T> with null m_ptr.
(WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue):

  • wtf/WeakPtr.h:

(WTF::WeakReference::~WeakReference): Added so that we can keep track the number of live WeakReference
in API tests by template specializations.

Tools:

Added tests for WeakHashSet.

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::Base::Base): Moved.
(TestWebKitAPI::Derived::foo): Moved.
(WTF::WeakReference<TestWebKitAPI::Base>): Added to track the number of live WeakReference.
(WTF::WeakReference<TestWebKitAPI::Base>::WeakReference):
(WTF::WeakReference<TestWebKitAPI::Base>::~WeakReference):
(TestWebKitAPI::computeSizeOfWeakHashSet): Added.

1:48 PM Changeset in webkit [242386] by commit-queue@webkit.org
  • 10 edits in trunk/Source

ITMLKit Inspector: Data Bindings / Associated Data for nodes
https://bugs.webkit.org/show_bug.cgi?id=195290
<rdar://problem/48304019>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-03-04
Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Source/WebCore:

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

(WebCore::InspectorDOMAgent::getDataBindingsForNode):
(WebCore::InspectorDOMAgent::getAssociatedDataForNode):
Stub these for web pages, they will only be used for ITMLKit right now.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:

New title and empty message strings.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.css:

(.sidebar > .panel.dom-node-details .details-section.dom-node-associated-data > .content .row):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):
(WI.DOMNodeDetailsSidebarPanel.prototype.layout):
(WI.DOMNodeDetailsSidebarPanel.prototype._refreshDataBindings):
(WI.DOMNodeDetailsSidebarPanel.prototype._refreshAssociatedData):
(WI.DOMNodeDetailsSidebarPanel.prototype._attributesChanged):
New Node sections only enabled for ITMLKit WI.sharedApp.hasExtraDomains.

  • UserInterface/Views/ObjectTreeView.js:

(WI.ObjectTreeView):
Provide a way, like TreeElement/View to access the ObjectTreeView from an element.

1:37 PM Changeset in webkit [242385] by Alan Coon
  • 7 edits in tags/Safari-608.1.7.1.1/Source

Versioning.

1:33 PM Changeset in webkit [242384] by Alan Coon
  • 1 copy in tags/Safari-608.1.7.1.1

New tag.

1:26 PM Changeset in webkit [242383] by Kocsen Chung
  • 10 edits in branches/safari-607.1.40.0-branch

Cherry-pick r242302. rdar://problem/48572657

Add setters on WKWebsiteDataStore for sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier
https://bugs.webkit.org/show_bug.cgi?id=195229
<rdar://problem/48520362>

Reviewed by Chris Dumez.

Source/WebKit:

Just like _setBoundInterfaceIdentifier, we need a way to set these properties after instantiation of a WKWebsiteDataStore,
but we need to make sure we don't set it after the parameters have been copied to the NetworkProcess.

Functionality verified by manual testing. See radar.
Added an API test that verifies the setter restrictions work as expected.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]): (-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]): (-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]): (-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]):
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: (WebKit::toPKPaymentRequest):
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::parameters):
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::WebsiteDataStore): (WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier): (WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier):
  • UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier): (WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: (TEST):

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

1:20 PM Changeset in webkit [242382] by ysuzuki@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Make Reflect lazily-allocated by dropping @Reflect references from builtin JS
https://bugs.webkit.org/show_bug.cgi?id=195250

Reviewed by Saam Barati.

By removing @Reflect from builtin JS, we can make Reflect object allocation lazy.
We move @ownKeys function from @Reflect to @Object to remove @Reflect reference.

We also remove m_intlObject field from JSGlobalObject since we no longer use it.

  • builtins/BuiltinNames.h:
  • builtins/GlobalOperations.js:

(globalPrivate.copyDataProperties):
(globalPrivate.copyDataPropertiesNoExclusions):

  • runtime/JSGlobalObject.cpp:

(JSC::createReflectProperty):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:
  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):
(JSC::objectConstructorOwnKeys):

  • runtime/ReflectObject.cpp:

(JSC::ReflectObject::finishCreation):

1:17 PM Changeset in webkit [242381] by Alan Coon
  • 7 edits in tags/Safari-608.1.7.3/Source

Versioning.

1:13 PM Changeset in webkit [242380] by Alan Coon
  • 1 copy in tags/Safari-608.1.7.3

New tag.

1:07 PM Changeset in webkit [242379] by dbates@webkit.org
  • 40 edits
    3 adds in trunk

[iOS] Caret x-position in empty text area does not match text field
https://bugs.webkit.org/show_bug.cgi?id=195125
<rdar://problem/47161070>

Reviewed by Darin Adler.

Source/WebCore:

Fix up User Agent styles for <textarea> on iOS such that they have the same left padding
width and same text-indent as <input type="text">. This makes the x-position of the caret
in an empty textarea match the position of the caret in an empty text field.

Test: fast/forms/textarea/ios/caret-x-position-in-textarea-matches-textfield.html

  • css/html.css:

(textarea): For iOS Family, do not use the padding shorthand property. Instead explicitly specify
padding-top and padding-bottom to be 2px to keep our current behavior (because it looks reasonable)
and do not specify left and right padding so that we inherit the padding set earlier in this file.
(textarea::placeholder): Deleted. This was added to "try" to make fix up the position of the placeholder
text so as to match the position of the textarea's inner text and the position of a text field's inner
text. This fix up may have worked out visually when it was added, but based on the discovery of the
hardcoded 3px left and right padding (see below remark) it looks like it was always one pixel too short.

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::createInnerTextStyle): Remove hardcoded 3px left and right padding.

LayoutTests:

Update expected results due to changes in padding.

  • TestExpectations: Remove some tests that are now passing.
  • editing/selection/ios/show-selection-in-empty-overflow-hidden-document-expected.txt:
  • editing/selection/ios/show-selection-in-empty-overflow-hidden-document.html:
  • fast/forms/textarea/ios/caret-x-position-in-textarea-matches-textfield-expected.txt: Added.
  • fast/forms/textarea/ios/caret-x-position-in-textarea-matches-textfield.html: Added.
  • platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
  • platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
  • platform/ios-wk2/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/ios-wk2/fast/dynamic/008-expected.txt:
  • platform/ios-wk2/fast/forms/basic-textareas-expected.txt:
  • platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-align-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-scrollbar-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
  • platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
  • platform/ios-wk2/fast/overflow/overflow-x-y-expected.txt:
  • platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/ios/TestExpectations:
  • platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/linebox-overflow-in-textarea-padding-expected.txt:
  • platform/ios/fast/forms/negativeLineHeight-expected.txt:
  • platform/ios/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/ios/fast/forms/textarea-width-expected.txt:
  • platform/ios/fast/replaced/width100percent-textarea-expected.txt:
  • platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30692-expected.txt:
1:01 PM Changeset in webkit [242378] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit

Check contextIDs when handling WebContent messages
https://bugs.webkit.org/show_bug.cgi?id=195289
<rdar://problem/48475870>

Reviewed by Alex Christensen.

The WebContent process is untrusted because it handles arbitrary markup and javascript from untrusted sources.
We should handle its messages with suspicion, and make sure the arguments are valid and usable before honoring them.

This patch hardens the message passing layer by performing MESSAGE_CHECK in places that had been overlooked.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):
(WebKit::PlaybackSessionManagerProxy::currentTimeChanged):
(WebKit::PlaybackSessionManagerProxy::bufferedTimeChanged):
(WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged):
(WebKit::PlaybackSessionManagerProxy::canPlayFastReverseChanged):
(WebKit::PlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionManagerProxy::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged):
(WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionManagerProxy::mutedChanged):
(WebKit::PlaybackSessionManagerProxy::volumeChanged):
(WebKit::PlaybackSessionManagerProxy::durationChanged):
(WebKit::PlaybackSessionManagerProxy::playbackStartedTimeChanged):
(WebKit::PlaybackSessionManagerProxy::rateChanged):
(WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged):
(WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::handleControlledElementIDResponse const):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::startProducingData):
(WebKit::UserMediaCaptureManagerProxy::stopProducingData):
(WebKit::UserMediaCaptureManagerProxy::end):
(WebKit::UserMediaCaptureManagerProxy::capabilities):
(WebKit::UserMediaCaptureManagerProxy::setMuted):
(WebKit::UserMediaCaptureManagerProxy::applyConstraints):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::VideoFullscreenManagerProxy::setHasVideo):
(WebKit::VideoFullscreenManagerProxy::setVideoDimensions):
(WebKit::VideoFullscreenManagerProxy::enterFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::cleanupFullscreen):
(WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline):
(WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):

  • UIProcess/ios/EditableImageController.mm:

(WebKit::EditableImageController::didCreateEditableImage):
(WebKit::EditableImageController::didDestroyEditableImage):
(WebKit::EditableImageController::associateWithAttachment):

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

Fix crashes when NetworkResourceLoader/NetworkLoadChecker are destroyed during HTTPS upgrade check
https://bugs.webkit.org/show_bug.cgi?id=195238
<rdar://problem/47598656>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-03-04
Reviewed by Chris Dumez.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRequest):

12:39 PM Changeset in webkit [242376] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Correctly handle sandbox extensions when the same WKWebView loads multiple file:// URLs.
<rdar://problem/47820581> and https://bugs.webkit.org/show_bug.cgi?id=195291

Reviewed by Andy Estes.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::shouldReuseCommittedSandboxExtension): Only retain the previous sandbox extension if the file URL

we're currently loading is functionally equivalent to the previous one.

12:36 PM Changeset in webkit [242375] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

Drop legacy userAgentForURL injected bundle SPI
https://bugs.webkit.org/show_bug.cgi?id=195222
<rdar://problem/46734147>

Reviewed by Darin Adler.

Drop legacy userAgentForURL injected bundle SPI. There are no longer any clients, and using
WebsitePolicies.customUserAgent is the way to go nowadays.

  • WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:

(API::InjectedBundle::PageLoaderClient::willDestroyFrame):
(API::InjectedBundle::PageLoaderClient::userAgentForURL const): Deleted.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(setUpPageLoaderClient):
(userAgentForURL): Deleted.

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::userAgentForURL const): Deleted.

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userAgent const):

12:35 PM Changeset in webkit [242374] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: protocol error on first open
https://bugs.webkit.org/show_bug.cgi?id=195059
<rdar://problem/48407871>

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype.initializeTarget):
(WI.CanvasManager.prototype.static supportsRecordingAutoCapture):
(WI.CanvasManager.prototype.setRecordingAutoCaptureFrameCount):
If targets aren't available, wait until they are and then set the auto-capture frame count.

12:33 PM Changeset in webkit [242373] by sbarati@apple.com
  • 2 edits
    1 add in trunk/PerformanceTests

Add a detailed summary page for JetStream 2
https://bugs.webkit.org/show_bug.cgi?id=195014

Rubber-stamped by Darin Adler.

  • JetStream2/JetStream.css:

(a:link, a:visited):

  • JetStream2/in-depth.html: Added.
12:30 PM Changeset in webkit [242372] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Make sure to correctly notify of end of a ServiceWorkerJob when the context is stopped
https://bugs.webkit.org/show_bug.cgi?id=195195

Reviewed by Chris Dumez.

Before the patch, we were notifying that some jobs were finished too aggressively at context stop time.
This was confusing the Network Process.
Only notify such jobs that have pending loads.
Improve the tracking of jobs doing registration resolution to ensure the Network Process gets notified
in case of a registration promise being resolved but the settling callback being not yet called while the context is stopped.

Covered by existing tests not crashing anymore, in particular imported/w3c/web-platform-tests/service-workers/service-worker/skip-waiting.https.html.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::notifyRegistrationIsSettled):
(WebCore::ServiceWorkerContainer::stop):

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

(WebCore::ServiceWorkerJob::cancelPendingLoad):

  • workers/service/ServiceWorkerJob.h:

(WebCore::ServiceWorkerJob::isLoading const):

12:26 PM Changeset in webkit [242371] by Chris Dumez
  • 14 edits in trunk

Do not share WebProcesses between private and regular sessions
https://bugs.webkit.org/show_bug.cgi?id=195189
<rdar://problem/48421064>

Reviewed by Alex Christensen.

Source/WebKit:

Do not share WebProcesses between private and regular sessions. There are some privacy concerns.
Also, some of the WebsiteDataStore informations are passed via WebProcessCreationParameters (e.g.
ApplicationCache path) and cannot be updated later.

There were 2 cases where this could happen and that are fixed in the patch:

  • A process may be prewarmed with a given website data store and then later on used for a page associated with a different data store. We now prevent this. While this is not necessary for privacy reasons, it is still useful because our code currently does not support well uses different sessions inside a single WebProcess, as mentioned above.
  • The client can force a WebsiteDataStore swap when responding to the decidePolicyForNavigationAction, via the WebsitePolicies. To address the issue, we now force a process swap whenever the client makes such a change.

As a result, WebProcessProxy::websiteDataStore() now makes sense and is always correct. It can
also only contains pages whose WebPageProxy::websiteDataStore() returns the same store.

  • UIProcess/API/C/WKContext.cpp:

(WKContextWarmInitialProcess):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _warmInitialProcess]):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::notifyProcessPoolToPrewarm):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::swapToWebProcess):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::websiteDataStore):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):
(WebKit::WebProcessPool::findReusableSuspendedPageProcess):

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToOneProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createWebPage):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::removeWebPage):

  • UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
12:23 PM Changeset in webkit [242370] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Toggling Timeline "Stop when page loads" to on should stop (immediately or soon) any active recording if already past the load event
https://bugs.webkit.org/show_bug.cgi?id=195239

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype._handleTimelinesAutoStopSettingChanged):

12:20 PM Changeset in webkit [242369] by Chris Dumez
  • 5 edits in trunk/Source

[iOS] Improve our file picker
https://bugs.webkit.org/show_bug.cgi?id=195284
<rdar://problem/45655856>

Reviewed by Tim Horton and Wenson Hsieh.

Source/WebCore:

Export UTIUtilities.h so that it can be used from WebKit2.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Improve our file picker on iOS so that:

  • Accepted file extensions specified in the HTML (e.g. <input type="file"> accept=".pdf">) are now properly reflected in the file picker. Previously, we only we only supported MIME types in the accept attribute that only Image / Video ones.
  • If accepted types are specified in the HTML and not of them are Video or Image types, then bypass the UIDocumentMenuViewController and show the file picker directly (as if the user had tapped on "Browse..." on that menu). Other menu items such as "Take Photo or Video" and "Photo Library" do not make sense if the page only accepts PDF files for example.

Things that we should do but are not fixed in this patch:

  • Stop using UIDocumentMenuViewController entirely since it was deprecated in favor of using UIDocumentPickerViewController directly.
  • Add multiple selection support, which is supported both on the HTML side and in the UIDocumentPickerViewController API.
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(arrayContainsUTIThatConformsTo):
(-[WKFileUploadPanel dealloc]):
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
(UTIsForMIMETypes):
(-[WKFileUploadPanel _mediaTypesForPickerSourceType:]):
(-[WKFileUploadPanel _cameraButtonLabelAllowingPhoto:allowingVideo:]):
(-[WKFileUploadPanel _showDocumentPickerMenu]):

11:58 AM Changeset in webkit [242368] by Conrad Shultz
  • 3 edits in trunk/Source/WebCore/PAL

Improper use of PLATFORM(TVOS) in PAL
https://bugs.webkit.org/show_bug.cgi?id=195215

Reviewed by Darin Adler.

There are a couple stray uses of PLATFORM(TVOS) in PAL. The correct usage is
PLATFORM(APPLETV).

  • pal/spi/cocoa/NSKeyedArchiverSPI.h:
  • pal/spi/cocoa/NSProgressSPI.h:
11:54 AM Changeset in webkit [242367] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit

REGRESSION: ( r240978-r240985 ) [ iOS Release ] Layout Test imported/w3c/web-platform-tests/xhr/send-redirect-post-upload.htm is crashing
https://bugs.webkit.org/show_bug.cgi?id=194523

Reviewed by Ryosuke Niwa.

Attempt to work around a CFNetwork bug in the timing of tearing down tasks with upload streams.
See rdar://problem/28233746.

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

(WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

11:33 AM Changeset in webkit [242366] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] Decouple mouseMoved event and the "is observing content change" status.
https://bugs.webkit.org/show_bug.cgi?id=195286

Reviewed by Simon Fraser.

Now isObservingContentChanges returns true only when we are actively observing content change during timer firing and/or style recalculating.
This patch also renames a couple of functions to follow the didStart/didFinish pattern.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::domTimerExecuteDidStart):
(WebCore::ContentChangeObserver::domTimerExecuteDidFinish):
(WebCore::ContentChangeObserver::styleRecalcDidStart):
(WebCore::ContentChangeObserver::styleRecalcDidFinish):
(WebCore::ContentChangeObserver::mouseMovedDidStart):
(WebCore::ContentChangeObserver::mouseMovedDidFinish):
(WebCore::ContentChangeObserver::setShouldObserveNextStyleRecalc):
(WebCore::ContentChangeObserver::StyleChangeScope::StyleChangeScope):
(WebCore::ContentChangeObserver::MouseMovedScope::MouseMovedScope):
(WebCore::ContentChangeObserver::MouseMovedScope::~MouseMovedScope):
(WebCore::ContentChangeObserver::StyleRecalcScope::StyleRecalcScope):
(WebCore::ContentChangeObserver::StyleRecalcScope::~StyleRecalcScope):
(WebCore::ContentChangeObserver::DOMTimerScope::DOMTimerScope):
(WebCore::ContentChangeObserver::DOMTimerScope::~DOMTimerScope):
(WebCore::ContentChangeObserver::startObservingDOMTimerExecute): Deleted.
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute): Deleted.
(WebCore::ContentChangeObserver::startObservingStyleRecalc): Deleted.
(WebCore::ContentChangeObserver::stopObservingStyleRecalc): Deleted.
(WebCore::ContentChangeObserver::startObservingMouseMoved): Deleted.
(WebCore::ContentChangeObserver::stopObservingMouseMoved): Deleted.
(WebCore::ContentChangeObserver::setShouldObserveStyleRecalc): Deleted.

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::setShouldObserveDOMTimerScheduling):
(WebCore::ContentChangeObserver::isObservingDOMTimerScheduling const):
(WebCore::ContentChangeObserver::isObservingStyleRecalc const):
(WebCore::ContentChangeObserver::isObservingContentChanges const):
(WebCore::ContentChangeObserver::startObservingDOMTimerScheduling): Deleted.
(WebCore::ContentChangeObserver::stopObservingDOMTimerScheduling): Deleted.
(WebCore::ContentChangeObserver::shouldObserveStyleRecalc const): Deleted.

10:56 AM Changeset in webkit [242365] by ysuzuki@apple.com
  • 18 edits in trunk/Source

[JSC] Offer @makeTypeError instead of exposing @TypeError
https://bugs.webkit.org/show_bug.cgi?id=193858

Reviewed by Mark Lam.

Source/JavaScriptCore:

Instead of exposing @TypeError, we expose @makeTypeError function.
And we make TypeError and Error lazily-allocated objects in non JIT environment.
In JIT environment, only TypeError becomes lazily-allocated since WebAssembly errors
touch Error prototype anyway. But we can make them lazy in a subsequent patch.

  • builtins/AsyncFromSyncIteratorPrototype.js:
  • builtins/AsyncGeneratorPrototype.js:

(globalPrivate.asyncGeneratorEnqueue):

  • builtins/BuiltinNames.h:
  • builtins/PromiseOperations.js:

(globalPrivate.createResolvingFunctions.resolve):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::initializeErrorConstructor):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::errorPrototype const):
(JSC::JSGlobalObject::errorStructure const):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncMakeTypeError):

  • runtime/JSGlobalObjectFunctions.h:

Source/WebCore:

Use @makeTypeError instead.

  • Modules/mediastream/RTCPeerConnection.js:
  • Modules/mediastream/RTCPeerConnectionInternals.js:
  • Modules/streams/ReadableByteStreamInternals.js:

(readableByteStreamControllerClose):
(readableByteStreamControllerPullInto):

  • Modules/streams/ReadableStream.js:

(cancel):
(pipeTo):

  • Modules/streams/ReadableStreamBYOBReader.js:

(cancel):
(read):

  • Modules/streams/ReadableStreamDefaultReader.js:

(cancel):
(read):

  • Modules/streams/ReadableStreamInternals.js:

(readableStreamReaderGenericRelease):

  • Modules/streams/WritableStream.js:

(abort):
(close):
(write):
(getter.closed):
(getter.ready):

10:06 AM Changeset in webkit [242364] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

[CoordinatedGraphics] The compositing loop is still running even after exiting AC mode
https://bugs.webkit.org/show_bug.cgi?id=195270

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-04
Reviewed by Don Olmstead.

Suspend the threaded compositor when the painting is paused or layer flush disabled, and resume it again when
painting is resumed and layer flush enabled.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::suspend): Increment the suspend counter and mark the scene as inactive if it was suspended.
(WebKit::ThreadedCompositor::resume): Decrement the suspend counter and mark the scene as active if it's now resumed.

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

(WebKit::DrawingAreaCoordinatedGraphics::forceRepaint): Return early if layer tree state is frozen.
(WebKit::DrawingAreaCoordinatedGraphics::forceRepaintAsync): Ditto.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::setLayerFlushSchedulingEnabled): Call ThreadedCompositor::suspend()/resume().
(WebKit::LayerTreeHost::pauseRendering): Call ThreadedCompositor::suspend.
(WebKit::LayerTreeHost::resumeRendering): Call ThreadedCompositor::resume().

9:28 AM Changeset in webkit [242363] by bshafiei@apple.com
  • 4 edits in branches/safari-607-branch/Source

Cherry-pick r242355. rdar://problem/48563894

[iOS] Fullscreen "stay in page" option breaks video playback
https://bugs.webkit.org/show_bug.cgi?id=195277
<rdar://problem/48537317>

Reviewed by Eric Carlson.

Source/WebCore:

Add a LOG entry when playback is rejected due to media playback suspension.

  • html/MediaElementSession.cpp: (WebCore::MediaElementSession::playbackPermitted const):

Source/WebKit:

Make sure we resume media playback when the user chooses "stay in page" from the deceptive
website warning dialog.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm: (-[WKFullScreenViewController _showPhishingAlert]):

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

9:25 AM Changeset in webkit [242362] by bshafiei@apple.com
  • 4 edits in branches/safari-607.1.40.0-branch/Source

Cherry-pick r242355. rdar://problem/48563891

[iOS] Fullscreen "stay in page" option breaks video playback
https://bugs.webkit.org/show_bug.cgi?id=195277
<rdar://problem/48537317>

Reviewed by Eric Carlson.

Source/WebCore:

Add a LOG entry when playback is rejected due to media playback suspension.

  • html/MediaElementSession.cpp: (WebCore::MediaElementSession::playbackPermitted const):

Source/WebKit:

Make sure we resume media playback when the user chooses "stay in page" from the deceptive
website warning dialog.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm: (-[WKFullScreenViewController _showPhishingAlert]):

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

9:21 AM Changeset in webkit [242361] by bshafiei@apple.com
  • 7 edits in branches/safari-607.1.40.0-branch/Source

Versioning.

8:58 AM Changeset in webkit [242360] by Darin Adler
  • 15 edits in trunk

Prepare to improve handling of conversion of float to strings
https://bugs.webkit.org/show_bug.cgi?id=195262

Reviewed by Daniel Bates.

Source/WTF:

  • wtf/dtoa.cpp:

(WTF::truncateTrailingZeros): Renamed from
formatStringTruncatingTrailingZerosIfNeeded and removed the calls
to double_conversion::StringBuilder::Finalizer, since the caller
already does that.
(WTF::numberToFixedPrecisionString): Added an overload for float
and updated to use the new truncateTrailingZeros.
(WTF::numberToFixedWidthString): Added an overload for float.

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::number): Added float overload. This is a
behavior change, but in all cases for the better. The old behavior
was to convert to double first and then do "shortest form"
conversion, and it's always better to just do that as float.

  • wtf/text/AtomicString.h: Added float overload of AtomicString::number.
  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::appendFixedPrecisionNumber): Added float
overload.
(WTF::StringBuilder::appendShortestFormNumber): Renamed from
appendECMAScriptNumber and did the above.
(WTF::StringBuilder::appendFixedWidthNumber): Ditto.

  • wtf/text/StringBuilder.h: Added overloads for float and

appendShortestFormNumber. The appendNumber and appendECMAScriptNumber
functions are now inlines in the header, since they are expressed
entirely in terms of the other functions.

  • wtf/text/WTFString.cpp:

(WTF::String::numberToStringFixedPrecision): Added float overload.
Removed unnecessary explicit conversion to String.
(WTF::String::numberToStringShortest): Renamed from
numberToStringECMAScript and did the above.
(WTF::String::numberToStringFixedWidth): Ditto.

  • wtf/text/WTFString.h: Added overloads for float and

numberToStringShortest. The number and numberToStringECMAScript
functions are now inlines in the header, since they are expressed
entirely in terms of the other functions.

LayoutTests:

  • svg/dom/SVGAngle-expected.txt:
  • svg/dom/SVGAngle.html:
  • svg/dom/SVGLength-px-expected.txt:
  • svg/dom/SVGLength-px-with-context-expected.txt:
  • svg/dom/SVGLength-px-with-context.html:
  • svg/dom/SVGLength-px.html:

Remove checks that depend on the precision and number of serialization.
The current tests depend on behavior that we'd like to change in the future and
some of them had already been updated since the behavior is different in different
web browsers. Tricky issue because of the mix of single and double precision in
the SVG engine and the JavaScript language, and straightforward to keep the tests
useful without this unnecessary dependency. Generally we check the units of the
result of valueAsString, and not the numeric result. Another idea would be to
check the numeric part of the result by converting it back to a number and
comparing it as a number rather than as a string.

8:57 AM Changeset in webkit [242359] by Simon Fraser
  • 26 edits
    2 copies
    1 move in trunk/Source

Share more code between overflow and frame scrolling nodes, fixing overflow scrollbar display
https://bugs.webkit.org/show_bug.cgi?id=195258

Reviewed by Antti Koivisto.

This patch moves management of scrollbar layers and scrollbar painters ("NSScrollerImp") down to
ScrollingStateScrollingNode to be shared between frame and overflow nodes, allowing for
scrolling thread updates of overflow scrollbars. It also moves some scrolling tree-side code
to ScrollingTreeScrollingNodeDelegateMac to be shared between the "tree" nodes for overflow and frames.

Layers for scrollbars are given to scrolling state nodes via setNodeLayers() now, and
RenderLayerCompositor::updateScrollingNodeLayers() is added to provide a bottleneck to call that.
At some point AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange() should be relieved
of the responsibility of pushing scrollbar layers (but the scrolling state tree needs to hold
references to GraphicsLayers before that becomes safe).

The actual fix that allows overflow scrollbars to show is the change in
AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange() that calls scrollableArea.*ScrollbarLayerDidChange()
for all ScrollableAreas. This ensures that the CALayer is pushed onto the NSScrollerImp.

Source/WebCore:

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
(WebCore::AsyncScrollingCoordinator::setNodeLayers):
(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):
(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):

  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setAllPropertiesChanged):
(WebCore::ScrollingStateFrameScrollingNode::setVerticalScrollbarLayer): Deleted.
(WebCore::ScrollingStateFrameScrollingNode::setHorizontalScrollbarLayer): Deleted.
(WebCore::ScrollingStateFrameScrollingNode::setScrollerImpsFromScrollbars): Deleted.

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setAllPropertiesChanged):
(WebCore::ScrollingStateScrollingNode::setHorizontalScrollbarLayer):
(WebCore::ScrollingStateScrollingNode::setVerticalScrollbarLayer):
(WebCore::ScrollingStateScrollingNode::setScrollerImpsFromScrollbars):

  • page/scrolling/ScrollingStateScrollingNode.h:

(WebCore::ScrollingStateScrollingNode::horizontalScrollbarLayer const):
(WebCore::ScrollingStateScrollingNode::verticalScrollbarLayer const):
(WebCore::ScrollingStateScrollingNode::verticalScrollerImp const):
(WebCore::ScrollingStateScrollingNode::horizontalScrollerImp const):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::setOrClearLatchedNode):
(WebCore::ScrollingTree::handleWheelEvent):

  • page/scrolling/mac/ScrollingStateScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm.

(WebCore::ScrollingStateScrollingNode::setScrollerImpsFromScrollbars):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionRelatedLayers):
(WebCore::ScrollingTreeFrameScrollingNodeMac::~ScrollingTreeFrameScrollingNodeMac): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::releaseReferencesToScrollerImpsOnTheMainThread): Deleted.

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::repositionRelatedLayers):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::~ScrollingTreeScrollingNodeDelegateMac):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateFromStateNode):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::releaseReferencesToScrollerImpsOnTheMainThread):

  • platform/ScrollbarThemeComposite.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::didChangePlatformLayerForLayer):
(WebCore::RenderLayerCompositor::updateScrollingNodeLayers):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):

  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::createScrollingTreeNode):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::commitStateBeforeChildren):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::repositionRelatedLayers):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::handleMouseEvent):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp: Copied from Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp.

(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::create):
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::ScrollingTreeOverflowScrollingNodeRemoteMac):
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::~ScrollingTreeOverflowScrollingNodeRemoteMac):
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::commitStateBeforeChildren):
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::repositionRelatedLayers):
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::handleWheelEvent):
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::handleMouseEvent):

  • WebKit.xcodeproj/project.pbxproj:
8:57 AM Changeset in webkit [242358] by Truitt Savell
  • 2 edits in trunk/LayoutTests

webkit.org/b/195210 resolve by r242308, unskipping tests.
https://bugs.webkit.org/show_bug.cgi?id=195210

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
8:51 AM Changeset in webkit [242357] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Remove HEVC as a codec requiring hardware support.
https://bugs.webkit.org/show_bug.cgi?id=194960
<rdar://problem/47741432>

Reviewed by Eric Carlson.

  • page/cocoa/SettingsBaseCocoa.mm:

(WebCore::SettingsBase::defaultMediaContentTypesRequiringHardwareSupport):

8:47 AM Changeset in webkit [242356] by aestes@apple.com
  • 13 edits
    7 copies
    4 adds
    1 delete in trunk/Source

[Apple Pay] Move WebPaymentCoordinatorProxy from Source/WebKit/UIProcess to Source/WebKit/Shared
https://bugs.webkit.org/show_bug.cgi?id=195080
<rdar://problem/48421558>

Reviewed by Antti Koivisto.

Source/WebKit:

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp: Renamed from Source/WebKit/UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp.
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h: Renamed from Source/WebKit/UIProcess/ApplePay/WebPaymentCoordinatorProxy.h.
  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in: Renamed from Source/WebKit/UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in.
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: Renamed from Source/WebKit/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h.
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: Renamed from Source/WebKit/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm.
  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: Renamed from Source/WebKit/UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm.
  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: Renamed from Source/WebKit/UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm.
  • Shared/mac/WebHitTestResultData.mm:
  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • wtf/FeatureDefines.h:
8:44 AM Changeset in webkit [242355] by jer.noble@apple.com
  • 4 edits in trunk/Source

[iOS] Fullscreen "stay in page" option breaks video playback
https://bugs.webkit.org/show_bug.cgi?id=195277
<rdar://problem/48537317>

Reviewed by Eric Carlson.

Source/WebCore:

Add a LOG entry when playback is rejected due to media playback suspension.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted const):

Source/WebKit:

Make sure we resume media playback when the user chooses "stay in page" from the deceptive
website warning dialog.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController _showPhishingAlert]):

7:25 AM Changeset in webkit [242354] by Michael Catanzaro
  • 10 edits
    1 add in trunk

[WPE] Enable web process sandbox
https://bugs.webkit.org/show_bug.cgi?id=195169

Reviewed by Daniel Bates.

.:

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

Source/WebKit:

  • PlatformWPE.cmake:
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bubblewrapSpawn):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitialize):

Tools:

  • wpe/install-dependencies:
  • wpe/jhbuild.modules:
7:18 AM Changeset in webkit [242353] by Michael Catanzaro
  • 2 edits in trunk/Source/WTF

URLHelpers should use unorm2_quickCheck before converting to NFC
https://bugs.webkit.org/show_bug.cgi?id=194272

Reviewed by Darin Adler.

If the string is already in normalization form C, don't try to normalize it.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::toNormalizationFormC):

6:30 AM Changeset in webkit [242352] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebDriver

WebDriver: fix String not terminated with null caracter
https://bugs.webkit.org/show_bug.cgi?id=195274

Patch by Karl Leplat <karl.leplat_ext@softathome.com> on 2019-03-04
Reviewed by Carlos Garcia Campos.

This has been detected by an exception returned by the function
evaluateJavaScriptFunction with the message :
[native code]: JS ERROR SyntaxError: Unexpected keyword 'function'. Expected ')' to end a compound expression.
keyword 'function' has been initialized with a string that come from char array, not a null-terminated string.

  • Session.cpp:

(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::elementClear):

6:23 AM Changeset in webkit [242351] by Adrian Perez de Castro
  • 5 edits in trunk/Source/WebKit

[GTK][WPE] Wrong license header in WebKit{,WebExtension}Autocleanups.h
https://bugs.webkit.org/show_bug.cgi?id=195245

Reviewed by Carlos Garcia Campos.

Changed license headers to contain the LGPL, which is the correct one for the GTK
and WPE ports. The change was agreed by the contributors to the files involved.

  • UIProcess/API/gtk/WebKitAutocleanups.h:
  • UIProcess/API/wpe/WebKitAutocleanups.h:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitWebExtensionAutocleanups.h:
5:24 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
4:03 AM Changeset in webkit [242350] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

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

WE not ready to enable PSON yet (Requested by KaL on #webkit).

Reverted changeset:

"[GTK] Enable PSON"
https://bugs.webkit.org/show_bug.cgi?id=194979
https://trac.webkit.org/changeset/242045

2:34 AM Changeset in webkit [242349] by Carlos Garcia Campos
  • 4 edits in trunk

[GLib] Returning G_TYPE_OBJECT from a constructor does not work
https://bugs.webkit.org/show_bug.cgi?id=195206

Reviewed by Žan Doberšek.

Source/JavaScriptCore:

We are freeing the newly created object before returning from the constructor.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::construct):

Tools:

Add a new test case.

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

(testJSCClass):

2:32 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
2:30 AM Changeset in webkit [242348] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Unreviewed. Update POTFILES.in after r239627.

  • POTFILES.in:
2:28 AM Changeset in webkit [242347] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Unreviewed build fix after r242163

This fixes WPE aftyer the backport for r242055 wrongly added a piece of code which is
needed only in trunk and depends on changes introduced by a patch that is not being
merged for 2.24.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Remove unneeded code.

1:58 AM Changeset in webkit [242346] by Carlos Garcia Campos
  • 15 edits
    2 moves
    3 adds
    6 deletes in trunk/Source/WebKit

[CoordinatedGraphics] Unify DrawingArea classes
https://bugs.webkit.org/show_bug.cgi?id=195167

Reviewed by Žan Doberšek.

Add DrawingAreaProxyCoordinatedGraphics and DrawingAreaCoordinatedGraphics.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • Shared/DrawingAreaInfo.h:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::createDrawingAreaProxy):
(WebKit::PageClientImpl::viewSize):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize):
(webkitWebViewBaseUnrealize):
(webkitWebViewBaseDraw):
(webkitWebViewBaseSizeAllocate):
(webkitWebViewBaseDidRelaunchWebProcess):
(webkitWebViewBasePageClosed):

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::createDrawingAreaProxy):

  • UIProcess/AcceleratedDrawingAreaProxy.cpp: Removed.
  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: Added.

(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingAreaProxyCoordinatedGraphics):
(WebKit::DrawingAreaProxyCoordinatedGraphics::~DrawingAreaProxyCoordinatedGraphics):
(WebKit::DrawingAreaProxyCoordinatedGraphics::paint):
(WebKit::DrawingAreaProxyCoordinatedGraphics::sizeDidChange):
(WebKit::DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange):
(WebKit::DrawingAreaProxyCoordinatedGraphics::waitForBackingStoreUpdateOnNextPaint):
(WebKit::DrawingAreaProxyCoordinatedGraphics::setBackingStoreIsDiscardable):
(WebKit::DrawingAreaProxyCoordinatedGraphics::update):
(WebKit::DrawingAreaProxyCoordinatedGraphics::didUpdateBackingStoreState):
(WebKit::DrawingAreaProxyCoordinatedGraphics::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyCoordinatedGraphics::exitAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyCoordinatedGraphics::updateAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyCoordinatedGraphics::incorporateUpdate):
(WebKit::DrawingAreaProxyCoordinatedGraphics::alwaysUseCompositing const):
(WebKit::DrawingAreaProxyCoordinatedGraphics::backingStoreStateDidChange):
(WebKit::DrawingAreaProxyCoordinatedGraphics::sendUpdateBackingStoreState):
(WebKit::DrawingAreaProxyCoordinatedGraphics::waitForAndDispatchDidUpdateBackingStoreState):
(WebKit::DrawingAreaProxyCoordinatedGraphics::discardBackingStoreSoon):
(WebKit::DrawingAreaProxyCoordinatedGraphics::discardBackingStore):
(WebKit::DrawingAreaProxyCoordinatedGraphics::setNativeSurfaceHandleForCompositing):
(WebKit::DrawingAreaProxyCoordinatedGraphics::destroyNativeSurfaceHandleForCompositing):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::DrawingMonitor):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::~DrawingMonitor):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::webViewDrawCallback):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::start):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::stop):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::didDraw):
(WebKit::DrawingAreaProxyCoordinatedGraphics::dispatchAfterEnsuringDrawing):

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h: Renamed from Source/WebKit/UIProcess/AcceleratedDrawingAreaProxy.h.
  • UIProcess/DrawingAreaProxyImpl.cpp: Removed.
  • UIProcess/DrawingAreaProxyImpl.h: Removed.
  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::update):

  • UIProcess/win/PageClientImpl.cpp:

(WebKit::PageClientImpl::createDrawingAreaProxy):

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::paint):

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp: Removed.
  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: Added.

(WebKit::DrawingAreaCoordinatedGraphics::DrawingAreaCoordinatedGraphics):
(WebKit::DrawingAreaCoordinatedGraphics::~DrawingAreaCoordinatedGraphics):
(WebKit::DrawingAreaCoordinatedGraphics::setNeedsDisplay):
(WebKit::DrawingAreaCoordinatedGraphics::setNeedsDisplayInRect):
(WebKit::DrawingAreaCoordinatedGraphics::scroll):
(WebKit::DrawingAreaCoordinatedGraphics::forceRepaint):
(WebKit::DrawingAreaCoordinatedGraphics::forceRepaintAsync):
(WebKit::DrawingAreaCoordinatedGraphics::setLayerTreeStateIsFrozen):
(WebKit::DrawingAreaCoordinatedGraphics::updatePreferences):
(WebKit::DrawingAreaCoordinatedGraphics::mainFrameContentSizeChanged):
(WebKit::DrawingAreaCoordinatedGraphics::deviceOrPageScaleFactorChanged):
(WebKit::DrawingAreaCoordinatedGraphics::didChangeViewportAttributes):
(WebKit::DrawingAreaCoordinatedGraphics::graphicsLayerFactory):
(WebKit::DrawingAreaCoordinatedGraphics::setRootCompositingLayer):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleCompositingLayerFlush):
(WebKit::DrawingAreaCoordinatedGraphics::layerHostDidFlushLayers):
(WebKit::DrawingAreaCoordinatedGraphics::createDisplayRefreshMonitor):
(WebKit::DrawingAreaCoordinatedGraphics::setNativeSurfaceHandleForCompositing):
(WebKit::DrawingAreaCoordinatedGraphics::destroyNativeSurfaceHandleForCompositing):
(WebKit::DrawingAreaCoordinatedGraphics::activityStateDidChange):
(WebKit::DrawingAreaCoordinatedGraphics::attachViewOverlayGraphicsLayer):
(WebKit::DrawingAreaCoordinatedGraphics::updateBackingStoreState):
(WebKit::DrawingAreaCoordinatedGraphics::didUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::sendDidUpdateBackingStoreState):
(WebKit::DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingModeSoon):
(WebKit::DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingModeNow):
(WebKit::DrawingAreaCoordinatedGraphics::discardPreviousLayerTreeHost):
(WebKit::DrawingAreaCoordinatedGraphics::suspendPainting):
(WebKit::DrawingAreaCoordinatedGraphics::resumePainting):
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay):
(WebKit::DrawingAreaCoordinatedGraphics::displayTimerFired):
(WebKit::DrawingAreaCoordinatedGraphics::display):
(WebKit::shouldPaintBoundsRect):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h: Renamed from Source/WebKit/WebProcess/WebPage/AcceleratedDrawingArea.h.
  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::create):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::layerFlushThrottlingIsActive const):

  • WebProcess/WebPage/DrawingAreaImpl.cpp: Removed.
  • WebProcess/WebPage/DrawingAreaImpl.h: Removed.
1:21 AM Changeset in webkit [242345] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Tools

Merged r242344 - [WPE] Inline wl_array_for_each to workaround C++ compatibility issue
https://bugs.webkit.org/show_bug.cgi?id=194898

Reviewed by Žan Doberšek.

  • wpe/backends/WindowViewBackend.cpp: wl_array_for_each relies on

a GCC extension that permits arithmetic on void* pointer. Inline
the macro until this issue is fixed upstream.

12:32 AM Changeset in webkit [242344] by cturner@igalia.com
  • 2 edits in trunk/Tools

[WPE] Inline wl_array_for_each to workaround C++ compatibility issue
https://bugs.webkit.org/show_bug.cgi?id=194898

Reviewed by Žan Doberšek.

  • wpe/backends/WindowViewBackend.cpp: wl_array_for_each relies on

a GCC extension that permits arithmetic on void* pointer. Inline
the macro until this issue is fixed upstream.

12:20 AM Changeset in webkit [242343] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

Fix typo in previous gardening commit

Unreviewed.

  • platform/wpe/TestExpectations:
12:18 AM Changeset in webkit [242342] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE][EME] Mark two flaky EME tests

Unreviewed gardening.

  • platform/wpe/TestExpectations:
12:07 AM Changeset in webkit [242341] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build.

  • dom/Document.h:

Mar 3, 2019:

10:05 PM Changeset in webkit [242340] by Alan Bujtas
  • 16 edits in trunk/Source

[ContentChangeObserver] Content observation should be limited to the current document.
https://bugs.webkit.org/show_bug.cgi?id=195256
<rdar://problem/48544402>

Source/WebCore:

Move ContentChangeObserver from Page to Document.
It limits content observation to the target node's owner document.

Reviewed by Simon Fraser.

  • dom/Document.cpp:

(WebCore::m_contentChangeObserver):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::willDetachPage):
(WebCore::Document::platformSuspendOrStopActiveDOMObjects):
(WebCore::m_undoManager): Deleted.

  • dom/Document.h:

(WebCore::Document::contentChangeObserver):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install):
(WebCore::DOMTimer::removeById):
(WebCore::DOMTimer::fired):

  • page/Frame.cpp:

(WebCore::Frame::willDetachPage):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::pointerLockController const):
(WebCore::Page::contentChangeObserver): Deleted.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::ContentChangeObserver):
(WebCore::ContentChangeObserver::didInstallDOMTimer):
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::stopObservingStyleRecalc):
(WebCore::ContentChangeObserver::clearTimersAndReportContentChange):
(WebCore::ContentChangeObserver::startObservingMouseMoved):
(WebCore::ContentChangeObserver::hasDeterminateState const):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::notifyContentChangeIfNeeded):
(WebCore::ContentChangeObserver::StyleChangeScope::StyleChangeScope):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
(WebCore::ContentChangeObserver::MouseMovedScope::MouseMovedScope):
(WebCore::ContentChangeObserver::MouseMovedScope::~MouseMovedScope):
(WebCore::ContentChangeObserver::StyleRecalcScope::StyleRecalcScope):
(WebCore::ContentChangeObserver::StyleRecalcScope::~StyleRecalcScope):
(WebCore::ContentChangeObserver::DOMTimerScope::DOMTimerScope):
(WebCore::ContentChangeObserver::DOMTimerScope::~DOMTimerScope):
(WebCore::hasPendingStyleRecalc): Deleted.

  • page/ios/ContentChangeObserver.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::mouseMoved):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

Source/WebKit:

Reviewed by Simon Fraser.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::handleTap):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::commitPotentialTap):

Source/WebKitLegacy/ios:

Reviewed by Simon Fraser.

  • WebCoreSupport/WebChromeClientIOS.mm:

(WebChromeClientIOS::observedContentChange):

9:12 PM Changeset in webkit [242339] by timothy_horton@apple.com
  • 675 edits in trunk

Rid the world of WK_API_ENABLED
https://bugs.webkit.org/show_bug.cgi?id=195263

Reviewed by Dan Bernstein.

List of changed files elided because it's useless.

9:09 PM Changeset in webkit [242338] by Ross Kirsling
  • 2 edits in trunk/Tools

Unreviewed follow-up to r242292.

By Darin's suggestion, adopt an approach that uses EXPECT_STREQ without scattering utf8().data() everywhere.

  • TestWebKitAPI/Tests/WebKit/EnvironmentUtilitiesTest.cpp:

(TestWebKitAPI::testStrip): Renamed from strip.
(TestWebKitAPI::TEST):

8:47 PM Changeset in webkit [242337] by bshafiei@apple.com
  • 2 edits in tags/Safari-608.1.7.2/Source/WebKit

Cherry-pick r242233. rdar://problem/48139481

Disable Web Animations in Safari Technology Preview
https://bugs.webkit.org/show_bug.cgi?id=194748
<rdar://problem/48139481>

Patch by Antoine Quint <Antoine Quint> on 2019-02-28
Reviewed by Dean Jackson.

The test runners already opt into that feature explicitly, so all that is needed is to turn
the default setting value to false.

  • Shared/WebPreferences.yaml:

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

8:38 PM Changeset in webkit [242336] by jiewen_tan@apple.com
  • 6 edits
    1 add in trunk/Source/WebKit

Add a WebViewDidMoveToWindowObserver for WKWebView
https://bugs.webkit.org/show_bug.cgi?id=195223
<rdar://problem/48520161>

Reviewed by Darin Adler.

The load optimizer would only allow itself to optimize loads whenever the web view
who owns the page is (visible && focused), otherwises it will wait until the web view
becomes (visible && focused). Therefore, we need a way to notify the load optimizer
changes of statuses.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didMoveToWindow]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::viewDidMoveToWindow):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::addWebViewDidMoveToWindowObserver):
(WebKit::WebPageProxy::removeWebViewDidMoveToWindowObserver):
(WebKit::WebPageProxy::webViewDidMoveToWindow):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebViewDidMoveToWindowObserver.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
8:37 PM Changeset in webkit [242335] by bshafiei@apple.com
  • 7 edits in tags/Safari-608.1.7.2/Source

Versioning.

8:32 PM Changeset in webkit [242334] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.7.2

New tag.

4:36 PM Changeset in webkit [242333] by Simon Fraser
  • 45 edits in trunk

Share more code for updating the state of frame scrolling nodes
https://bugs.webkit.org/show_bug.cgi?id=195254

Reviewed by Antti Koivisto.
Source/WebCore:

Responsibility for updating state on ScrollingStateFrameScrolling nodes was split between
AsyncScrollingCoordinator::frameViewLayoutUpdated(), which is called post-layout, and
RenderLayerCompositor. This patch gives that responsibility entirely to RenderLayerCompositor,
ensuring that we update frame scrolling nodes at the same time as the rest of the scrolling
state tree.

We also share code between updating ScrollingStateFrameScrollingNodes and
ScrollingStateOverflowScrollingNodews, since both can be updated from a ScrollableArea.
Some minor cleanup of ScrollableArea is doing to help. For the first time, we're pushing
ScrollableAreaParameters for overflow scrolling nodes, allowing rubber-banding to work
on macOS.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::setRectRelativeToParentNode):
(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):
(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):
(WebCore::AsyncScrollingCoordinator::setViewportConstraintedNodeConstraints):
(WebCore::AsyncScrollingCoordinator::setScrollingNodeGeometry): Deleted.
(WebCore::AsyncScrollingCoordinator::setViewportConstraintedNodeGeometry): Deleted.

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setRectRelativeToParentNode):
(WebCore::ScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):
(WebCore::ScrollingCoordinator::setFrameScrollingNodeState):
(WebCore::ScrollingCoordinator::setViewportConstraintedNodeConstraints):
(WebCore::ScrollingCoordinator::setScrollingNodeGeometry): Deleted.
(WebCore::ScrollingCoordinator::setViewportConstraintedNodeGeometry): Deleted.

  • platform/ScrollView.h:

(WebCore::ScrollView::horizontalScrollbarMode const): Deleted.
(WebCore::ScrollView::verticalScrollbarMode const): Deleted.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::reachableTotalContentsSize const):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalScrollbarMode const):
(WebCore::ScrollableArea::verticalScrollbarMode const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::overhangAmount const):
(WebCore::RenderLayer::reachableTotalContentsSize const):
(WebCore::RenderLayer::scrollableContentsSize const): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
(WebCore::RenderLayerCompositor::updateScrollingNodeForViewportConstrainedRole):
(WebCore::RenderLayerCompositor::rootParentRelativeScrollableRect const):
(WebCore::RenderLayerCompositor::parentRelativeScrollableRect const):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::RenderLayerCompositor::updateScrollingNodeForFrameHostingRole):
(WebCore::RenderLayerCompositor::computeFrameScrollingGeometry const): Deleted.
(WebCore::RenderLayerCompositor::computeFrameHostingGeometry const): Deleted.
(WebCore::RenderLayerCompositor::computeOverflowScrollingGeometry const): Deleted.

  • rendering/RenderLayerCompositor.h:

LayoutTests:

New baselines. Overflow nodes get some state from ScrollableAreaParameters now, and
frame nodes get the current scroll position (which is good, since they already have
the new layout viewport).

  • fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt:
  • fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars.html:
  • tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
2:16 PM Changeset in webkit [242332] by aestes@apple.com
  • 13 edits in trunk/Source/WebKit

[Apple Pay] Untangle WebPageProxy and WebPaymentCoordinatorProxy
https://bugs.webkit.org/show_bug.cgi?id=195219
<rdar://problem/48518082>

Reviewed by Darin Adler.

Rather than having WebPaymentCoordinatorProxy know about WebPageProxy, give
WebPaymentCoordinatorProxy a client interface that WebPageProxy conforms to.

In a follow-on patch, WebPaymentCoordinatorProxy will have a non-WebPageProxy client.

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::WebPaymentCoordinatorProxy): Replaced use of
m_webPageProxy with m_client.
(WebKit::WebPaymentCoordinatorProxy::~WebPaymentCoordinatorProxy): Ditto.
(WebKit::WebPaymentCoordinatorProxy::messageSenderConnection const): Implemented
IPC::MessageSender via m_client.
(WebKit::WebPaymentCoordinatorProxy::messageSenderDestinationID const): Ditto.
(WebKit::WebPaymentCoordinatorProxy::canMakePaymentsWithActiveCard): Replaced use of
m_webPageProxy with m_client.
(WebKit::WebPaymentCoordinatorProxy::openPaymentSetup): Ditto.
(WebKit::WebPaymentCoordinatorProxy::didCancelPaymentSession): Called our own
MessageSender::send rather than going through m_webPageProxy.
(WebKit::WebPaymentCoordinatorProxy::validateMerchant): Ditto.
(WebKit::WebPaymentCoordinatorProxy::didAuthorizePayment): Ditto.
(WebKit::WebPaymentCoordinatorProxy::didSelectShippingMethod): Ditto.
(WebKit::WebPaymentCoordinatorProxy::didSelectShippingContact): Ditto.
(WebKit::WebPaymentCoordinatorProxy::didSelectPaymentMethod): Ditto.

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: Defined the Client abstract class and

changed m_webPageProxy to m_client.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard): Replaced use of
m_webPageProxy with m_client.
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): Renamed from toPKPaymentRequest.
(WebKit::toPKPaymentRequest): Renamed to WebPaymentCoordinatorProxy::platformPaymentRequest.

  • UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): Replaced use of m_webPageProxy
with m_client.

  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): Ditto.

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::messageReceiverMap): Added.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::paymentCoordinatorConnection): Implemented WebPaymentCoordinatorProxy::Client.
(WebKit::WebPageProxy::paymentCoordinatorMessageReceiver): Ditto.
(WebKit::WebPageProxy::paymentCoordinatorSourceApplicationBundleIdentifier): Ditto.
(WebKit::WebPageProxy::paymentCoordinatorSourceApplicationSecondaryIdentifier): Ditto.
(WebKit::WebPageProxy::paymentCoordinatorDestinationID): Ditto.

  • UIProcess/WebPageProxy.h: Made WebPageProxy derive from WebPaymentCoordinatorProxy::Client.
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::paymentCoordinatorPresentingViewController): Implemented WebPaymentCoordinatorProxy::Client.
(WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType): Ditto.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::paymentCoordinatorPresentingWindow): Ditto.

  • WebKit.xcodeproj/project.pbxproj:
2:08 PM Changeset in webkit [242331] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

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

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
12:43 PM Changeset in webkit [242330] by Darin Adler
  • 23 edits
    2 deletes in trunk

Retire legacy dtoa function and DecimalNumber class
https://bugs.webkit.org/show_bug.cgi?id=195253

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Rebaseline still-failing part of this test that dumps super-small numbers that are formatted
differently by the new code (exponential style).

Source/JavaScriptCore:

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToExponential): Removed dependency on NumberToStringBufferLength,
using NumberToStringBuffer instead. Also tweaked style of implementation a bit.

Source/WebCore:

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberValue const): Use makeString instead
of DecimalNumber. Also changed return type to String and use StringView and
removed special handling of literals.
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const): Removed an
unnecessary use of StringBuilder.

  • css/CSSPrimitiveValue.h: Updated for changes to formatNumberValue.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj: Removed DecimalNumber.cpp/h.
  • wtf/CMakeLists.txt: Ditto.
  • wtf/DecimalNumber.cpp: Removed.
  • wtf/DecimalNumber.h: Removed.
  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::writeJSON const): Use
StringBuilder::appendECMAScriptNumber instead of custom logic
using the DecimalNumber class.

  • wtf/dtoa.cpp:

(WTF::storeInc): Deleted.
(WTF::BigInt): Deleted.
(WTF::multadd): Deleted.
(WTF::hi0bits): Deleted.
(WTF::lo0bits): Deleted.
(WTF::i2b): Deleted.
(WTF::mult): Deleted.
(WTF::P5Node::P5Node): Deleted.
(WTF::pow5mult): Deleted.
(WTF::lshift): Deleted.
(WTF::cmp): Deleted.
(WTF::diff): Deleted.
(WTF::d2b): Deleted.
(WTF::quorem): Deleted.
(WTF::dtoa): Deleted.

  • wtf/dtoa.h: Removed DtoaBuffer, dtoa, and NumberToStringBufferLength.

LayoutTests:

  • fast/css/large-value-csstext-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:

Updated expected value to expect exponential syntax for super-small numbers that are formatted
differently by the new code.

  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:

Rebaseline still-failing parts of these tests that dump super-small numbers that are formatted
differently by the new code. Still probably needs to be done for 4 other platforms.

11:11 AM Changeset in webkit [242329] by Michael Catanzaro
  • 1 edit
    1 delete in trunk/Tools

Unreviewed, remove accidentally-committed URLHelpers.cpp test

This test isn't built by any port and was committed in r240962 by mistake. See bug #174816
and bug #194272 for details.

  • TestWebKitAPI/Tests/WTF/URLHelpers.cpp: Removed.
9:51 AM Changeset in webkit [242328] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[SOUP] Cleanups in SoupNetworkSession
https://bugs.webkit.org/show_bug.cgi?id=195247

Reviewed by Daniel Bates.

This renames clientCertificates to allowedCertificates, since they are not client
certificates at all, but server certificates. It also adds a using statement to avoid
repeating the long type of the map, and avoids an unnecessary copy.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::allowedCertificates):
(WebCore::SoupNetworkSession::checkTLSErrors):
(WebCore::SoupNetworkSession::allowSpecificHTTPSCertificateForHost):
(WebCore::clientCertificates): Deleted.

8:45 AM Changeset in webkit [242327] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

-Wformat error in SharedBuffer::tryCreateArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=195004

Reviewed by Darin Adler.

Seems C++ has no format specifier appropriate for printing the result of sizeof. We should
just not try to print it. Anyway, that's easy in this case, because sizeof(char) is
guaranteed to be 1. This code was an attempt to be pedantic to account for mythical systems
with char larger than one byte, but perhaps it didn't realize sizeof always returns
multiples of char and so sizeof(char) is always one even on such mythical systems.

Note the sizeof(char) use two lines up is left since it's not clear that switching it to 1
would actually be more readable.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::tryCreateArrayBuffer const):

4:30 AM Changeset in webkit [242326] by Adrian Perez de Castro
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.24/Source/WebKit

[WPE] Public API headers are missing autocleanup definitions
https://bugs.webkit.org/show_bug.cgi?id=195211

Reviewed by Philippe Normand.

  • PlatformWPE.cmake: List new API headers as installable.
  • UIProcess/API/wpe/WebKitAutocleanups.h: Added. This is a copy of the header from the GTK

port, adapted to fit the WPE port.

  • UIProcess/API/wpe/webkit.h: Add inclusion of WebKitAutocleanups.h
  • WebProcess/InjectedBundle/API/wpe/WebKitWebExtensionAutocleanups.h: Added. Also adapted

from the equivalent header of the GTK port.

  • WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h: Add inclusion of

WebKitWebExtensionAutocleanups.h

2:35 AM Changeset in webkit [242325] by timothy_horton@apple.com
  • 46 edits
    4 deletes in trunk

Remove some more unused 32-bit code
https://bugs.webkit.org/show_bug.cgi?id=195255

Reviewed by Darin Adler.

Source/WebCore:

  • platform/gamepad/cocoa/GameControllerGamepad.h:
  • platform/gamepad/cocoa/GameControllerGamepad.mm:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.h:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
  • platform/graphics/cocoa/FontCascadeCocoa.mm:
  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::globalPointForEvent):
(WebCore::pointForEvent):
(WebCore::mouseButtonForEvent):
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::servicesRolloverButtonCell const):
(WebCore::RenderThemeMac::paintImageControlsButton):
(WebCore::RenderThemeMac::imageControlsButtonSize const):
(WebCore::RenderThemeMac::imageControlsButtonPositionOffset const):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/spi/cocoa/IOKitSPI.h:
  • pal/spi/mac/QuickDrawSPI.h: Removed.

Source/WebKit:

  • Platform/Module.cpp:

(WebKit::Module::Module):

  • Platform/Module.h:
  • Platform/cf/ModuleCF.cpp:

(WebKit::Module::unload):
(WebKit::Module::bundleResourceMap): Deleted.

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::initializeShim):
(WebKit::PluginProcess::platformInitializeProcess):
(WebKit::shouldCallRealDebugger): Deleted.
(WebKit::isWindowActive): Deleted.
(WebKit::getCurrentEventButtonState): Deleted.
(WebKit::carbonWindowShown): Deleted.
(WebKit::carbonWindowHidden): Deleted.
(WebKit::openCFURLRef): Deleted.
(WebKit::isMallocTinyMemoryTag): Deleted.
(WebKit::shouldMapMemoryExecutable): Deleted.

  • PluginProcess/mac/PluginProcessShim.h:
  • PluginProcess/mac/PluginProcessShim.mm:

(WebKit::shimDebugger): Deleted.
(WebKit::shimGetCurrentEventButtonState): Deleted.
(WebKit::shimIsWindowActive): Deleted.
(WebKit::shimModalDialog): Deleted.
(WebKit::shimAlert): Deleted.
(WebKit::shimShowWindow): Deleted.
(WebKit::shimHideWindow): Deleted.
(WebKit::shimLSOpenCFURLRef): Deleted.
(WebKit::shimMachVMMap): Deleted.

  • Shared/API/Cocoa/WKFoundation.h:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):

  • Shared/Plugins/Netscape/NetscapePluginModule.cpp:

(WebKit::NetscapePluginModule::tryLoad):

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::getPluginArchitecture):
(WebKit::NetscapePluginModule::determineQuirks):

  • Shared/Plugins/PluginQuirks.h:
  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::sizeForNumberType):

  • Shared/mac/WebEventFactory.mm:

(WebKit::mouseButtonForEvent):
(WebKit::globalPointForEvent):
(WebKit::pointForEvent):
(WebKit::WebEventFactory::createWebMouseEvent):

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

(WKPageLoadFileReturningNavigation):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::pressureChangeWithEvent):

  • UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm:

(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):

  • UIProcess/mac/ServicesController.mm:

(WebKit::ServicesController::ServicesController):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::NPN_GetValue):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::NetscapePlugin):

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:

(WebKit::NetscapePlugin::isWindowActive const): Deleted.

  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:

(WebKit::NetscapePlugin::setDrawingModel):
(WebKit::NetscapePlugin::setEventModel):
(WebKit::NetscapePlugin::platformPostInitialize):
(WebKit::NetscapePlugin::platformDestroy):
(WebKit::NetscapePlugin::platformGeometryDidChange):
(WebKit::NetscapePlugin::platformPaint):
(WebKit::NetscapePlugin::platformHandleMouseEvent):
(WebKit::NetscapePlugin::platformHandleWheelEvent):
(WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
(WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
(WebKit::NetscapePlugin::platformHandleKeyboardEvent):
(WebKit::NetscapePlugin::platformSetFocus):
(WebKit::NetscapePlugin::windowFocusChanged):
(WebKit::NetscapePlugin::windowAndViewFramesChanged):
(WebKit::NetscapePlugin::sendComplexTextInput):
(): Deleted.
(WebKit::windowMap): Deleted.
(WebKit::NetscapePlugin::netscapePluginFromWindow): Deleted.
(WebKit::NetscapePlugin::windowRef const): Deleted.
(WebKit::NetscapePlugin::updateFakeWindowBounds): Deleted.
(WebKit::NetscapePlugin::buttonState): Deleted.
(WebKit::initializeEventRecord): Deleted.
(WebKit::anyMouseButtonIsDown): Deleted.
(WebKit::rightMouseButtonIsDown): Deleted.
(WebKit::modifiersForEvent): Deleted.
(WebKit::convertStringToKeyCodes): Deleted.
(WebKit::scriptCodeFromCurrentKeyboardInputSource): Deleted.
(WebKit::NetscapePlugin::nullEventTimerFired): Deleted.

Source/WebKitLegacy/mac:

  • Plugins/WebNetscapePluginEventHandler.mm:

(WebNetscapePluginEventHandler::create):

  • Plugins/WebNetscapePluginView.h:
  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
(-[WebNetscapePluginView restorePortState:]):
(-[WebNetscapePluginView sendEvent:isDrawRect:]):
(-[WebNetscapePluginView isNewWindowEqualToOldWindow]):
(-[WebNetscapePluginView updateAndSetWindow]):
(-[WebNetscapePluginView setWindowIfNecessary]):
(-[WebNetscapePluginView createPlugin]):
(-[WebNetscapePluginView fini]):
(-[WebNetscapePluginView drawRect:]):
(-[WebNetscapePluginView invalidateRegion:]):
(-[WebNetscapePluginView getVariable:value:]):
(-[WebNetscapePluginView setVariable:value:]):
(isDrawingModelQuickDraw): Deleted.
(-[WebNetscapePluginView fixWindowPort]): Deleted.
(getQDPixelFormatForBitmapContext): Deleted.
(-[WebNetscapePluginView tellQuickTimeToChill]): Deleted.
(-[WebNetscapePluginView _printedPluginBitmap]): Deleted.

  • WebView/WebDelegateImplementationCaching.mm:

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/TestNetscapePlugIn/Tests/mac/SupportsCarbonEventModel.cpp: Removed.
  • DumpRenderTree/TestNetscapePlugIn/main.cpp:

(NPP_New):
(NPP_HandleEvent):
(handleEventCarbon): Deleted.

LayoutTests:

  • platform/mac/plugins/supports-carbon-event-model-expected.txt: Removed.
  • platform/mac/plugins/supports-carbon-event-model.html: Removed.
Note: See TracTimeline for information about the timeline view.