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

Timeline



May 29, 2018:

11:30 PM Changeset in webkit [232287] by n_wang@apple.com
  • 2 edits in trunk/Source/WebCore

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

Removed redundant null check.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isExpanded const):

9:36 PM Changeset in webkit [232286] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add a version of JSVirtualMachine shrinkFootprint that runs when the VM goes idle
https://bugs.webkit.org/show_bug.cgi?id=186064

Reviewed by Mark Lam.

shrinkFootprint was implemented as:
`
sanitizeStackForVM(this);
deleteAllCode(DeleteAllCodeIfNotCollecting);
heap.collectNow(Synchronousness::Sync);
WTF::releaseFastMallocFreeMemory();
`

However, for correctness reasons, deleteAllCode is implemented to do
work when the VM is idle: no JS is running on the stack. This means
that if shrinkFootprint is called when JS is running on the stack, it
ends up freeing less memory than it could have if it waited to run until
the VM goes idle.

This patch makes it so we wait until idle before doing work. I'm seeing a
10% footprint progression when testing this against a client of the JSC SPI.

Because this is a semantic change in how the SPI works, this patch
adds new SPI named shrinkFootprintWhenIdle. The plan is to move
all clients of the shrinkFootprint SPI to shrinkFootprintWhenIdle.
Once that happens, we will delete shrinkFootprint. Until then,
we make shrinkFootprint do exactly what shrinkFootprintWhenIdle does.

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine shrinkFootprint]):
(-[JSVirtualMachine shrinkFootprintWhenIdle]):

  • API/JSVirtualMachinePrivate.h:
  • runtime/VM.cpp:

(JSC::VM::shrinkFootprintWhenIdle):
(JSC::VM::shrinkFootprint): Deleted.

  • runtime/VM.h:
9:01 PM Changeset in webkit [232285] by n_wang@apple.com
  • 5 edits in trunk

AX: macOS VoiceOver doesn't announce when details element is expanded when using role group
https://bugs.webkit.org/show_bug.cgi?id=180866
<rdar://problem/36074338>

Reviewed by Chris Fleizach.

Source/WebCore:

We should use is<HTMLDetailsElement> to check for the details parent instead
of using the role.

Added test cases to the existing test.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isExpanded const):

LayoutTests:

  • accessibility/mac/details-summary-expected.txt:
  • accessibility/mac/details-summary.html:
8:36 PM Changeset in webkit [232284] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Fix the build
https://bugs.webkit.org/show_bug.cgi?id=186078

Unreviewed build fix.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _denyNextUserMediaRequest]):

Source/WTF:

  • wtf/Platform.h:
5:47 PM Changeset in webkit [232283] by aestes@apple.com
  • 6 edits
    1 move in trunk/Source/WebKit

[Wi-Fi Assertions] Track whether WiFiAssertionHolder should actually hold a Wi-Fi assertion
https://bugs.webkit.org/show_bug.cgi?id=185983
<rdar://problem/40205486>

Reviewed by Tim Horton.

  • Configurations/Network-iOS.entitlements:

Added a needed entitlement.

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

(WebKit::WiFiAssertionHolder::shouldHoldWiFiAssertion const):

Track whether WiFiAssertionHolder should actually hold a Wi-Fi assertion.

  • NetworkProcess/cocoa/WiFiAssertionHolder.mm: Renamed from Source/WebKit/NetworkProcess/cocoa/WiFiAssertionHolder.cpp.

(holdWiFiAssertion):
(releaseWiFiAssertion):
(WebKit::WiFiAssertionHolder::WiFiAssertionHolder):
(WebKit::WiFiAssertionHolder::~WiFiAssertionHolder):

Changed holdWiFiAssertion() and releaseWiFiAssertion() to take the
WiFiAssertionHolder as an argument.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

Added a needed sandbox extension.

  • WebKit.xcodeproj/project.pbxproj:
5:40 PM Changeset in webkit [232282] by caitp@igalia.com
  • 2 edits in trunk/JSTests

[JSTests] update test262 expectations after r232261
https://bugs.webkit.org/show_bug.cgi?id=184267

Reviewed by Saam Barati.

  • test262/expectations.yaml:
5:18 PM Changeset in webkit [232281] by youenn@apple.com
  • 13 edits in trunk

Add a consistency check between URL and CFURL
Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=186057
<rdar://problem/40258457>

Reviewed by Geoff Garen.

It is important that WebCore::URL used in WebCore and CFURL that gets serialized in the network pipe remain consistent.
Otherwise, we will end-up with odd bugs.

We add such a check when creating a CFURL from an URL.
To make things more consistent, we also rely now more on WebCore::URL instead of directly creating a CFURL.

  • platform/URL.h:
  • platform/cf/CFURLExtras.cpp:

(WebCore::isCFURLSameOrigin):

  • platform/cf/CFURLExtras.h:
  • platform/cf/URLCF.cpp:

(WebCore::URL::createCFURL const):

  • platform/mac/URLMac.mm:

(WebCore::URL::createCFURL const):

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::URLWithUserTypedString):

Source/WebKit:

https://bugs.webkit.org/show_bug.cgi?id=186057
<rdar://problem/40258457>

Reviewed by Geoff Garen.

  • Shared/Cocoa/WKNSURLExtras.mm:

(+[NSURL _web_URLWithWTFString:relativeToURL:]):
(urlWithWTFString): Deleted.
(+[NSURL _web_URLWithWTFString:]): Deleted.

Tools:

https://bugs.webkit.org/show_bug.cgi?id=182444
<rdar://problem/37164835>

Reviewed by Geoff Garen.

DRT code expected a non null URL which is no longer the case now.
Updated DRT to remove that assumption.

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::redirectionDestinationForURL):

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/ResourceLoadDelegate.mm:

(-[ResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]):

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

Remove unused WebPage::dummy
https://bugs.webkit.org/show_bug.cgi?id=186068

Patch by Alex Christensen <achristensen@webkit.org> on 2018-05-29
Reviewed by Sam Weinig.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::dummy): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
4:48 PM Changeset in webkit [232279] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

shrinkFootprint needs to request a full collection
https://bugs.webkit.org/show_bug.cgi?id=186069

Reviewed by Mark Lam.

  • runtime/VM.cpp:

(JSC::VM::shrinkFootprint):

4:41 PM Changeset in webkit [232278] by timothy@apple.com
  • 5 edits in trunk/Source/WebCore

Printing does not apply the right colors in all cases.

https://bugs.webkit.org/show_bug.cgi?id=186066
rdar://problem/40274975

Reviewed by Tim Horton.

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::setEmulatedMedia): Call RenderTheme::platformColorsDidChange
to invalidate the color cache.

  • page/FrameView.cpp:

(WebCore::FrameView::adjustMediaTypeForPrinting): Ditto.

  • page/Page.cpp:

(WebCore::Page::defaultAppearance const): Added. Use default when not screen.

  • page/Page.h:

(WebCore::Page::defaultAppearance const): Deleted.

4:28 PM Changeset in webkit [232277] by pvollan@apple.com
  • 6 edits in trunk/Source

Create typedef for HashMap<PlatformDisplayID, ScreenProperties>
https://bugs.webkit.org/show_bug.cgi?id=186056

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests, no change in behavior.

  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenProperties):
(WebCore::getScreenProperties):
(WebCore::setScreenProperties):

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
3:59 PM Changeset in webkit [232276] by jiewen_tan@apple.com
  • 8 edits in trunk/Source/WebKit

Tighten sandbox profiles for Networking Processes to restrict accesses to macOS/iOS Keychains
https://bugs.webkit.org/show_bug.cgi?id=162948
<rdar://problem/40558894>

Reviewed by Brent Fulgham.

The patch conditionally tighten sandbox profiles for Networking Processes to remove Keychain related
permissions and some security permisssions that are not needed. Also it conditionally remove the
Process Privilege for Networking Processes to access Credentials.

In addition, it remove process privilege assertions for SecItemShim as it is supposed to work in processes
that don't have privileges to access Keychains and delegate all operations to UI Process via IPC. Also,
the patch disables SecItemShim for Networking Process conditionally.

  • Configurations/Network-iOS.entitlements:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Shared/mac/SecItemShim.cpp:

(WebKit::sendSecItemRequest):
(WebKit::webSecItemCopyMatching):
(WebKit::webSecItemAdd):
(WebKit::webSecItemUpdate):
(WebKit::webSecItemDelete):
(WebKit::initializeSecItemShim):

3:14 PM Changeset in webkit [232275] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Store 0-lifetime stylesheets / scripts into the disk cache for faster history navigations
https://bugs.webkit.org/show_bug.cgi?id=186060
<rdar://problem/40627270>

Reviewed by Geoffrey Garen.

Tweak our storeUnconditionallyForHistoryNavigation logic to match resources whose priority
is High, not just VeryHigh. Per logic in CachedResource::defaultPriorityForResourceType(Type),
This now matches stylesheets and scripts in addition to main resources.

I found that in case of a history navigation to apple.com, a significant number of scripts
and stylesheets had to be loaded from the network because our previous heuristic decided
not to store them (because their priority was not VeryHigh and because their max-age was
0).

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):

2:29 PM Changeset in webkit [232274] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Tools

Export changes to web-platform-test as part of the webkit-patch upload workflow
https://bugs.webkit.org/show_bug.cgi?id=184914

Patch by Brendan McLoughlin <brendan@bocoup.com> on 2018-05-29
Reviewed by Youenn Fablet.

  • Scripts/webkitpy/tool/commands/upload.py:

(Upload):
(CreateBug.execute):
(WPTChangeExport):

  • Scripts/webkitpy/tool/steps/init.py:
  • Scripts/webkitpy/tool/steps/wptchangeexport.py: Added.

(WPTChangeExport):
(WPTChangeExport.options):
(WPTChangeExport.run):

  • Scripts/webkitpy/w3c/common.py:
  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter):
(WebPlatformTestExporter.init):
(WebPlatformTestExporter.username):
(WebPlatformTestExporter.token):
(WebPlatformTestExporter._github):
(WebPlatformTestExporter._wpt_fork_branch_github_url):
(WebPlatformTestExporter._wpt_fork_remote):
(WebPlatformTestExporter._wpt_fork_push_url):
(WebPlatformTestExporter._git):
(WebPlatformTestExporter._branch_name):
(WebPlatformTestExporter._public_branch_name):
(WebPlatformTestExporter._wpt_patch):
(WebPlatformTestExporter.has_wpt_changes):
(WebPlatformTestExporter._find_filename):
(WebPlatformTestExporter._is_ignored_file):
(WebPlatformTestExporter._strip_ignored_files_from_diff):
(WebPlatformTestExporter.write_git_patch_file):
(WebPlatformTestExporter._prompt_for_token):
(WebPlatformTestExporter._prompt_for_username):
(WebPlatformTestExporter._ensure_username_and_token):
(WebPlatformTestExporter._validate_and_save_token):
(WebPlatformTestExporter.create_branch_with_patch):
(WebPlatformTestExporter.push_to_wpt_fork):
(WebPlatformTestExporter.make_pull_request):
(WebPlatformTestExporter.delete_local_branch):
(WebPlatformTestExporter.create_upload_remote_if_needed):
(WebPlatformTestExporter.do_export):
(parse_args):
(TestExporter): Deleted.
(TestExporter.init): Deleted.
(TestExporter._ensure_wpt_repository): Deleted.
(TestExporter._fetch_wpt_repository): Deleted.
(TestExporter._ensure_new_branch_name): Deleted.
(TestExporter.download_and_commit_patch): Deleted.
(TestExporter.clean): Deleted.
(TestExporter.create_branch_with_patch): Deleted.
(TestExporter.push_to_wpt_fork): Deleted.
(TestExporter.make_pull_request): Deleted.
(TestExporter.create_wpt_pull_request): Deleted.
(TestExporter.delete_local_branch): Deleted.
(TestExporter.create_git_patch): Deleted.
(TestExporter.create_upload_remote): Deleted.
(TestExporter.do_export): Deleted.

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.MockGit):
(TestExporterTest.MockGit.create_patch):
(TestExporterTest.test_export):
(TestExporterTest.test_export_with_specific_branch):
(TestExporterTest):
(TestExporterTest.test_export_interactive_mode):
(TestExporterTest.test_export_invalid_token):
(TestExporterTest.test_export_wrong_token):
(TestExporterTest.test_has_wpt_changes):
(TestExporterTest.test_has_no_wpt_changes_for_no_diff):
(TestExporterTest.test_ignore_changes_to_expected_file):

2:15 PM Changeset in webkit [232273] by Caio Lima
  • 6 edits
    8 adds in trunk

[ESNext][BigInt] Implement support for "<" and ">" relational operation
https://bugs.webkit.org/show_bug.cgi?id=185379

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-greater-than-general.js: Added.
  • stress/big-int-greater-than-jit.js: Added.
  • stress/big-int-greater-than-order-of-evaluation.js: Added.
  • stress/big-int-greater-than-wrapped-values.js: Added.
  • stress/big-int-less-than-general.js: Added.
  • stress/big-int-less-than-jit.js: Added.
  • stress/big-int-less-than-order-of-evaluation.js: Added.
  • stress/big-int-less-than-wrapped-values.js: Added.

Source/JavaScriptCore:

This patch is changing the jsLess` operation to follow the
semantics of Abstract Relational Comparison[1] that supports BigInt.
For that, we create 2 new helper functions bigIntCompareLess and
toPrimitiveNumeric that considers BigInt as a valid type to be
compared.

[1] - https://tc39.github.io/proposal-bigint/#sec-abstract-relational-comparison

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::unequalSign):
(JSC::JSBigInt::absoluteGreater):
(JSC::JSBigInt::absoluteLess):
(JSC::JSBigInt::compare):
(JSC::JSBigInt::absoluteCompare):

  • runtime/JSBigInt.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::isPrimitive const):

  • runtime/Operations.h:

(JSC::bigIntCompareLess):
(JSC::toPrimitiveNumeric):
(JSC::jsLess):

1:30 PM Changeset in webkit [232272] by rniwa@webkit.org
  • 5 edits in trunk/Source/WebCore

iOS WK1: Occasional crash in sanitizedMarkupForFragmentInDocument
https://bugs.webkit.org/show_bug.cgi?id=186011

Reviewed by David Kilzer.

The crash was caused by the HTML parser in sanitizedMarkupForFragmentInDocument yielding in the web thread
when _WebThreadLock() sets webThreadShouldYield to true in the main thread.

No new tests. This is occasionally caught by existing tests.

  • editing/markup.cpp:

(WebCore::createPageForSanitizingWebContent): Fixed the bug by making the HTML parser never yield.
Also release-assert that the body is never null here.
(WebCore::sanitizedMarkupForFragmentInDocument): Removed superflous call to WTFMove since appendChild
takes a reference, not a Ref.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage): Deployed the same fix.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::insertDataSynchronously): Added.

  • loader/DocumentWriter.h:
1:04 PM Changeset in webkit [232271] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[Baseline] Merge loading functionalities
https://bugs.webkit.org/show_bug.cgi?id=185907

Reviewed by Saam Barati.

This patch unifies emitXXXLoad functions in 32bit and 64bit.

  • jit/JITInlines.h:

(JSC::JIT::emitDoubleGetByVal):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitIntTypedArrayGetByVal):
(JSC::JIT::emitFloatTypedArrayGetByVal):
Define register usage first, and share the same code in 32bit and 64bit.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitSlow_op_put_by_val):
Now C-stack is always enabled in JIT platform and temporary registers increases from 5 to 6 in x86.
We can remove this special handling.

(JSC::JIT::emitContiguousLoad): Deleted.
(JSC::JIT::emitDoubleLoad): Deleted.
(JSC::JIT::emitArrayStorageLoad): Deleted.

12:27 PM Changeset in webkit [232270] by Fujii Hironori
  • 6 edits in trunk/Tools

[Win][MiniBrowser] Move WK1 specific code from Common.cpp to MiniBrowser.cpp
https://bugs.webkit.org/show_bug.cgi?id=186029

Reviewed by Alex Christensen.

This is a sub task of Bug 184770.

  • MiniBrowser/win/Common.cpp:

(ToggleMenuItem): Extracted WK1 specific code to MiniBrowser::setPreference.
(Caches): Call MiniBrowser::updateStatistics instead of updateStatistics.
(AbortProc): Moved to MiniBrowser.cpp.
(getPrinterDC): Ditto.
(initDocStruct): Ditto.
(PrintView): Ditto.
(ToggleMenuFlag): Ditto.
(setWindowText): Ditto.
(updateStatistics): Ditto.

  • MiniBrowser/win/MainWindow.cpp:

(MainWindow::WndProc): Call MiniBrowser::print instead of PrintView.

  • MiniBrowser/win/MiniBrowser.cpp:

(AbortProc): Moved from Common.cpp.
(getPrinterDC): Moved from Common.cpp.
(initDocStruct): Moved from Common.cpp.
(setWindowText): Moved from Common.cpp.
(MiniBrowser::print): Renamed from PrintView of Common.cpp.
(MiniBrowser::updateStatistics): Renamed from updateStatistics of Common.cpp.
(MiniBrowser::setPreference): Extracted from ToggleMenuItem of Common.cpp.

  • MiniBrowser/win/MiniBrowser.h: Add method declarations.
  • MiniBrowser/win/MiniBrowserWebHost.cpp: Removed duplicated IWebFramePtr typedef.
11:56 AM Changeset in webkit [232269] by sbarati@apple.com
  • 13 edits in trunk

JSC should put bmalloc's scavenger into mini mode
https://bugs.webkit.org/show_bug.cgi?id=185988

Reviewed by Michael Saboff.

Source/bmalloc:

We expose an API for putting bmalloc into mini mode. All that means now
is that we'll run the scavenger more aggressively.

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::enableMiniMode):
(bmalloc::Scavenger::threadRunLoop):

  • bmalloc/Scavenger.h:
  • bmalloc/Sizes.h:
  • bmalloc/bmalloc.cpp:

(bmalloc::api::enableMiniMode):

  • bmalloc/bmalloc.h:

Source/JavaScriptCore:

When we InitializeThreading, we'll now enable bmalloc's mini mode
if the VM is in mini mode. This is an 8-10% progression on the footprint
at end score in run-testmem, making it a 4-5% memory score progression.
It's between a 0-1% regression in its time score.

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

Source/WTF:

  • wtf/FastMalloc.cpp:

(WTF::fastEnableMiniMode):

  • wtf/FastMalloc.h:

Tools:

This patch makes it so that we turn off the JIT when running run-testmem
that way we make JSC use its mini mode.

  • Scripts/run-testmem:
11:32 AM Changeset in webkit [232268] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Avoid unnecessary String allocation in isPublicSuffix(const String&)
https://bugs.webkit.org/show_bug.cgi?id=186054

Reviewed by Sam Weinig.

Avoid unnecessary String allocation in isPublicSuffix(const String&) by calling directly
the decodeHostName() overload taking in a NSString*. This overload returns a NSString*,
which is what we need. We would previously call the overloading taking in a String, which
would return a String, which we would have to convert back to a NSString*.

  • platform/mac/PublicSuffixMac.mm:

(WebCore::isPublicSuffix):

11:24 AM Changeset in webkit [232267] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Do even fewer allocations in URL host operations
https://bugs.webkit.org/show_bug.cgi?id=186003

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

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::primaryDomain):

  • loader/ResourceLoadStatistics.h:
  • platform/URL.cpp:

(WebCore::URL::hostIsIPAddress):

  • platform/URL.h:
  • platform/mac/URLMac.mm:

(WebCore::URL::hostIsIPAddress):

  • platform/soup/URLSoup.cpp:

(WebCore::URL::hostIsIPAddress):

11:10 AM Changeset in webkit [232266] by jeffm@apple.com
  • 4 edits in trunk/Source/WebKit

Expose additional WKMenuItemIdentifier strings
https://bugs.webkit.org/show_bug.cgi?id=186041

Reviewed by Dan Bernstein.

Expose identifiers for media-related menu items.

  • UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm:

Define new identifiers.

  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:

Declare new identifiers.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::menuItemIdentifier):
Map to new identifiers.

11:10 AM Changeset in webkit [232265] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Don't assert on m_actionsStart when setting actions on DFA nodes
https://bugs.webkit.org/show_bug.cgi?id=185979
<rdar://problem/39669458>

Patch by Tadeu Zagallo <Tadeu Zagallo> on 2018-05-29
Reviewed by Geoffrey Garen.

DFANode::setActions is called immediately after the node is created, and once again to set
the actions of catch-all regular expressions (.*) on the root node. That works because
m_actionsStart is initially 0, since the root was the first node to be created, but may fail
after minimizing the DFA, when the root may no longer be the first node, and therefore
m_actionsStart would not be 0, even if there are no actions attached to that node.

Source/WebCore:

Test: http/tests/contentextensions/root-actions.html

  • contentextensions/DFANode.h:

LayoutTests:

  • http/tests/contentextensions/root-actions-expected.txt: Added.
  • http/tests/contentextensions/root-actions.html: Added.
  • http/tests/contentextensions/root-actions.html.json: Added.
10:56 AM Changeset in webkit [232264] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

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

_BitScanReverse64 is available only in X86_64 and ARM.

  • wtf/MathExtras.h:

(WTF::clz64):

10:31 AM Changeset in webkit [232263] by ggaren@apple.com
  • 5 edits in trunk/Source/WebKit

Removed some unused WebSQL trackers
https://bugs.webkit.org/show_bug.cgi?id=186026

Reviewed by Dan Bernstein.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • WebProcess/WebProcess.cpp:

(WebKit::m_nonVisibleProcessCleanupTimer):
(WebKit::m_webSQLiteDatabaseTracker): Deleted.

  • WebProcess/WebProcess.h:
10:28 AM Changeset in webkit [232262] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

Fixed the bmalloc build
https://bugs.webkit.org/show_bug.cgi?id=186025

Reviewed by Sam Weinig.

  • bmalloc.xcodeproj/project.pbxproj: Link Foundation because the

gigacage check needs it.

9:56 AM Changeset in webkit [232261] by caitp@igalia.com
  • 4 edits
    1 copy in trunk

[JSC] Fix Array.prototype.concat fast case when single argument is Proxy
https://bugs.webkit.org/show_bug.cgi?id=184267

Reviewed by Saam Barati.

JSTests:

  • stress/array-concat-fast-spread-proxy.js: Copied from JSTests/stress/array-concat-spread-proxy.js.

(arrayEq):
(catch):

  • stress/array-concat-spread-proxy.js:

Source/JavaScriptCore:

Before this patch, the fast case for Array.prototype.concat was taken if
there was a single argument passed to the function, which is either a
non-JSCell, or an ObjectType JSCell not marked as concat-spreadable.
This incorrectly prevented Proxy objects from being spread when
they were the only argument passed to A.prototype.concat(), violating ECMA-262.

  • builtins/ArrayPrototype.js:

(concat):

9:50 AM Changeset in webkit [232260] by pvollan@apple.com
  • 6 edits in trunk/Source/WebKit

Follow-up fixes after r228907.
https://bugs.webkit.org/show_bug.cgi?id=183338

Reviewed by Brent Fulgham.

Add screen properties to the WebProcess creation parameters, instead of sending
them in a message to the WebProcess just after starting it up.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

9:19 AM Changeset in webkit [232259] by n_wang@apple.com
  • 8 edits in trunk

AX: setValue on contenteditable should preserve whitespace
https://bugs.webkit.org/show_bug.cgi?id=185897

Reviewed by Ryosuke Niwa.

Source/WebCore:

We should mimic typing when setting value to a contenteditable from accessibility
instead of mutating the DOM by using setInnerText.

Updated tests to cover this change.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setValue):

LayoutTests:

  • accessibility/mac/AOM-event-accessiblesetvalue-expected.txt:
  • accessibility/mac/AOM-event-accessiblesetvalue.html:
  • accessibility/mac/set-value-editable-types-expected.txt:
  • accessibility/mac/set-value-editable-types.html:
9:12 AM Changeset in webkit [232258] by sihui_liu@apple.com
  • 4 edits in trunk

Unable to remove IndexedDB Databases with Cocoa API removeDataOfTypes
https://bugs.webkit.org/show_bug.cgi?id=185835
<rdar://problem/39142257>

Reviewed by Chris Dumez.

Source/WebKit:

Fix a wrong if condition: databases should be closed and deleted if websiteDataTypes contains
WebsiteDataType::IndexedDBDatabases.

  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::deleteWebsiteDataForOrigins):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:

(TEST):

8:19 AM Changeset in webkit [232257] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Miscellaneous fixes to ensure no assertion in LayoutContext::layout
https://bugs.webkit.org/show_bug.cgi?id=186052

Reviewed by Antti Koivisto.

With this patch, LayoutContext::layout() does not assert on <html><body><div></div></body></html> anymore.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::initializeRoot): New context root is always a layout root.

  • layout/LayoutContext.h:
  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBoxInformationIfNeeded):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const): we need computed margin/border/padding for width computation

  • layout/displaytree/DisplayBox.cpp: Add clone() method to be able to carry over the 'hasValid*' bits.

(WebCore::Display::Box::Style::Style):
(WebCore::Display::Box::borderBox const):
(WebCore::Display::Box::contentBox const):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::Rect::operator LayoutRect const):
(WebCore::Display::Box::setSize):
(WebCore::Display::Box::setHasValidMargin):
(WebCore::Display::Box::setHasValidBorder):
(WebCore::Display::Box::setHasValidPadding):
(WebCore::Display::Box::Rect::setHasValidPosition):
(WebCore::Display::Box::Rect::setHasValidSize):
(WebCore::Display::Box::Rect::setSize):
(WebCore::Display::Box::Rect::clone const):
(WebCore::Display::Box::setMargin):
(WebCore::Display::Box::setBorder):
(WebCore::Display::Box::setPadding):
(WebCore::Display::Box::Rect::Rect): Deleted.

8:00 AM Changeset in webkit [232256] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

[Extra zoom mode] "Significant area painted" rendering progress event is rarely fired
https://bugs.webkit.org/show_bug.cgi?id=186042
<rdar://problem/40604182>

Reviewed by Tim Horton.

Source/WebCore:

Makes a minor tweak to the size of the relevant view rect in extra zoom mode, such that it's no wider than the
visible content rect. Previously, the width of this rect has hard-coded to a value optimized for macOS (980),
which makes it difficult for content laid out at device width in extra zoom mode to cover a significant portion
of the relevant view rect.

Test: RenderingProgressTests.FirstPaintWithSignificantArea

  • page/Page.cpp:

(WebCore::relevantViewRect):

Tools:

Adds a new API test to check that the "significant area painting" rendering milestone is dispatched when a
significant portion of the page has been painted before document load is finished.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/paint-significant-area-milestone.html: Added.
  • TestWebKitAPI/Tests/ios/RenderingProgressTests.mm: Added.

(-[MissingResourceSchemeHandler webView:stopURLSchemeTask:]):
(-[MissingResourceSchemeHandler webView:startURLSchemeTask:]):
(-[RenderingProgressHandler initWithHandler:]):
(-[RenderingProgressHandler _webView:renderingProgressDidChange:]):
(TEST):

4:59 AM Changeset in webkit [232255] by graouts@webkit.org
  • 19 edits in trunk

[Web Animations] Handle relative length units
https://bugs.webkit.org/show_bug.cgi?id=186047

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Record WPT test progressions.

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

Source/WebCore:

In order to correctly handle relative units, such as "em", "vw" and "vh", we need to do two things.

First, because we need to apply the cascade to correctly compute relative lengths, we need to delay the computation of
"blending keyframes" to when we have both keyframes data and a valid target. This also means that we need to reset blending
keyframes when the target changes. As a result, old call sites of updateBlendingKeyframes() have been replaced by a call to
m_blendingKeyframes.clear() and the method now gets called as part of apply() with the RenderStyle of the targeted element
as a parameter.

Second, and as a result of the first change, we need to update the accelerated animation state based on animation
progress rather than when calling specific methods, such as Animation.play() and Animation.pause(), since blending
keyframes may not be available at those more specific call sites. We now have a new updateAcceleratedAnimationState()
method that gets called as part of apply(). We also rename animationPlayStateDidChange() to animationSuspensionStateDidChange()
since this method was specific to suspension and had a confusing name.

  • animation/AnimationEffectReadOnly.h: Rename animationPlayStateDidChange() to animationSuspensionStateDidChange().
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::getKeyframes): Fix a crash that revealed itself after other changes in this patch. We would later
call into ComputedStyleExtractor::animationSuspensionStateDidChange() and this would yield an assertion because we'd call potentially
call it with a custom CSS property.
(WebCore::KeyframeEffectReadOnly::processKeyframes): Reset blending keyframes instead of calling updateBlendingKeyframes() since
blending keyframes is now performed asynchronously upon style resolution.
(WebCore::KeyframeEffectReadOnly::updateBlendingKeyframes): Take the target's RenderStyle as a parameter and use it to reset the
associated StyleResolver's state, just like we do in StyleResolver::keyframeStylesForAnimation(), so that the CSS cascade is correctly
accounted for when computing values using relative length units. Since blending keyframes can now be computed several times for a
given set of keyframes, since the effect's target may change, we also need to create a copy of the MutableStyleProperties to pass
to StyleRuleKeyframe::create().
(WebCore::KeyframeEffectReadOnly::setTarget): Reset blending keyframes instead of calling updateBlendingKeyframes() since
blending keyframes is now performed asynchronously upon style resolution.
(WebCore::KeyframeEffectReadOnly::apply): Update blending keyframes and the accelerated animation state.
(WebCore::KeyframeEffectReadOnly::getAnimatedStyle): Make sure we have blending keyframes with a call to updateBlendingKeyframes()
in case the animation hasn't naturally progressed when this method is called.
(WebCore::KeyframeEffectReadOnly::setAnimatedPropertiesInStyle): Make sure we have blending keyframes with a call to
updateBlendingKeyframes() in case the animation hasn't naturally progressed when this method is called.
(WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState): Account for the animation's local time and play state to update
the accelerated animation state.
(WebCore::KeyframeEffectReadOnly::addPendingAcceleratedAction): Record the last accelerated action in a member variable which we can
use to determine if we're running accelerated accounting for uncommited changes.
(WebCore::KeyframeEffectReadOnly::animationDidSeek): Only record an AcceleratedAction::Seek action if we're already running accelerated.
(WebCore::KeyframeEffectReadOnly::animationSuspensionStateDidChange): Only record an AcceleratedAction::Pause or AcceleratedAction::Play
action if we're already running accelerated.
(WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions): Ensure we clone and clear the list of accelerated actions and check that
we have any cloned actions before proceeding any further. Then we can stop accounting for m_startedAccelerated since the list of accelerated
actions already account for animation state changes.
(WebCore::KeyframeEffectReadOnly::animationPlayStateDidChange): Deleted.

  • animation/KeyframeEffectReadOnly.h:

(WebCore::KeyframeEffectReadOnly::isRunningAccelerated const): Account for the m_lastRecordedAcceleratedAction to identify whether we're running.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::play): Stop calling animationPlayStateDidChange() directly since the accelerated animation state is now updated when
the animation's effect is applied.
(WebCore::WebAnimation::pause): Stop calling animationPlayStateDidChange() directly since the accelerated animation state is now updated when
the animation's effect is applied.
(WebCore::WebAnimation::resolve): Make sure we update the finished state prior to applying the animation's effect since the play state can
change when updating the finished state and KeyframeEffectReadOnly::updateAcceleratedAnimationState(), which is called when calling into
KeyframeEffectReadOnly::apply(), relies on it to correctly update the accelerated animation state.
(WebCore::WebAnimation::setSuspended): Rename animationPlayStateDidChange() to animationSuspensionStateDidChange().

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::setNewStateWithElement): Add a new public method to reset a StyleResolver's state such that we can call it when creating
blending keyframes for JS-originated animations just like we do when creating blending keyframes for CSS Animations in keyframeStylesForAnimation().
(WebCore::StyleResolver::keyframeStylesForAnimation): Use the new setNewStateWithElement() method.

  • css/StyleResolver.h:

LayoutTests:

Record WPT test progressions and updated failures.

  • 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:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
1:45 AM Changeset in webkit [232254] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] Update "qtdemux: Clarify field name about stream-encryption-system" patch
https://bugs.webkit.org/show_bug.cgi?id=186040

Source/WebCore:

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-29
Reviewed by Xabier Rodriguez-Calvar.

s/avalaible-stream-encryption-systems/available-stream-encryption-systems/g

Tests: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-*

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::extractEventsAndSystemsFromMessage):

Tools:

The patch we merge contained a type and was merged in upstream GStreamer fixing that
(s/avalaible/available/).

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-29
Reviewed by Xabier Rodriguez-Calvar.

  • gstreamer/patches/gst-plugins-good-0003-qtdemux-Clarify-field-name-about-stream-encryption-s.patch:

May 28, 2018:

11:43 PM Changeset in webkit [232253] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] JSBigInt::digitDiv has undefined behavior which causes test failures
https://bugs.webkit.org/show_bug.cgi?id=186022

Reviewed by Darin Adler.

digitDiv performs Value64Bit >> 64 / Value32Bit >> 32, which is undefined behavior. And zero mask
creation has an issue (s should be casted to signed one before negating). They cause test failures
in non x86 / x86_64 environments. x86 and x86_64 work well since they have a fast path written
in asm.

This patch fixes digitDiv by carefully avoiding undefined behaviors. We mask the left value of the
rshift with digitBits - 1, which makes digitBits 0 while it keeps 0 <= n < digitBits values.
This makes the target rshift well-defined in C++. While produced value by the rshift covers 0 <= s < 64 (32
in 32bit envirnoment) cases, this rshift does not shift if s is 0. sZeroMask clears the value
if s is 0, so that s == 0 case is also covered. Note that s == 64 never happens since divisor
is never 0 here. We add assertion for that. We also fixes sZeroMask calculation.

This patch also fixes naming convention for constant values.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::digitMul):
(JSC::JSBigInt::digitDiv):

  • runtime/JSBigInt.h:
8:46 PM Changeset in webkit [232252] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

Add an API test to check process privilege when using Cookie API
https://bugs.webkit.org/show_bug.cgi?id=185406

Reviewed by Geoffrey Garen.

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

7:40 PM Changeset in webkit [232251] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::Rect::operator LayoutRect const):

1:39 PM Changeset in webkit [232250] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Add Rect interface to Display::Box
https://bugs.webkit.org/show_bug.cgi?id=186019

Reviewed by Antti Koivisto.

Having a dedicated Rect class and moving the geometry invalidation to it enables us to call
displayBox.contentBox().left() even when the widht/height are not computed yet.
Also having Rect with top/left/bottom/right interface is more aligned with the rest of the layout code than x/y/maxX/maxY.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::contentHeightForFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition):

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::marginBox const):
(WebCore::Display::Box::borderBox const):
(WebCore::Display::Box::paddingBox const):
(WebCore::Display::Box::contentBox const):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::Rect::invalidateTop):
(WebCore::Display::Box::Rect::invalidateLeft):
(WebCore::Display::Box::Rect::invalidateWidth):
(WebCore::Display::Box::Rect::invalidateHeight):
(WebCore::Display::Box::Rect::hasValidPosition const):
(WebCore::Display::Box::Rect::hasValidSize const):
(WebCore::Display::Box::Rect::hasValidGeometry const):
(WebCore::Display::Box::rect const):
(WebCore::Display::Box::top const):
(WebCore::Display::Box::left const):
(WebCore::Display::Box::bottom const):
(WebCore::Display::Box::right const):
(WebCore::Display::Box::topLeft const):
(WebCore::Display::Box::bottomRight const):
(WebCore::Display::Box::size const):
(WebCore::Display::Box::width const):
(WebCore::Display::Box::height const):
(WebCore::Display::Box::setTopLeft):
(WebCore::Display::Box::setTop):
(WebCore::Display::Box::setLeft):
(WebCore::Display::Box::setWidth):
(WebCore::Display::Box::setHeight):
(WebCore::Display::Box::Rect::invalidatePosition):
(WebCore::Display::Box::Rect::setHasValidPosition):
(WebCore::Display::Box::Rect::Rect):
(WebCore::Display::Box::Rect::top const):
(WebCore::Display::Box::Rect::left const):
(WebCore::Display::Box::Rect::bottom const):
(WebCore::Display::Box::Rect::right const):
(WebCore::Display::Box::Rect::topLeft const):
(WebCore::Display::Box::Rect::bottomRight const):
(WebCore::Display::Box::Rect::size const):
(WebCore::Display::Box::Rect::width const):
(WebCore::Display::Box::Rect::height const):
(WebCore::Display::Box::Rect::setTopLeft):
(WebCore::Display::Box::Rect::setTop):
(WebCore::Display::Box::Rect::setLeft):
(WebCore::Display::Box::Rect::setWidth):
(WebCore::Display::Box::Rect::setHeight):
(WebCore::Display::Box::Rect::shiftLeftTo):
(WebCore::Display::Box::Rect::shiftRightTo):
(WebCore::Display::Box::Rect::shiftTopTo):
(WebCore::Display::Box::Rect::shiftBottomTo):
(WebCore::Display::Box::Rect::expand):
(WebCore::Display::Box::invalidateTop): Deleted.
(WebCore::Display::Box::invalidateLeft): Deleted.
(WebCore::Display::Box::invalidateWidth): Deleted.
(WebCore::Display::Box::invalidateHeight): Deleted.
(WebCore::Display::Box::hasValidPosition const): Deleted.
(WebCore::Display::Box::hasValidSize const): Deleted.
(WebCore::Display::Box::hasValidGeometry const): Deleted.
(WebCore::Display::Box::invalidatePosition): Deleted.
(WebCore::Display::Box::setHasValidPosition): Deleted.

11:56 AM Changeset in webkit [232249] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Add formatting context testing codepath in FrameViewLayoutContext
https://bugs.webkit.org/show_bug.cgi?id=186036

Reviewed by Antti Koivisto.

This is to verify the formatting context layout correctness.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::LayoutContext):
(WebCore::Layout::LayoutContext::initializeRoot):

  • layout/LayoutContext.h:

(WebCore::Layout::LayoutContext::displayBoxForLayoutBox const):

  • page/FrameViewLayoutContext.cpp:

(WebCore::layoutUsingFormattingContext):
(WebCore::FrameViewLayoutContext::layout):

10:55 AM Changeset in webkit [232248] by Alan Bujtas
  • 4 edits
    1 add in trunk/Source/WebCore

[LFC] Add layout tree verification.
https://bugs.webkit.org/show_bug.cgi?id=186018

Reviewed by Antti Koivisto.

Compare layout and render tree geometry and output the mismtaching rectangles.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj: Add missing headers and make then private.
  • layout/LayoutContext.h:
  • layout/Verification.cpp: Added.

(WebCore::Layout::outputMismatchedBoxInformationIfNeeded):
(WebCore::Layout::verifySubtree):
(WebCore::Layout::LayoutContext::verifyAndOutputLayoutTree const):

9:03 AM Changeset in webkit [232247] by Claudio Saavedra
  • 3 edits in trunk/LayoutTests

[GTK][WPE] AppCache test gardening

Some appcache tests were flaky due to console output, see
https://bugs.webkit.org/show_bug.cgi?id=185431 for more info.
Fixing those by dumping the output to stderr instead.

At the same time, clean up the expectations for appcache tests,
many were now passing, so several old bugs got closed now.

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
8:20 AM Changeset in webkit [232246] by commit-queue@webkit.org
  • 55 edits in trunk/Source

Modernize SVGRenderStyleDefs.h
https://bugs.webkit.org/show_bug.cgi?id=186024

Patch by Sam Weinig <sam@webkit.org> on 2018-05-28
Reviewed by Daniel Bates.

Source/WebCore:

Modernized the set of enums in SVGRenderStyleDefs.h and WindRule.h by:

  • Converting them to enum classes
  • Renaming them to remove unnecessary prefix 'E's
  • Renaming values to take advantage of enum class scoping (e.g. StyleDifferenceEqual -> StyleDifference::Equal)
  • Renaming to match modern conventions (e.g BNONE -> None)

Modernizes the following enums:

SVGPaintType
BaselineShift (renamed from EBaselineShift)
TextAnchor (renamed from ETextAnchor)
ColorInterpolation (renamed from EColorInterpolation)
ColorRendering (renamed from EColorRendering)
ShapeRendering (renamed from EShapeRendering)
GlyphOrientation (renamed from EGlyphOrientation)
AlignmentBaseline (renamed from EAlignmentBaseline)
DominantBaseline (renamed from EDominantBaseline)
VectorEffect (renamed from EVectorEffect)
BufferedRendering (renamed from EBufferedRendering)
MaskType (renamed from EMaskType)
WindRule

  • css/CSSBasicShapes.cpp:

(WebCore::buildPathString):
(WebCore::buildPolygonString):

  • css/CSSBasicShapes.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator WindRule const):
(WebCore::CSSPrimitiveValue::operator AlignmentBaseline const):
(WebCore::CSSPrimitiveValue::operator BufferedRendering const):
(WebCore::CSSPrimitiveValue::operator ColorInterpolation const):
(WebCore::CSSPrimitiveValue::operator ColorRendering const):
(WebCore::CSSPrimitiveValue::operator DominantBaseline const):
(WebCore::CSSPrimitiveValue::operator ShapeRendering const):
(WebCore::CSSPrimitiveValue::operator TextAnchor const):
(WebCore::CSSPrimitiveValue::operator VectorEffect const):
(WebCore::CSSPrimitiveValue::operator MaskType const):
(WebCore::CSSPrimitiveValue::operator EAlignmentBaseline const): Deleted.
(WebCore::CSSPrimitiveValue::operator EBufferedRendering const): Deleted.
(WebCore::CSSPrimitiveValue::operator EColorInterpolation const): Deleted.
(WebCore::CSSPrimitiveValue::operator EColorRendering const): Deleted.
(WebCore::CSSPrimitiveValue::operator EDominantBaseline const): Deleted.
(WebCore::CSSPrimitiveValue::operator EShapeRendering const): Deleted.
(WebCore::CSSPrimitiveValue::operator ETextAnchor const): Deleted.
(WebCore::CSSPrimitiveValue::operator EVectorEffect const): Deleted.
(WebCore::CSSPrimitiveValue::operator EMaskType const): Deleted.

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::glyphOrientationToCSSPrimitiveValue):
(WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor const):
(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertGlyphOrientation):
(WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto):

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueBaselineShift):
(WebCore::StyleBuilderCustom::applyValueFill):
(WebCore::StyleBuilderCustom::applyValueStroke):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBasicShapePolygon):
(WebCore::consumeBasicShapePath):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::toWindRule):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):

  • platform/graphics/FloatPolygon.cpp:

(WebCore::FloatPolygon::contains const):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::fillRectWithRoundedHole):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::shapeLayerWindRule const):

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/GraphicsTypes.cpp:

(WebCore::operator<<):

  • platform/graphics/Path.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::drawInsetShadow):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):

  • platform/graphics/WindRule.h:

(): Deleted.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::shapeWindRule const):
(PlatformCALayerCocoa::setShapeWindRule):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::calculateDrawingMode):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::clipPath):

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::contains const):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawAnimation):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::buildReferenceFilter):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::clipBorderSidePolygon):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::paintOutline):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::computeClipPath const):

  • rendering/style/BasicShapes.h:

(WebCore::BasicShape::windRule const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fillPaintType const):
(WebCore::RenderStyle::setFillPaintColor):
(WebCore::RenderStyle::strokePaintType const):
(WebCore::RenderStyle::setStrokePaintColor):

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::initialAlignmentBaseline):
(WebCore::SVGRenderStyle::initialDominantBaseline):
(WebCore::SVGRenderStyle::initialBaselineShift):
(WebCore::SVGRenderStyle::initialVectorEffect):
(WebCore::SVGRenderStyle::initialBufferedRendering):
(WebCore::SVGRenderStyle::initialClipRule):
(WebCore::SVGRenderStyle::initialColorInterpolation):
(WebCore::SVGRenderStyle::initialColorInterpolationFilters):
(WebCore::SVGRenderStyle::initialColorRendering):
(WebCore::SVGRenderStyle::initialFillRule):
(WebCore::SVGRenderStyle::initialShapeRendering):
(WebCore::SVGRenderStyle::initialTextAnchor):
(WebCore::SVGRenderStyle::initialGlyphOrientationHorizontal):
(WebCore::SVGRenderStyle::initialGlyphOrientationVertical):
(WebCore::SVGRenderStyle::initialFillPaintType):
(WebCore::SVGRenderStyle::initialStrokePaintType):
(WebCore::SVGRenderStyle::initialMaskType):
(WebCore::SVGRenderStyle::setAlignmentBaseline):
(WebCore::SVGRenderStyle::setDominantBaseline):
(WebCore::SVGRenderStyle::setBaselineShift):
(WebCore::SVGRenderStyle::setVectorEffect):
(WebCore::SVGRenderStyle::setBufferedRendering):
(WebCore::SVGRenderStyle::setClipRule):
(WebCore::SVGRenderStyle::setColorInterpolation):
(WebCore::SVGRenderStyle::setColorInterpolationFilters):
(WebCore::SVGRenderStyle::setColorRendering):
(WebCore::SVGRenderStyle::setFillRule):
(WebCore::SVGRenderStyle::setShapeRendering):
(WebCore::SVGRenderStyle::setTextAnchor):
(WebCore::SVGRenderStyle::setGlyphOrientationHorizontal):
(WebCore::SVGRenderStyle::setGlyphOrientationVertical):
(WebCore::SVGRenderStyle::setMaskType):
(WebCore::SVGRenderStyle::alignmentBaseline const):
(WebCore::SVGRenderStyle::dominantBaseline const):
(WebCore::SVGRenderStyle::baselineShift const):
(WebCore::SVGRenderStyle::vectorEffect const):
(WebCore::SVGRenderStyle::bufferedRendering const):
(WebCore::SVGRenderStyle::clipRule const):
(WebCore::SVGRenderStyle::colorInterpolation const):
(WebCore::SVGRenderStyle::colorInterpolationFilters const):
(WebCore::SVGRenderStyle::colorRendering const):
(WebCore::SVGRenderStyle::fillRule const):
(WebCore::SVGRenderStyle::shapeRendering const):
(WebCore::SVGRenderStyle::textAnchor const):
(WebCore::SVGRenderStyle::glyphOrientationHorizontal const):
(WebCore::SVGRenderStyle::glyphOrientationVertical const):
(WebCore::SVGRenderStyle::fillPaintType const):
(WebCore::SVGRenderStyle::strokePaintType const):
(WebCore::SVGRenderStyle::maskType const):
(WebCore::SVGRenderStyle::visitedLinkFillPaintType const):
(WebCore::SVGRenderStyle::visitedLinkStrokePaintType const):
(WebCore::SVGRenderStyle::hasStroke const):
(WebCore::SVGRenderStyle::hasFill const):
(WebCore::SVGRenderStyle::setBitDefaults):

  • rendering/style/SVGRenderStyleDefs.h:

(WebCore::StyleFillData::create):
(WebCore::StyleFillData::operator!= const):
(WebCore::StyleStrokeData::create):
(WebCore::StyleStrokeData::operator!= const):
(WebCore::StyleStopData::create):
(WebCore::StyleStopData::operator!= const):
(WebCore::StyleTextData::create):
(WebCore::StyleTextData::operator!= const):
(WebCore::StyleMiscData::create):
(WebCore::StyleMiscData::operator!= const):
(WebCore::StyleShadowSVGData::create):
(WebCore::StyleShadowSVGData::operator!= const):
(WebCore::StyleResourceData::create):
(WebCore::StyleResourceData::operator!= const):
(WebCore::StyleInheritedResourceData::create):
(WebCore::StyleInheritedResourceData::operator!= const):
(WebCore::StyleLayoutData::create):
(WebCore::StyleLayoutData::operator!= const):
(): Deleted.

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::paint):

  • rendering/svg/RenderSVGRect.cpp:

(WebCore::RenderSVGRect::updateShapeFromElement):

  • rendering/svg/RenderSVGResource.cpp:

(WebCore::requestPaintingResource):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::pathOnlyClipping):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::buildPrimitives const):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::RenderSVGResourceGradient::applyResource):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::applyResource):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::paint):

  • rendering/svg/RenderSVGShape.h:

(WebCore::RenderSVGShape::hasNonScalingStroke const):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeStyle):
(WebCore::writeSVGInlineTextBox):

  • rendering/svg/SVGResources.cpp:

(WebCore::paintingResourceFromSVGPaint):

  • rendering/svg/SVGTextChunk.cpp:

(WebCore::SVGTextChunk::SVGTextChunk):

  • rendering/svg/SVGTextLayoutEngineBaseline.cpp:

(WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift const):
(WebCore::SVGTextLayoutEngineBaseline::dominantBaselineToAlignmentBaseline const):
(WebCore::SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift const):
(WebCore::SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle const):

  • rendering/svg/SVGTextLayoutEngineBaseline.h:

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::applyPropertiesToLayer):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
Update for new enum names.

6:25 AM Changeset in webkit [232245] by Claudio Saavedra
  • 3 edits in trunk/LayoutTests

[GTK][WPE] transitions/interrupted-transition-hardware.html failing

Unreviewed gardening, image-only failure.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
5:26 AM Changeset in webkit [232244] by Yusuke Suzuki
  • 4 edits in trunk/Source

[WTF] Add clz32 / clz64 for MSVC
https://bugs.webkit.org/show_bug.cgi?id=186023

Reviewed by Daniel Bates.

Source/JavaScriptCore:

Move clz32 and clz64 to WTF.

  • runtime/MathCommon.h:

(JSC::clz32): Deleted.
(JSC::clz64): Deleted.

Source/WTF:

This patch adds efficient implementations of clz32 and clz64 for MSVC.
While MSVC has _lzcnt intrinsic, it is only valid if the CPU has lzcnt instruction.
Instead of checking cpuid here, we just use _BitScanReverse and _BitScanReverse64.

  • wtf/MathExtras.h:

(WTF::clz32):
(WTF::clz64):

3:57 AM Changeset in webkit [232243] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.21.3

WebKitGTK+ 2.21.3

3:56 AM Changeset in webkit [232242] by Carlos Garcia Campos
  • 4 edits in trunk

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

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.21.3.
3:15 AM Changeset in webkit [232241] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Test webanimations/css-animations.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=186031

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2018-05-28
Reviewed by Antoine Quint.

This is another case of std::optional value being used while it's nullopt, I guess this started to fail when we
stopped using the WTF implementation of std::optional. The problem is that we try to get the current iteration
of a declarative animation when the active time is unresolved.

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::invalidateDOMEvents): Use value_or(0) instead of value() to get the current
iteration of the effect.

1:18 AM Changeset in webkit [232240] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk

[GStreamer] Handle changes in the "drm-preferred-decryption-system-id" NEED_CONTEXT message.
https://bugs.webkit.org/show_bug.cgi?id=185948

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-28
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

  • The "stream-encryption-systems" field of the "drm-preferred-decryption-system-id" query was renamed to "avalaible-stream-encryption-systems"
  • It can now be NULL, meaning there is no decryptor avalaible.

Tests: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-*

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::extractEventsAndSystemsFromMessage): Handle NULL value for "avalaible-stream-encryption-systems",
moved some code to make the order of the Arrays in the pair clearer.

Tools:

When the patch introducing gst_protection_filter_systems_by_available_decryptors was merged, we changed sensibly its behaviour
concerning the way empty results is represented (now returning NULL instead of an array of 1(NULL) element) and this change was not
properly taken into account in the qtdemux patch that uses it and got upstreamed. Those 3 new patches fixe that and change the
NEED_CONTEXT field names to clarify the meaning of "stream-encryption-systems".

  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-good-0001-qtdemux-Do-not-run-the-preferred-decryptor-context-q.patch: Added. Merged upstream as 3e063703b3a51b8aaa7f75f36c4660c583a60e93
  • gstreamer/patches/gst-plugins-good-0002-qtdemux-Do-not-unref-a-NULL-stream_tags.patch: Added. Merged upstream as 43a540b1cd9f162d3dae5d50e36703dfaf558a3e
  • gstreamer/patches/gst-plugins-good-0003-qtdemux-Clarify-field-name-about-stream-encryption-s.patch: Added.
Note: See TracTimeline for information about the timeline view.