⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jun 1, 2020:

11:06 PM Changeset in webkit [262407] by mmaxfield@apple.com
  • 5 edits in trunk

[WebGPU] Update texture creation validation according to the discussion at https://github.com/gpuweb/gpuweb/pull/799/files
https://bugs.webkit.org/show_bug.cgi?id=212390

Reviewed by Dean Jackson.

Source/WebCore:

Two new rules: Multisampled textures can't have the STORAGE flag, and sampleCount must be either 1 or 4.

Test: webgpu/texture-creation.html

  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateTexture const):

LayoutTests:

  • webgpu/texture-creation-expected.txt:
  • webgpu/texture-creation.html:
10:49 PM Changeset in webkit [262406] by Noam Rosenthal
  • 18 edits in trunk

Make unicode-bidi:isolate the default for an element with a dir attribute (instead of unicode-bidi:embed)
https://bugs.webkit.org/show_bug.cgi?id=134630

Reviewed by Simon Fraser.

Source/WebCore:

Unskipped 11 dir-isolation w3c tests.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::collectStyleForPresentationAttribute):

Use isolate instead of embed for unicode-bidi when dir attribute is present.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.mm:

(TEST):

Test was expecting unicode-bidi:embed, changed expectation.

LayoutTests:

Unskipped w3c tests that now pass, testing this behavior.

  • fast/css/default-bidi-css-rules-expected.txt:
  • fast/css/default-bidi-css-rules.html:

This test was modified, as the default bidi CSS rules are modified.

  • editing/selection/move-by-word-visually-mac-expected.txt:
  • editing/selection/move-by-word-visually-single-space-inline-element.html:
  • editing/style/make-text-writing-direction-inline-mac.html:
  • editing/style/make-text-writing-direction-inline-win.html:
  • fast/css/absolute-inline-alignment-2-expected.html:
  • fast/css/absolute-inline-alignment-2.html:
  • fast/text/bidi-embedding-pop-and-push-same.html:
  • fast/text/bidi-reverse-runs-crash-expected.txt:
  • fast/text/bidi-reverse-runs-crash.html:
  • fast/text/international/bidi-LDB-2-HTML.html:
  • fast/text/international/bidi-ignored-for-first-child-inline.html:
  • fast/text/international/iso-8859-8.html:

These tests rely on the previous unicode-bidi: embed default.
Modified them to include that old default explicitly in the test, as they test something else.

8:19 PM Changeset in webkit [262405] by Chris Dumez
  • 132 edits
    17 copies
    308 adds
    14 deletes in trunk/LayoutTests

Update web-platform-tests/webaudio from upstream
https://bugs.webkit.org/show_bug.cgi?id=212610

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Import webaudio web-platform-tests from upstream d3ea88514a93b7b6968.

  • web-platform-tests/webaudio/*: Updated.

LayoutTests:

6:12 PM Changeset in webkit [262404] by Devin Rousso
  • 23 edits
    2 adds in trunk

Web Inspector: Graphics: should use the id (name) of the animation if it exists
https://bugs.webkit.org/show_bug.cgi?id=212618

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Animation.json:
    • added an optional name property to the Animation.Animation type
    • created a new Animation.nameChanged event

Source/WebCore:

Test: inspector/animation/lifecycle-css-animation.html:

inspector/animation/lifecycle-css-transition.html:
inspector/animation/lifecycle-web-animation.html:
inspector/animation/nameChanged.html

  • animation/WebAnimation.h:

(WebCore::WebAnimation::setId): Deleted.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setId): Added.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didChangeWebAnimationName): Added.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didChangeWebAnimationNameImpl): Added.

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

(WebCore::InspectorAnimationAgent::didChangeWebAnimationName): Added.
(WebCore::InspectorAnimationAgent::bindAnimation):

Source/WebInspectorUI:

  • UserInterface/Protocol/AnimationObserver.js:

(WI.AnimationObserver.prototype.nameChanged): Added.

  • UserInterface/Controllers/AnimationManager.js:

(WI.AnimationManager.prototype.nameChanged): Added.

  • UserInterface/Models/Animation.js:

(WI.Animation):
(WI.Animation.fromPayload):
(WI.Animation.prototype.get name): Added.
(WI.Animation.prototype.get cssAnimationName): Added.
(WI.Animation.prototype.get cssTransitionProperty): Added.
(WI.Animation.prototype.get displayName):
(WI.Animation.prototype.nameChanged): Added.

  • UserInterface/Views/AnimationContentView.js:

(WI.AnimationContentView.prototype.initialLayout):
(WI.AnimationContentView.prototype.layout):
(WI.AnimationContentView.prototype.attached):
(WI.AnimationContentView.prototype.detached):
(WI.AnimationContentView.prototype._refreshTitle): Added.
(WI.AnimationContentView.prototype._handleNameChanged): Added.

  • UserInterface/Views/AnimationContentView.css:

(.content-view.animation):
(.content-view.animation > header > .titles):
(.content-view.animation > header > .titles > .title > code): Added.
Show the animation-name/transition-property/count in parenthesis after the id (only if
it has been specified).
Drive-by: ensure that the <header> doesn't overflow.

  • UserInterface/Views/AnimationDetailsSidebarPanel.js:

(WI.AnimationDetailsSidebarPanel.prototype.set animation):
(WI.AnimationDetailsSidebarPanel.prototype.initialLayout):
(WI.AnimationDetailsSidebarPanel.prototype._refreshIdentitySection):
(WI.AnimationDetailsSidebarPanel.prototype._handleAnimationNameChanged): Added.
Only show the "Identifier" row if an id is actually set. If there is a CSS
animation-name/transition-property, show it in a separate row.

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/animation/nameChanged.html: Added.
  • inspector/animation/nameChanged-expected.txt: Added.
  • inspector/animation/resources/lifecycle-utilities.js:
  • inspector/animation/lifecycle-css-animation-expected.txt:
  • inspector/animation/lifecycle-css-transition-expected.txt:
  • inspector/animation/lifecycle-web-animation.html:
  • inspector/animation/lifecycle-web-animation-expected.txt:

Print out the name of the animation after it's created.

6:09 PM Changeset in webkit [262403] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

[WebAccessibilityObjectWrapper subrole] should check for the nullity of the underlying AXCoreObject before dereferencing.
https://bugs.webkit.org/show_bug.cgi?id=212607

Reviewed by Chris Fleizach.

Covered by existing tests.

  • Check for nullity of the backingObject before dereferencing.
  • self.axBackingObject is now called only once, instead of many times unnecessarily.
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper subrole]):

5:51 PM Changeset in webkit [262402] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Correct misunderstandings on how ThreadSpecific work
https://bugs.webkit.org/show_bug.cgi?id=212616

Reviewed by Michael Saboff.

There were two misunderstandings I had when writing code using ThreadSpecific
when doing LLInt bytecode buffer caching in Wasm.

  1. For ThreadSpecific<Vector>, I was calling Vector's constructor twice

unnecessarily, and incorrectly, since we ended up constructing over an
already constructed Vector for the second call. When doing operator* or
operator-> on a ThreadSpecific<T>, T() is called if it has not been
initialized yet. So there is no need to do manually call the constructor
the second time.

  1. There is no need to try to destroy entries for ThreadSpecific manually

since we already run destructors when the thread goes away.

This patch removes code for (1) and (2) both from the Wasm bytecode
buffer and from AssemblerData.

  • assembler/AssemblerBuffer.cpp:

(JSC::clearAssembleDataThreadSpecificCache): Deleted.

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::~AssemblerBuffer):
(JSC::AssemblerBuffer::getThreadSpecificAssemblerData): Deleted.

  • dfg/DFGWorklist.cpp:
  • jit/JITWorklist.cpp:
  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::LLIntGenerator):
(JSC::Wasm::clearLLIntThreadSpecificCache): Deleted.

  • wasm/WasmLLIntGenerator.h:
  • wasm/WasmWorklist.cpp:
5:48 PM Changeset in webkit [262401] by commit-queue@webkit.org
  • 2 edits in trunk/Websites/bugs.webkit.org

Show patch IDs in the drop down menu under the Patch Diff Screen
https://bugs.webkit.org/show_bug.cgi?id=212558

Patch by Ling Ho <lingho@apple.com> on 2020-06-01
Reviewed by Alexey Proskuryakov.

  • template/en/default/attachment/diff-header.html.tmpl:
5:30 PM Changeset in webkit [262400] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ macOS ] REGRESSION(r262366): webgl/1.0.3/conformance/canvas/buffer-offscreen-test.html & webgl/2.0.0/conformance/canvas/buffer-offscreen-test.html are constant failures
https://bugs.webkit.org/show_bug.cgi?id=212594

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark tests as failing.
5:08 PM Changeset in webkit [262399] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Fix thread-safety issue in [WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration]
https://bugs.webkit.org/show_bug.cgi?id=212615
<rdar://problem/63569049>

Reviewed by Geoffrey Garen.

[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration] may get called on a background thread
by RunningBoard. When this happened it would check the _applicationIsBackgrounded flag on a background thread,
which was not safe, it would also call _releaseBackgroundTask on the background thread which definitely was not
safe and could lead to crashes such as the one in the radar.

To address the issue, we now call callOnMainRunLoopAndWait() as soon as _handleBackgroundTaskExpiration gets
called and run the whole implementation on the main thread. Previously, we were already doing a dispatch_sync()
to the main thread but only for part of the implementation.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration]):
(-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpirationOnMainThread]):

4:54 PM Changeset in webkit [262398] by sihui_liu@apple.com
  • 5 edits in trunk

TextManipulationController should put one Node in only one paragraph
https://bugs.webkit.org/show_bug.cgi?id=212548

Reviewed by Wenson Hsieh.

Source/WebCore:

TextManipulationController mainly uses line break as delimiter to split paragraphs. In our current
implementation, if text of a Node has line break, the part before the line break is in one paragraph and the
part after the line break is in another paragraph, which means the Node is in the ranges of two paragraphs.
In this case, when TextManipulationController manipulates the first paragraph, it replaces all the Nodes in the
range of first paragraph with new Nodes. Then when it manipulates the second paragraph, if will find Node in the
range of second paragraph does not exist and fail (because the Node is removed when handling the first
paragraph.). Also, TextManipulationController currently does not preserve line breaks in text, which can be an
issue if these line breaks are visible.

This patch makes the ParagraphContentIterator iterate over Nodes instead of text, so a Node can only be in the
range of one paragraph. To do this, it makes line break and spaces around it as a special excluded token.
Here are the rules for splitting paragraphs by line break now:

  1. If the special token is the first token in a Node, text in Nodes before the Node will make a paragraph.
  2. If the special token is the last token in a Node, text in Nodes before the Node and in the Node will make a

paragraph.

  1. If the special token in the middle of tokens in a Node, then we don't make a new paragraph until next special

token meets condition 1 or 2.

This patch also fixes the issue that Nodes out of the paragraph range can be removed due to the preorder Node
traversal, by finding and adding those Nodes back.

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::m_pastEndNode):
(WebCore::ParagraphContentIterator::advance):
(WebCore::ParagraphContentIterator::currentContent):
(WebCore::ParagraphContentIterator::atEnd const):
(WebCore::ParagraphContentIterator::advanceNode):
(WebCore::ParagraphContentIterator::advanceIteratorNodeAndUpdateText):
(WebCore::isEnclosingItemBoundaryElement):
(WebCore::TextManipulationController::parse):
(WebCore::TextManipulationController::observeParagraphs):
(WebCore::TextManipulationController::addItem):
(WebCore::TextManipulationController::getPath):
(WebCore::TextManipulationController::updateInsertions):
(WebCore::TextManipulationController::replace):
(WebCore::ParagraphContentIterator::startPosition): Deleted.
(WebCore::ParagraphContentIterator::endPosition): Deleted.
(WebCore::ParagraphContentIterator::moveCurrentNodeForward): Deleted.
(WebCore::containsOnlyHTMLSpaces): Deleted.

  • editing/TextManipulationController.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

3:19 PM Changeset in webkit [262397] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: Edit button has wrong outline
https://bugs.webkit.org/show_bug.cgi?id=211105
<rdar://problem/62475815>

Reviewed by Devin Rousso.

  • UserInterface/Views/ButtonNavigationItem.css:

(.navigation-bar .item.button.text-only:focus):
Add .text-only to the selector to make specificity higher than of the button selector.

  • UserInterface/Views/RadioButtonNavigationItem.css:

(.navigation-bar .item.radio.button.text-only:focus):
Add .text-only to the selector to make specificity higher than of the button selector.

(.navigation-bar .item.radio.button:not(.text-only)): Deleted.
(.navigation-bar.collapsed .item.radio.button:not(.text-only)): Deleted.
Remove dead code. We only have text-only buttons now.

  • UserInterface/Views/RadioButtonNavigationItem.js:

(WI.RadioButtonNavigationItem):
(WI.RadioButtonNavigationItem.prototype.get buttonStyle):
(WI.RadioButtonNavigationItem.prototype.set buttonStyle):

3:15 PM Changeset in webkit [262396] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Remove unused WebContent process sandbox syscall
https://bugs.webkit.org/show_bug.cgi?id=212609
<rdar://problem/63764590>

Reviewed by Per Arne Vollan.

After further testing we have determined that the syscall added in
Bug 206260 is not always enabled. Check if the Sandbox recognizes
the rule before using it.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
3:04 PM Changeset in webkit [262395] by ddkilzer@apple.com
  • 12 edits
    1 add in trunk/Source

Don't use casts to convert between WebCore::DragDestinationAction and {Web,WK}DragDestinationAction types
<https://webkit.org/b/212507>

Reviewed by Darin Adler.

Source/WebCore:

  • page/DragActions.h:

(WebCore::anyDragDestinationAction): Add.
(WebCore::DragDestinationActionAny): Delete.

  • Rename DragDestinationActionAny() to anyDragDestinationAction() to match WebKit style.
  • platform/DragData.h:
  • Update to use anyDragDestinationAction().

Source/WebKit:

  • Shared/API/Cocoa/_WKDragActionsInternal.h: Add.

(WebKit::coreDragDestinationActionMask):

  • Add conversion function to avoid casting.
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::draggingEntered):
(WebKit::WebViewImpl::draggingUpdated):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dragDataForDropSession:dragDestinationAction:]):

  • Make use of coreDragDestinationActionMask() conversion function.
  • Extract dragOperationMask varible for future updates.
  • WebKit.xcodeproj/project.pbxproj:
  • Add _WKDragActionsInternal.h to project.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebDragClient.mm:

(kit):

  • Add conversion function to avoid casting.

(WebDragClient::willPerformDragDestinationAction):

  • Make use of kit() conversion function.
  • WebView/WebView.mm:

(coreDragDestinationActionMask):

  • Add conversion function to avoid casting.

(-[WebView dragDataForSession:client:global:operation:]):
(-[WebView actionMaskForDraggingInfo:]):

  • Make use of coreDragDestinationActionMask() conversion function.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebDragClient.cpp:

(kit):

  • Add conversion function to avoid casting.

(WebDragClient::willPerformDragDestinationAction):

  • Make use of kit() conversion function.
2:25 PM Changeset in webkit [262394] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Glib build after r262391
https://bugs.webkit.org/show_bug.cgi?id=212604

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):

2:02 PM Changeset in webkit [262393] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix build failure in ARMv7k
https://bugs.webkit.org/show_bug.cgi?id=212595

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toThisSlowCase const):

1:27 PM Changeset in webkit [262392] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] JSBigInt::rightTrim can miss |this| pointer and leads to incorrect GC collection
https://bugs.webkit.org/show_bug.cgi?id=212601

Reviewed by Saam Barati.

JSTests:

  • stress/bigint-should-not-be-collected-while-creating.js: Added.

(foo.let.increment.10000n.bar):
(foo):

Source/JavaScriptCore:

This is pretty rare case. But in some optimization level, JSBigInt::rightTrim could store |this| + offset pointer into the stack instead of |this|
and make conservative GC think that |this| JSBigInt is unreachable. We put ensureStillAliveHere(this) to ensure that this is alive.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::rightTrim):

1:05 PM Changeset in webkit [262391] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

Revert r250312
https://bugs.webkit.org/show_bug.cgi?id=212604
<rdar://problem/63779241>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-01
Reviewed by Tim Horton.

r250312 was a step towards a network process singleton.
We aren't there yet, so revert it until we are. There was something trying to keep HSTS storages separate, so let them keep trying.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration setHSTSStorageDirectory:]):
(-[_WKProcessPoolConfiguration hstsStorageDirectory]):

  • UIProcess/LegacyGlobalSettings.h:

(WebKit::LegacyGlobalSettings::setHSTSStorageDirectory): Deleted.
(WebKit::LegacyGlobalSettings::hstsStorageDirectory const): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

12:38 PM Changeset in webkit [262390] by Simon Fraser
  • 13 edits in trunk/Source

Add ENABLE(TOUCH_ACTION_REGIONS) to wrap code that's only relevant for platforms that consult touch-action for event handling
https://bugs.webkit.org/show_bug.cgi?id=212572

Reviewed by Andy Estes.

Source/WebCore:

This will allow for optimizations in event region painting without ambiguity.

  • dom/Document.h:
  • page/Frame.cpp:

(WebCore::Frame::invalidateContentEventRegionsIfNeeded):

  • page/scrolling/ScrollingTreeNode.h:
  • rendering/EventRegion.cpp:

(WebCore::EventRegion::operator== const):
(WebCore::EventRegion::unite):
(WebCore::EventRegion::translate):
(WebCore::EventRegion::dump const):

  • rendering/EventRegion.h:

(WebCore::EventRegion::encode const):
(WebCore::EventRegion::decode):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::maintainsEventRegion const):
(WebCore::RenderLayerBacking::paintDebugOverlays):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Source/WTF:

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
12:35 PM Changeset in webkit [262389] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

x86.rb's LabelReference.x86LoadOperand()'s address operand should be a pointer type.
https://bugs.webkit.org/show_bug.cgi?id=212603

Reviewed by Saam Barati.

The current implementation mistakenly sets the address type to that of the value
being loaded. I encountered this issue when I was trying to do a loadb from a
global address. Because of this bug, the emitted code was trying do a load using
%al (8 byte register) as the pointer to load from. With this fix, it now loads
from %rax.

  • offlineasm/x86.rb:
11:42 AM Changeset in webkit [262388] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] JSValue::toThis should not throw exception
https://bugs.webkit.org/show_bug.cgi?id=212595

Reviewed by Mark Lam.

JSTests:

  • stress/number-proto.js: Added.

(shouldBe):

Source/JavaScriptCore:

Including WebCore code, there are a lot of code which assume JSValue::toThis should not throw an exception.
This assumption was now broken after making JSBigInt allocation graceful for OOM. But for this particular JSValue::toThis case,
we can make it non-throwing code.

This patch makes JSValue::toThis non-throwing code to fix exception-missing debug assertions.
We ensure that BigIntObject can hold BigInt32 (actually, it can already if toObjectSlowCase path is taken).

  • runtime/BigIntObject.cpp:

(JSC::BigIntObject::create):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toThisSlowCase const):

11:21 AM Changeset in webkit [262387] by achristensen@apple.com
  • 2 edits in trunk/Tools

Make CustomDisplayName and DefaultDisplayName API tests fail instead of timing out when something changes
https://bugs.webkit.org/show_bug.cgi?id=212480

This saves time when debugging and running all the tests.

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::checkUntilDisplayNameIs):

11:21 AM Changeset in webkit [262386] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] BigInt operations should handle exception correctly
https://bugs.webkit.org/show_bug.cgi?id=212596

Reviewed by Mark Lam.

Some places miss exception check / explicit scope-release while BigInt operations can now throw an exception.
This patch adds them. They are covered by existing stress tests with Debug build.

  • runtime/Operations.h:

(JSC::compareBigIntToOtherPrimitive):
(JSC::compareBigInt32ToOtherPrimitive):
(JSC::jsInc):
(JSC::jsDec):
(JSC::jsBitwiseNot):

11:20 AM Changeset in webkit [262385] by Alan Coon
  • 1 copy in tags/Safari-610.1.15.1.1

Tag Safari-610.1.15.1.1.

11:10 AM Changeset in webkit [262384] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Install and update don't provide any terminal output
https://bugs.webkit.org/show_bug.cgi?id=212579

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-01
Reviewed by Žan Doberšek.

The show_output option was removed from the process execution routines. We now assume the
output will be displayed, unless the call-site asks gather_output. This change makes
webkit-flatpak more chatty, which is nice during install/update operations.

  • flatpak/flatpakutils.py:

(run_sanitized):
(FlatpakObject.flatpak):
(FlatpakPackage.install):
(FlatpakPackage.update):
(WebkitFlatpak.setup_builddir):
(WebkitFlatpak.run_in_sandbox):

10:58 AM Changeset in webkit [262383] by Caio Lima
  • 4 edits in trunk/JSTests

JSTests/exceptionFuzz/earley-boyer.js fails with early exception thrown.
https://bugs.webkit.org/show_bug.cgi?id=212569

Reviewed by Mark Lam.

This is a temporary fix to avoid flawky results when running
exceptionFuzz tests. Right now, exception handler starts after
function declarations, since they are hoisted. Since function
declarations emit new_func bytecode, those bytecodes can
throw an exception outside expected exception handler.
Embedding them in a function avoid such hoisting to happen.

  • exceptionFuzz/3d-cube.js:
  • exceptionFuzz/date-format-xparb.js:
  • exceptionFuzz/earley-boyer.js:
10:03 AM Changeset in webkit [262382] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

(r261103) [ Mac WK2 ] inspector/page/overrideSetting-ITPDebugModeEnabled.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211791

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:57 AM Changeset in webkit [262381] by commit-queue@webkit.org
  • 7 edits in trunk

Implement ParentNode.prototype.replaceChildren
https://bugs.webkit.org/show_bug.cgi?id=198578

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-01
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-replaceChildren-expected.txt:

Source/WebCore:

Ideally, we can use ContainerNode::replaceAllChildren to implement
this simply but the current of it does not have a path to support
DocumentFragment.

Hence, we call related methods from ParentNode.prototype.replaceChildren directly.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::replaceChildren):

  • dom/ContainerNode.h:
  • dom/ParentNode.idl:
9:30 AM Changeset in webkit [262380] by Chris Dumez
  • 7 edits
    1 add in trunk

ASSERTION FAILURE (r220931): !m_function in ~CompletionHandler() after switch tabs
https://bugs.webkit.org/show_bug.cgi?id=212537
<rdar://problem/63766838>

Reviewed by Alex Christensen.

Source/WebKit:

When WebPage::markAllLayersVolatile(), it would destroy m_pageMarkingLayersAsVolatileCounter,
which may not have called its completion handler yet. As a result, we would hit an assertion
in the CompletionHandler destructor.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::callVolatilityCompletionHandlers):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::cancelMarkLayersVolatile):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::markLayersVolatile):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prepareToSuspend):
(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::cancelMarkAllLayersVolatile):

  • WebProcess/WebProcess.h:

Tools:

Add API test coverage.

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

(TEST):

9:15 AM Changeset in webkit [262379] by clopez@igalia.com
  • 3 edits in trunk/Tools

[EWS] Add a special case for running the layout test step without aborting in case of many failures for WPT tests
https://bugs.webkit.org/show_bug.cgi?id=212381

Reviewed by Jonathan Bedard.

Add a special case for patches uploaded by the bugzilla user that would be used
for prototyping a bot that helps automating the import of WPT tests. For patches
uploaded by this user don't pass the parameters that make the step abort early in
case of many errors, and only run the layout tests inside the WPT import directory.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTests):
(RunWebKitTests.start):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(test_success):
(test_warnings):
(test_parse_results_json_regression):
(test_parse_results_json_flakes):
(test_parse_results_json_flakes_and_regressions):
(test_parse_results_json_with_newlines):
(test_unexpected_error):
(test_failure):
(test_success_wpt_import_bot):
(TestRunWebKitTestsWithoutPatch.test_success):
(TestRunWebKitTestsWithoutPatch.test_failure):
(TestRunWebKit1Tests.test_success):
(TestRunWebKit1Tests.test_failure):

8:18 AM Changeset in webkit [262378] by svillar@igalia.com
  • 9 edits
    2 adds in trunk

[css-flexbox] Tables as flex items should obey the flex container sizing
https://bugs.webkit.org/show_bug.cgi?id=212355

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

For most of the boxes, "width:auto" means use all the available space from your container in the inline
direction. This means that a flex container does not need to do anything in particular to stretch them
in the inline axis. However that is not true for tables because their width mostly depend on the sum of
the sizes of their columns (whichever algorithm is used). That's why the layout code of tables should
check whether or not it has an override for the content logical width which is the way flexbox uses to
stretch flex items (and use that override width).

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::updateLogicalWidth): Stretch till overrideContentLogicalWidth() if needed.

LayoutTests:

Unskipped passing tests and added new expectations for Win and iOS which have
different renderings of some UI components causing a couple of test to fail by
small offsets.

  • TestExpectations: Unskipped table-as-item-narrow-content.html that is passing now.
  • css3/flexbox/flexitem-expected.txt: Updated. All tests passing.
  • gpu-process/TestExpectations: Removed flexitem.html test.
  • platform/ios/TestExpectations: Ditto.
  • platform/ios/css3/flexbox/flexitem-expected.txt: Added.
  • platform/win/TestExpectations: Removed flexitem.html test.
  • platform/win/css3/flexbox/flexitem-expected.txt: Added.
  • platform/wincairo/TestExpectations: Removed flexitem.html test.
7:17 AM Changeset in webkit [262377] by weinig@apple.com
  • 72 edits in trunk

Extended Color: Replace Color constructors taking numeric values with type specific factory functions
https://bugs.webkit.org/show_bug.cgi?id=212576

Reviewed by Tim Horton.

Replaces all remaining implicit and explicit uses of the Color constructors taking numeric
values with explicit calls to makeSimpleColor/makeSimpleColorFromFloats/makeExtendedColor,
giving us a consistent way to create colors. Also addes use constexpr SimpleColors where possible.

Source/WebCore:

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • css/CSSValuePool.cpp:

(WebCore::StaticCSSValuePool::StaticCSSValuePool):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createInnerTextStyle):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::shadowColor const):
(WebCore::CanvasRenderingContext2DBase::setShadow):

  • html/canvas/CanvasStyle.cpp:

(WebCore::CanvasStyle::CanvasStyle):
(WebCore::CanvasStyle::isEquivalentRGBA const):

  • inspector/InspectorOverlay.cpp:

(WebCore::drawOutlinedQuadWithClip):
(WebCore::drawShapeHighlight):
(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::drawPaintRects):
(WebCore::InspectorOverlay::drawBounds):
(WebCore::InspectorOverlay::drawRulers):
(WebCore::InspectorOverlay::drawElementTitle):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::parseColor):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::debugTextShadow):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsBackgroundCSS const):

  • page/DebugPageOverlays.cpp:

(WebCore::touchEventRegionColors):
(WebCore::NonFastScrollableRegionOverlay::drawRect):

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):

  • page/PrintContext.cpp:

(WebCore::PrintContext::spoolAllPagesWithBoundaries):

  • page/linux/ResourceUsageOverlayLinux.cpp:

(WebCore::ResourceUsageOverlay::platformInitialize):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):

  • platform/graphics/Color.cpp:

(WebCore::Color::light const):
(WebCore::Color::dark const):
(WebCore::Color::blendWithWhite const):
(WebCore::Color::colorWithAlphaMultipliedBy const):
(WebCore::Color::colorWithAlphaMultipliedByUsingAlternativeRounding const):
(WebCore::Color::colorWithAlpha const):
(WebCore::Color::colorWithAlphaUsingAlternativeRounding const):
(WebCore::blendWithoutPremultiply):
(WebCore::extendedColorsEqual): Deleted.
(WebCore::Color::tagAsValid): Deleted.

  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::tagAsSemantic):
(WebCore::Color::tagAsValid):
(WebCore::extendedColorsEqual):
(WebCore::Color::decode):
(WebCore::Color::setIsSemantic): Deleted.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::makeExtendedColor):

  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::ExtendedColor):
(): Deleted.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::getDebugBorderInfo const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::contentsLayerDebugBorderColor):
(WebCore::cloneLayerDebugBorderColor):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::drawRepaintIndicator):

  • platform/graphics/ca/TileCoverageMap.cpp:

(WebCore::TileCoverageMap::TileCoverageMap):
(WebCore::TileCoverageMap::update):

  • platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:

(PlatformCALayerWinInternal::drawRepaintCounters):

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::interpolateColorStop):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::Color::Color):

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::nativeImageSinglePixelSolidColor):

  • platform/graphics/cocoa/GraphicsContextCocoa.mm:

(WebCore::colorForMarkerLineStyle):

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::DropShadowFilterOperation::blend):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::colorFromNSColor):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageForLink):

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::colorForGridTileBorder const):

  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageForLink):

  • rendering/PaintInfo.h:

(WebCore::PaintInfo::forcedTextColor const):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintReplaced):
(WebCore::replacementTextRoundedRectPressedColor): Deleted.
(WebCore::replacementTextRoundedRectColor): Deleted.
(WebCore::replacementTextColor): Deleted.
(WebCore::unavailablePluginBorderColor): Deleted.

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):
(WebCore::borderStartEdgeColor): Deleted.
(WebCore::borderEndEdgeColor): Deleted.
(WebCore::borderFillColor): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintDebugOverlays):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::platformActiveSelectionBackgroundColor const):
(WebCore::RenderTheme::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderTheme::platformTextSearchHighlightColor const):
(WebCore::RenderTheme::paintSystemPreviewBadge):
(WebCore::RenderTheme::platformTapHighlightColor const):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::platformFocusRingColor const):

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintCheckboxDecorations):
(WebCore::RenderThemeIOS::paintRadioDecorations):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::RenderThemeIOS::paintSliderTrack):
(WebCore::RenderThemeIOS::paintProgressBar):
(WebCore::paintAttachmentProgress):
(WebCore::paintAttachmentBorder):
(WebCore::RenderThemeIOS::paintSystemPreviewBadge):
(WebCore::RenderThemeIOS::shadowColor const): Deleted.
(WebCore::attachmentBorderColor): Deleted.
(WebCore::attachmentProgressColor): Deleted.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuListButtonDecorations):
(WebCore::titleTextColorForAttachment):
(WebCore::AttachmentLayout::layOutSubtitle):
(WebCore::paintAttachmentIconBackground):
(WebCore::paintAttachmentTitleBackground):
(WebCore::paintAttachmentProgress):
(WebCore::paintAttachmentPlaceholderBorder):
(WebCore::attachmentIconBackgroundColor): Deleted.
(WebCore::attachmentIconBorderColor): Deleted.
(WebCore::attachmentTitleInactiveBackgroundColor): Deleted.
(WebCore::attachmentTitleInactiveTextColor): Deleted.
(WebCore::attachmentSubtitleTextColor): Deleted.
(WebCore::attachmentProgressBarBackgroundColor): Deleted.
(WebCore::attachmentProgressBarFillColor): Deleted.
(WebCore::attachmentProgressBarBorderColor): Deleted.
(WebCore::attachmentPlaceholderBorderColor): Deleted.

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeWin::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeWin::platformActiveSelectionForegroundColor const):
(WebCore::RenderThemeWin::systemColor const):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::paint):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::colorResolvingCurrentColor const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::initialStrokeColor):

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::initialStopColor):
(WebCore::SVGRenderStyle::initialFloodColor):
(WebCore::SVGRenderStyle::initialLightingColor):

  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::stopColorIncludingOpacity const):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationColorFunction::animate):

  • testing/MockPageOverlayClient.cpp:

(WebCore::MockPageOverlayClient::drawRect):

  • testing/cocoa/WebViewVisualIdentificationOverlay.mm:

(-[WebViewVisualIdentificationOverlay initWithWebView:kind:deprecated:]):

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkitColorToWebCoreColor):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _tapHighlightColorForFastClick:]):

  • WebProcess/Inspector/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::showPaintRect):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::paintSnapshotAtSize):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindIndicatorOverlayClientIOS::drawRect):
(WebKit::highlightColor): Deleted.

Source/WebKitLegacy/mac:

  • WebView/WebIndicateLayer.mm:

Source/WebKitLegacy/win:

  • WebView.cpp:

(compositionToUnderlines):

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::makeColor):

  • TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestPDFDocument.mm:

(TestWebKitAPI::TestPDFPage::colorAtPoint const):

7:07 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
6:56 AM Changeset in webkit [262376] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore

[Win] When GraphicsLayerCA::m_uncommittedChanges is initialized with a non-zero value, nothing is painted.
https://bugs.webkit.org/show_bug.cgi?id=168666

Reviewed by Maciej Stachowiak.

When m_uncommittedChanges is initialized with a non-zero value, client().notifyFlushRequired() will not be
called in the first call to noteLayerPropertyChanged(), see https://bugs.webkit.org/show_bug.cgi?id=64808.

Covered by existing tests.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::initialize):

  • platform/graphics/ca/GraphicsLayerCA.h:
6:33 AM Changeset in webkit [262375] by Carlos Garcia Campos
  • 5 edits in trunk/Source

[GTK4] Add printing support
https://bugs.webkit.org/show_bug.cgi?id=212320

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add gtk_dialog_run() to GTK4.

  • platform/gtk/GtkVersioning.h:

(gtk_dialog_run):

Source/WebKit:

Printing API hasn't changed, the only problem was that we were using gtk_dialog_run() and gdk threads deprecated API.

  • UIProcess/API/gtk/WebKitPrintOperation.cpp:

(webkitPrintOperationRunDialog): Remove GTK4 ifdefs.

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

(WebKit::WebPrintOperationGtk::print): Use g_idle_add_full() instead of gdk threads deprecated API.

5:55 AM Changeset in webkit [262374] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit

[GTK4] Wheel events are always handled by the main frame view
https://bugs.webkit.org/show_bug.cgi?id=212593

Reviewed by Adrian Perez de Castro.

It's not possible scroll other scrollable areas with the mouse wheel. This is because we are using the given x,
y delta in the scroll signal as the position. In GTK4 the scroll event doesn't include a position, so we have to
use the last motion event.

  • Shared/NativeWebWheelEvent.h:
  • Shared/gtk/NativeWebWheelEventGtk.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent): Add wheelTicks parameter.

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent): New create function that receives the wheelTicks.

  • Shared/gtk/WebEventFactory.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseScroll): Use the x, y parameters as the delta and take the position from the last motion event.

5:38 AM Changeset in webkit [262373] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK4] Monitor root window to update activity state
https://bugs.webkit.org/show_bug.cgi?id=212581

Reviewed by Adrian Perez de Castro.

To update ActivityState::IsInWindow and ActivityState::WindowIsActive.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(toplevelWindowStateEvent):
(webkitWebViewBaseSetToplevelOnScreenWindow):
(webkitWebViewBaseDispose):
(toplevelWindowIsActiveChanged):
(toplevelWindowStateChanged):
(toplevelWindowRealized):
(toplevelWindowUnrealized):
(webkitWebViewBaseRoot):
(webkitWebViewBaseUnroot):
(webkit_web_view_base_class_init):

5:27 AM Changeset in webkit [262372] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK4] Fix pointer lock in X11
https://bugs.webkit.org/show_bug.cgi?id=212592

Reviewed by Adrian Perez de Castro.

I forgot to forward the motion events for X11 in GTK4.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(MotionEvent::MotionEvent): Add a constructor that receives the positions and state.
(webkitWebViewBaseMotion): Notify the pointer lock manager about the event. Also save the last motion event and
compute the movement delta.

2:24 AM Changeset in webkit [262371] by Carlos Garcia Campos
  • 8 edits in trunk/Source

[GTK4] Make inspector work
https://bugs.webkit.org/show_bug.cgi?id=212321

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add gtk_native_dialog_run() for GTK4.

  • platform/gtk/GtkVersioning.h:

(gtk_native_dialog_run):

Source/WebKit:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRemoveDialog): Added instead of the generic webkitWebViewBaseRemoveChild that has been removed.
(webkitWebViewBaseRemoveWebInspector): Just unparent the inspector view instead of caling webkitWebViewBaseRemoveChild.
(webkitWebViewBaseDispose): Use specific functions to remove the children.
(webkitWebViewBaseSnapshot): Call gtk_widget_snapshot_child() on inspector view if present.
(webkitWebViewBaseRemoveChild): Deleted.

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformSave): Remove GTK4 ifdefs.

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSave): Ditto.

  • UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp:

(webkit_inspector_window_init): Show title buttons in inspector window.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot): Use the texture size instead of the view size, since it's
different when the inspector is attached.

2:21 AM Changeset in webkit [262370] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r262184): fast/forms/implicit-submission.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=212520

Reviewed by Adrian Perez de Castro.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::activateSelectedItem): Return early if the popup has already been closed.

1:59 AM Changeset in webkit [262369] by commit-queue@webkit.org
  • 13 edits in trunk/Source

Rename ResourceResponseBase::isHTTP to isInHTTPFamily
https://bugs.webkit.org/show_bug.cgi?id=208782

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-01
Reviewed by Sam Weinig.

Source/WebCore:

As the comment says, the method name is misleading and the method
is inconsistent with the API of ResourceRequestBase, so rename it
to make it clear the method can be used for both http and https
protocols.

No tests since no change in behavior.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::continueAfterContentPolicy):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::didReceiveResponse):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::isInHTTPFamily const):
(WebCore::ResourceResponseBase::isHTTP const): Deleted.

  • platform/network/ResourceResponseBase.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseMIMEType const):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::externalEntityMimeTypeAllowed):

Source/WebKit:

Adapt to API change.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::buildHTTPHeaders):

Source/WebKitLegacy/win:

Adapt to API change.

  • Plugins/PluginStream.cpp:

(WebCore::PluginStream::startStream):

  • WebURLResponse.cpp:

(WebURLResponse::QueryInterface):
(WebURLResponse::allHeaderFields):
(WebURLResponse::localizedStringForStatusCode):
(WebURLResponse::statusCode):

1:46 AM Changeset in webkit [262368] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] pthread_create() fails with EPERM in the second WebKitWebProcess with sandbox on
https://bugs.webkit.org/show_bug.cgi?id=212380

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-01
Reviewed by Adrian Perez de Castro.

Dereference scmp_arg_cmp before use.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::setupSeccomp):

May 31, 2020:

7:17 PM Changeset in webkit [262367] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Tidy up Source/WebCore/page/DragController.h
https://bugs.webkit.org/show_bug.cgi?id=212584

Reviewed by Anders Carlsson.

Unindent the DragController class by 1 indentation level, to adhere with
<https://webkit.org/code-style-guidelines/#indentation-namespace>. Also, remove
some stray trailing whitespace.

No change in behavior.

  • page/DragController.h:

(WebCore::DragController::mouseIsOverFileInput const):
(WebCore::DragController::numberOfItemsToBeAccepted const):
(WebCore::DragController::setDidInitiateDrag):
(WebCore::DragController::didInitiateDrag const):
(WebCore::DragController::sourceDragOperation const):
(WebCore::DragController::draggingImageURL const):
(WebCore::DragController::setDragOffset):
(WebCore::DragController::dragOffset const):
(WebCore::DragController::dragSourceAction const):
(WebCore::DragController::dragHandlingMethod const):
(WebCore::DragController::documentUnderMouse const):
(WebCore::DragController::dragDestinationActionMask const):
(WebCore::DragController::droppedImagePlaceholders const):
(WebCore::DragController::droppedImagePlaceholderRange const):
(WebCore::DragController::canLoadDataFromDraggingPasteboard const):
(WebCore::DragController::client const):

4:20 PM Changeset in webkit [262366] by dino@apple.com
  • 15 edits
    2 adds in trunk

AutoTrader crashed while browsing search results
https://bugs.webkit.org/show_bug.cgi?id=212461
rdar://60733185

Reviewed by Sam Weinig.

Source/WebCore:

On iOS, when using WebKit1 (UIWebView), CoreAnimation would
call WebGLLayer's display method from a thread that is not
the Web Thread. That method was performing some GL work using
ANGLE, causing a crash.

Since all the WebGLLayer's display method really needs to do
is swap buffers for compositing, the fix is to separate all
the GL operations into a method that can be called after
painting but before compositing. This should also have the added
benefit that by the time CoreAnimation comes to call display
on all the dirty layers, we will have already executed our
expensive GPU work. The total amount of work done on the GPU
is the same, but hopefully it is now all done in WebKit's
paint cycle, rather than when the Window Server is trying
to get CA to composite things.

Covered by a new API test: WebGLPrepareDisplayOnWebThread

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::HTMLCanvasElement):
(WebCore::HTMLCanvasElement::~HTMLCanvasElement):
(WebCore::HTMLCanvasElement::didMoveToNewDocument):
(WebCore::HTMLCanvasElement::removedFromAncestor):

Add or remove the document as a CanvasObserver.

(WebCore::HTMLCanvasElement::needsPreparationForDisplay):

Signals whether this element is the type that needs preparation.

(WebCore::HTMLCanvasElement::prepareForDisplay):

Tell the WebGLRenderingContext it must prepare.

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

(WebCore::WebGLRenderingContextBase::prepareForDisplay):

The WebGLRenderingContext must forward the call
to prepare down to the GraphicsContextGLOpenGL.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):

And the GraphicsContextGLOpenGL forwards the call
into the WebGLLayer.

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer prepareForDisplay]):
(-[WebGLLayer display]):

Split the parts of the display method that deal
with flushing the GL commands, preparing the framebuffer texture,
and swapping the IOSurfaces into a new prepareForDisplay. This
method is invoked at the end of the rendering/layout tasks, leaving
the display method to only tell CoreAnimation about a new buffer
to composite.

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

(WebCore::Document::prepareCanvasesForDisplayIfNeeded):
(WebCore::Document::canvasChanged):
(WebCore::Document::canvasDestroyed):

Keep a set of HTMLCanvasElements that need to
be prepared so we can tell them when they need to prepare.
Do this by becoming a CanvasObserver, thus getting
notified when a canvas has done something that
would cause painting.

  • page/Page.cpp:

(WebCore::Page::doAfterUpdateRendering):

Add a new task that asks the Document to notify
all relevant canvas objects that they should prepare
for display.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLPrepareDisplayOnWebThread.mm: Added.

(-[WebGLPrepareDisplayOnWebThreadDelegate webViewDidFinishLoad:]):
(-[WebGLPrepareDisplayOnWebThreadDelegate webView:shouldStartLoadWithRequest:navigationType:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitLegacy/ios/webgl.html: Added.
12:52 PM Changeset in webkit [262365] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] EME should return more helpful error code during key exchange
https://bugs.webkit.org/show_bug.cgi?id=212535
<rdar://problem/60439979>

Reviewed by Eric Carlson.

Clients have requested that the EME API provide more helpful information when the FairPlay CDM is unable
to provide the requested level of key security. Currently, we reject the update() promise with a generic
"failed" error code. Instead, resolve the promise, but mark the key as "output-restricted" in the key
status map, indicating that the key cannot be used with required level of security.

Drive-by fix: We currently ASSERT() that the callback from removeSessionData() isn't called if the session
is not a PUR session. When calling removeSessionData() on a non-PUR session, call the callback with a generic
"failed" error.

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

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyStatuses const):

11:51 AM Changeset in webkit [262364] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[Cocoa] Transition between encrypted and clear codecs throws error from SourceBuffer.appendBuffer()
https://bugs.webkit.org/show_bug.cgi?id=212550
<rdar://problem/62207260>

Reviewed by Eric Carlson.

Source/WebCore:

CoreMedia returns a different codec 4CC code for "encrypted AVC" than it does for "clear AVC", though
the underlying codec used for both is the same. While CoreMedia does use different codec implementations
for each, it is capable of freely switching between the two, and the codec string used by web developers
for encrypted vs. clear content is identical. So we will treat these two codecs as "the same" as it pertains
to the MSE requirement that codecs contained in new initialization segments are "the same" as previous
ones. Adopt kCMFormatDescriptionExtension_ProtectedContentOriginalFormat, which can query the "original"
codec used for encrypted codec playback.

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

Source/WebCore/PAL:

  • pal/cf/CoreMediaSoftLink.cpp:
  • pal/cf/CoreMediaSoftLink.h:
11:02 AM Changeset in webkit [262363] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[iBooks] Empty pages appear in book
https://bugs.webkit.org/show_bug.cgi?id=212573
<rdar://problem/62912623>

Reviewed by Antti Koivisto.

Source/WebCore:

Do not add a page break for orphan content unless the line does not fit anymore.

Test: fast/multicol/orphans-ignored.html

  • rendering/SimpleLineLayoutPagination.cpp:

(WebCore::SimpleLineLayout::setPageBreakForLine):
(WebCore::SimpleLineLayout::adjustLinePositionsForPagination):

LayoutTests:

  • fast/multicol/orphans-ignored-expected.html: Added.
  • fast/multicol/orphans-ignored.html: Added.
7:56 AM Changeset in webkit [262362] by msaboff@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Consider a Thread Specific Cache for AssemblerBuffers
https://bugs.webkit.org/show_bug.cgi?id=212562

Reviewed by Filip Pizlo.

This patch creates a thread local cache of AssemblerData in the hopes that it will reduce
memory allocation churn. The cache is cleared when a thread is destroyed.
If an AssemblerData is destroyed in another thread, its storage is cached by the
destroying thread.

Made a few changes described below to facilite the swap as well as returning a
clear()'ed AssemblerData back to its original state.

Reviewed by Filip Pizlo.

  • assembler/AssemblerBuffer.cpp:

(JSC::threadSpecificAssemblerData):
(JSC::clearAssembleDataThreadSpecificCache):

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerData::AssemblerData):
(JSC::AssemblerData::operator=):
The copy constructor and assignment operator now perform complete AssemblerBuffer swaps.

(JSC::AssemblerData::takeBufferIfLarger):
A new method that will conditionally copy the enclosed buffer of the argument to "this"
if the argument's buffer is larger than the current buffer of "this".

(JSC::AssemblerData::~AssemblerData):
(JSC::AssemblerData::clear):
The destructor now calls clear which has been changed to reset the buffer to one with
inline capacity.

(JSC::AssemblerBuffer::AssemblerBuffer):
Take the cached out of line buffer if there is one.

(JSC::AssemblerBuffer::~AssemblerBuffer):
Cache the enclosed out of line buffer if it is larger than the currently cached one.

(JSC::AssemblerBuffer::getThreadSpecificAssemblerData):

  • dfg/DFGWorklist.cpp:
  • jit/JITWorklist.cpp:
  • wasm/WasmWorklist.cpp:
7:04 AM WebKitGTK/2.28.x edited by Michael Catanzaro
Propose r259112 (diff)
4:57 AM Changeset in webkit [262361] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK4 build with current GTK

  • MiniBrowser/gtk/BrowserTab.c:

(audioMutedChanged):

3:40 AM Changeset in webkit [262360] by commit-queue@webkit.org
  • 6 edits in trunk

Implement named item condition for images
https://bugs.webkit.org/show_bug.cgi?id=212473

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-31
Reviewed by Maciej Stachowiak.

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-06-expected.txt:

Source/WebCore:

Implement named item condition for images, not only should we
check there are both an id and a name attribute, but also that
the name attribute is non-empty [1].

Behavior matches Chrome and Firefox.

[1] https://html.spec.whatwg.org/multipage/dom.html#dom-document-nameditem-filter

Test: imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-06.html

  • html/HTMLNameCollection.cpp:

(WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):

LayoutTests:

Update test expectation.

  • fast/dom/HTMLDocument/document-special-properties-expected.txt:
1:36 AM Changeset in webkit [262359] by commit-queue@webkit.org
  • 4 edits in trunk

<area> needs to be connected in order to navigate
https://bugs.webkit.org/show_bug.cgi?id=177357

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-31
Reviewed by Maciej Stachowiak.

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/html/semantics/links/following-hyperlinks/activation-behavior.window-expected.txt:

Source/WebCore:

Implement second step of cannot navigate algorithm:
https://html.spec.whatwg.org/#cannot-navigate

Test: web-platform-tests/html/semantics/links/following-hyperlinks/activation-behavior.window.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

1:11 AM Changeset in webkit [262358] by mmaxfield@apple.com
  • 5 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/encoding/single-byte-decoder.html
https://bugs.webkit.org/show_bug.cgi?id=212565
<rdar://problem/63682561>

Unreviewed.

Rebaseline the expected result.

LayoutTests/imported/w3c:

  • web-platform-tests/encoding/single-byte-decoder-expected.txt:

LayoutTests:

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
1:10 AM Changeset in webkit [262357] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

[iPad] REGRESSION(r261940): fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html is failing
https://bugs.webkit.org/show_bug.cgi?id=212564
<rdar://problem/63729887>

Unreviewed.

Setting width=device-width was causing us to clamp the initial-scale to 1, thereby disabling autosizing.

  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html:
  • platform/ipad/TestExpectations:
12:05 AM Changeset in webkit [262356] by mark.lam@apple.com
  • 7 edits in trunk/Source

Change JSC::Config to use storage in WTF::Config instead of its own.
https://bugs.webkit.org/show_bug.cgi?id=212575
<rdar://problem/63796584>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Since Configs must be rounded up to CeilingOnPageSize, this will save us some
memory since the contents of both Configs do not add up to CeilingOnPageSize.

g_jscConfig is now located at g_wtfConfig.spaceForExtensions.

  • runtime/JSCConfig.cpp:

(JSC::Config::disableFreezingForTesting):
(JSC::Config::enableRestrictedOptions):
(JSC::Config::permanentlyFreeze): Deleted.

  • runtime/JSCConfig.h:

(JSC::Config::permanentlyFreeze):
(JSC::Config::isPermanentlyFrozen):
(): Deleted.

  • runtime/Options.cpp:

(JSC::Options::setOptions):

  • tools/JSDollarVM.cpp:

(JSC::functionCallWithStackSize):

Source/WTF:

  • wtf/WTFConfig.h:
Note: See TracTimeline for information about the timeline view.