Timeline
Jan 30, 2018:
- 11:28 PM Changeset in webkit [227876] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] syntheticBoldOffset makes a font with embedded bitmap fonts shown as double strike in HiDPI
https://bugs.webkit.org/show_bug.cgi?id=182093
Patch by Fujii Hironori <Fujii Hironori> on 2018-01-30
Reviewed by Alex Christensen.
WebKit draws texts doubly by shifting 1px for fonts without bold
fonts but bold font is desired. This synthetic bold method draws
fonts with embedded bitmap fonts look like double strike in HiDPI.
No new tests (Covered by the existing tests).
- platform/graphics/win/FontCacheWin.cpp:
(WebCore::createGDIFont): Overwrite lfWeight if the desired weight
is bold and matched font weight is't bold and in WinCairo port.
Fix wrong indentation.
- 10:01 PM Changeset in webkit [227875] by
-
- 30 edits in trunk
Add callbacks to testRunner.statisticsSetShouldPartitionCookiesForHost() and testRunner.statisticsUpdateCookiePartitioning()
https://bugs.webkit.org/show_bug.cgi?id=181958
https://bugs.webkit.org/show_bug.cgi?id=182072
<rdar://problem/36801804>
<rdar://problem/36845795>
Reviewed by Brent Fulgham.
Because of the asynchronous nature of XPC and cookies,
we need callbacks in these TestRunner functions so that
the layout tests can wait for state changes to finish
before checking test conditions.
Source/WebKit:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreStatisticsUpdateCookiePartitioning):
(WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]):
(-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:completionHandler:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains):
(WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder):
(WebKit::WebResourceLoadStatisticsStore::clearInMemory):
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning):
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains):
(WebKit::WebResourceLoadStatisticsStore::clearPartitioningStateForDomains):
- UIProcess/WebResourceLoadStatisticsStore.h:
Tools:
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::statisticsUpdateCookiePartitioning):
(WTR::TestRunner::statisticsSetShouldPartitionCookiesForHost):
(WTR::TestRunner::statisticsCallDidSetPartitionOrBlockCookiesForHostCallback):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didSetPartitionOrBlockCookiesForHost):
- WebKitTestRunner/TestInvocation.h:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::statisticsUpdateCookiePartitioning):
(WTR::TestController::statisticsSetShouldPartitionCookiesForHost):
LayoutTests:
- http/tests/resourceLoadStatistics/add-blocking-to-redirect-expected.txt:
- http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
- http/tests/resourceLoadStatistics/add-partitioning-to-redirect-expected.txt:
- http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html:
- http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
- http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
- http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
- http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt:
- http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html:
- http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
- http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:
- http/tests/resourceLoadStatistics/remove-partitioning-in-redirect-expected.txt:
- http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html:
- http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html:
- platform/mac-wk2/TestExpectations:
- 9:23 PM Changeset in webkit [227874] by
-
- 20 edits in trunk/Source
Apply poisoning to TypedArray vector pointers.
https://bugs.webkit.org/show_bug.cgi?id=182155
<rdar://problem/36286266>
Reviewed by JF Bastien.
Source/JavaScriptCore:
The TypeArray's vector pointer is now poisoned. The poison value is chosen based
on a TypeArray's jsType. The JSType must be between FirstTypedArrayType and
LastTypedArrayType. At runtime, we enforce that the index is well-behaved by
masking it against TypedArrayPoisonIndexMask. TypedArrayPoisonIndexMask (16) is
the number of TypedArray types (10) rounded up to the next power of 2.
Accordingly, we reserve an array of TypedArrayPoisonIndexMask poisons so that we
can use index masking on the index, and be guaranteed that the masked index will
be within bounds of the poisons array.
- Fixed both DFG and FTL versions of compileGetTypedArrayByteOffset() to not do any unnecessary work if the TypedArray vector is null.
FTL's cagedMayBeNull() is no longer needed because it is only used by
compileGetTypedArrayByteOffset(), and we need to enhance it to handle unpoisoning
in a TypedArray specific way. So, might as well do the work inline in
compileGetTypedArrayByteOffset() instead.
- Removed an unnecessary null-check in DFGSpeculativeJIT's compileNewTypedArrayWithSize() because there's already a null check above it that ensures that sizeGPR is never null.
- In LLInt's _llint_op_get_by_val, move the TypedArray length check before the loading of the vector for unpoisoning and uncaging. We don't need the vector if the length is 0.
Implementation notes on the need to null check the TypeArray vector:
- DFG::SpeculativeJIT::jumpForTypedArrayIsNeuteredIfOutOfBounds() does not need a m_poisonedVector null check because the function is a null check.
- DFG::SpeculativeJIT::compileGetIndexedPropertyStorage() does not need a m_poisonedVector null check because it is followed by a call to cageTypedArrayStorage() which assumes that storageReg cannot be null.
- DFG::SpeculativeJIT::compileGetTypedArrayByteOffset() already has a m_poisonedVector null check.
- DFG::SpeculativeJIT::compileNewTypedArrayWithSize() does not need a vector null check because the poisoning code is preceded by a sizeGPR null check, which ensures that the storageGPR (vector to be poisoned) is not null.
- FTL's compileGetIndexedPropertyStorage() does not need a m_poisonedVector null check because it is followed by a call to caged() which assumes that the vector cannot be null.
- FTL's compileGetTypedArrayByteOffset() already has a m_poisonedVector null check.
- FTL's compileNewTypedArray() does not need a vector null check because the poisoning code is preceded by a size null check, which ensures that the storage (vector to be poisoned) is not null.
- FTL's speculateTypedArrayIsNotNeutered() does not need a m_poisonedVector null check because the function is a null check.
- IntrinsicGetterAccessCase::emitIntrinsicGetter()'s TypedArrayByteOffsetIntrinsic case needs a null check so that it does not try to unpoison a null vector.
- JIT::emitIntTypedArrayGetByVal() does not need a vector null check because
we already do a length check even before loading the vector.
- JIT::emitFloatTypedArrayGetByVal() does not need a vector null check because
we already do a length check even before loading the vector.
- JIT::emitIntTypedArrayPutByVal() does not need a vector null check because
we already do a length check even before loading the vector.
- JIT::emitFloatTypedArrayPutByVal() does not need a vector null check because
we already do a length check even before loading the vector.
- LLInt's loadTypedArrayCaged() does not need a vector null check because its
client will do a TypedArray length check before calling it.
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::checkArray):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasArrayMode):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayIsNeuteredIfOutOfBounds):
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered):
(JSC::FTL::DFG::LowerDFGToB3::cagedMayBeNull): Deleted.
- jit/IntrinsicEmitter.cpp:
(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitIntTypedArrayGetByVal):
(JSC::JIT::emitFloatTypedArrayGetByVal):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- offlineasm/arm64.rb:
- offlineasm/x86.rb:
- runtime/CagedBarrierPtr.h:
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::JSArrayBufferView):
(JSC::JSArrayBufferView::finalize):
(JSC::JSArrayBufferView::neuter):
- runtime/JSArrayBufferView.h:
(JSC::JSArrayBufferView::vector const):
(JSC::JSArrayBufferView::offsetOfPoisonedVector):
(JSC::JSArrayBufferView::poisonFor):
(JSC::JSArrayBufferView::Poison::key):
(JSC::JSArrayBufferView::offsetOfVector): Deleted.
- runtime/JSCPoison.cpp:
(JSC::initializePoison):
- runtime/JSCPoison.h:
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::estimatedSize):
(JSC::JSGenericTypedArrayView<Adaptor>::visitChildren):
(JSC::JSGenericTypedArrayView<Adaptor>::slowDownAndWasteMemory):
- runtime/JSObject.h:
Source/WTF:
- Added the ability to poison a CagedPtr.
- Prevent CagedPtr from being implicitly instantiated, and add operator= methods instead. This is because implicitly instantiated CagedPtrs with a poisoned trait may silently use a wrong poison value.
- wtf/CagedPtr.h:
(WTF::CagedPtr::CagedPtr):
(WTF::CagedPtr::get const):
(WTF::CagedPtr::operator=):
- 9:15 PM Changeset in webkit [227873] by
-
- 3 edits in trunk/Source/WebKit
REGRESSION(r227550): Resource timing API is disabled on macOS
https://bugs.webkit.org/show_bug.cgi?id=182318
Reviewed by Chris Dumez.
Resource timing API should be enabled by default all versions of macOS we support now.
- Shared/WebPreferences.yaml:
- Shared/WebPreferencesDefaultValues.h:
- 8:47 PM Changeset in webkit [227872] by
-
- 5 edits in trunk/Source
[Win] Warning fix.
https://bugs.webkit.org/show_bug.cgi?id=177007
Patch by Fujii Hironori <Fujii Hironori> on 2018-01-30
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::dump const):
Changed the type of locationRawBits from unsigned to uintptr_t.
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::createNumberFormat):
Initialize 'style' to avoid potentially uninitialized local variable warning.
Source/WTF:
A 32 bit integer should not be casted to a pointer directly in 64
bit Windows. It should be casted to a uintptr_t beforehand.
Rules for Using Pointers (Windows)
https://msdn.microsoft.com/library/windows/desktop/aa384242
- wtf/ThreadingWin.cpp (InvalidThread): Casted 0xbbadbeef to uintptr_t.
- 8:27 PM Changeset in webkit [227871] by
-
- 2 edits in trunk/Tools
[webkitpy] Config file for apache is copied twice.
https://bugs.webkit.org/show_bug.cgi?id=182131
Patch by Basuke Suzuki <Basuke Suzuki> on 2018-01-30
Reviewed by Daniel Bates.
- Scripts/webkitpy/layout_tests/servers/apache_http_server.py:
(LayoutTestApacheHttpd.init):
(LayoutTestApacheHttpd._copy_apache_config_file):
(LayoutTestApacheHttpd._get_apache_config_file_path): Deleted.
- 8:23 PM Changeset in webkit [227870] by
-
- 6 edits3 adds in trunk
FetchResponse should support ConsumeData callback on chunk data is received
https://bugs.webkit.org/show_bug.cgi?id=181600
<rdar://problem/36932547>
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-respond-with-body-loaded-in-chunk-worker.js: Added.
Source/WebCore:
Test: imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html
Apply same read-by-chunk strategy for body coming from network as for body coming from ReadableStream.
Refactor to have one consumeBodyReceivedByChunk method for both cases.
This allows streaming data from a service worker to WebProcess as would be done by NetworkProcess.
- Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::addAll):
(WebCore::DOMCache::put):
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::didReceiveData):
(WebCore::FetchResponse::BodyLoader::consumeDataByChunk):
(WebCore::FetchResponse::consumeBody):
(WebCore::FetchResponse::consumeBodyReceivedByChunk):
- Modules/fetch/FetchResponse.h:
- workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::processResponse):
- 7:02 PM Changeset in webkit [227869] by
-
- 3 edits in trunk/Source/WebKit
WKWebView layout is sometimes wrong after rotation on iPhone X
https://bugs.webkit.org/show_bug.cgi?id=182304
<rdar://problem/34158671>
Reviewed by Simon Fraser.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _computedContentInset]):
(-[WKWebView _scrollViewSystemContentInset]):
(activeMinimumLayoutSize):
It turns out that it is not always safe to look at the safe area insets of
children from inside layoutSubviews, even after the call to super.
Instead, make use of the fact that WKScrollView and WKWebView have identical
coordinate spaces, and map WKWebView's safe area insets into the WKScrollView.
It's safe to use the scroll view's affected-edges and contentScrollInset,
because those aren't updated at the same outside-of-layout time that
safe area insets are.
We could alternatively move all calls to activeMinimumLayoutSize outside
of layoutSubviews, but that seems like a larger and riskier change.
All attempts to write a test have failed; this depends heavily on use of
autolayout and the mechanism by which the system updates system-owned
safe area insets during device rotation.
- 5:49 PM Changeset in webkit [227868] by
-
- 2 edits in branches/safari-605-branch/LayoutTests
Cherry-pick r227867. rdar://problem/36912402
- 5:35 PM Changeset in webkit [227867] by
-
- 2 edits in trunk/LayoutTests
Move http/wpt/service-workers/clone-opaque-being-loaded-response.https.html to use HTTP
https://bugs.webkit.org/show_bug.cgi?id=182202
<rdar://problem/36912402>
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-30
Reviewed by Chris Dumez.
Follow-up to ensure subresource load is also done in HTTP and not HTTPS
- http/wpt/service-workers/clone-opaque-being-loaded-response-worker.js:
- 4:53 PM Changeset in webkit [227866] by
-
- 12 edits in trunk
JSExports.h should be included as <JavaScriptCore/JSExportMacros.h>
https://bugs.webkit.org/show_bug.cgi?id=182312
Reviewed by Michael Catanzaro.
Source/WebCore:
No new tests. No change in behavior.
- config.h:
Source/WebKit:
- config.h:
Source/WebKitLegacy/cf:
- WebCoreSupport/WebInspectorClientCF.cpp:
Source/WebKitLegacy/mac:
- WebKitPrefix.h:
Tools:
- DumpRenderTree/config.h:
- TestWebKitAPI/config.h:
- WebKitTestRunner/config.h:
- 4:46 PM Changeset in webkit [227865] by
-
- 2 edits in trunk/LayoutTests
Marked fast/workers/worker-cloneport.html as flaky on macOS Release.
https://bugs.webkit.org/show_bug.cgi?id=182007
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:39 PM Changeset in webkit [227864] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: Replace Object.shallowMerge with ES2018 spread operator
https://bugs.webkit.org/show_bug.cgi?id=182219
Reviewed by Brian Burg.
- UserInterface/Base/Utilities.js:
(Object.shallowMerge): Deleted.
- UserInterface/Base/DOMUtilities.js:
(WI.linkifyNodeReference):
- UserInterface/Base/Main.js:
(WI.handlePossibleLinkClick):
(WI.openURL):
(WI.showSourceCodeLocation):
(WI.showOriginalUnformattedSourceCodeLocation):
(WI.showOriginalOrFormattedSourceCodeLocation):
(WI.showOriginalOrFormattedSourceCodeTextRange):
(WI.linkifyLocation):
- UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype._insertAdjacentHTML):
- UserInterface/Views/WebSocketContentView.js:
(WI.WebSocketContentView.prototype._addRow):
- 4:31 PM Changeset in webkit [227863] by
-
- 2 edits in trunk/PerformanceTests
StyleBench: Generate more mutation steps
https://bugs.webkit.org/show_bug.cgi?id=182291
Rubber-stamped by Antti Koivisto
Use zero-based index instead of one-based index.
- StyleBench/resources/tests.js:
(makeSteps):
- 4:08 PM Changeset in webkit [227862] by
-
- 8 edits in trunk
Use double-quotes when serializing font-feature-settings
https://bugs.webkit.org/show_bug.cgi?id=182201
Source/WebCore:
According to the CSSOM spec, all strings should be serialized with double-quotes. The feature
tag value was previously serialized with single-quotes; change this to double-quotes to match
the spec and non-WebKit browsers.
Patch by Chris Nardi <cnardi@chromium.org> on 2018-01-30
Reviewed by Myles C. Maxfield.
Updated css3/font-feature-settings-parsing.html, fast/css/inherited-properties-rare-text.html,
and fast/text/font-face-javascript.html.
- css/CSSFontFeatureValue.cpp:
(WebCore::CSSFontFeatureValue::customCSSText const):
LayoutTests:
Update tests with double-quotes instead of single-quotes.
Patch by Chris Nardi <cnardi@chromium.org> on 2018-01-30
Reviewed by Myles C. Maxfield.
- css3/font-feature-settings-parsing-expected.txt:
- css3/font-feature-settings-parsing.html:
- fast/css/inherited-properties-rare-text-expected.txt:
- fast/text/font-face-javascript-expected.txt:
- fast/text/font-face-javascript.html:
- 3:13 PM Changeset in webkit [227861] by
-
- 2 edits in trunk/Source/WTF
Unreviewed build fix for JSCOnly after r227845.
https://bugs.webkit.org/show_bug.cgi?id=182274
- wtf/PlatformJSCOnly.cmake:
- 3:12 PM Changeset in webkit [227860] by
-
- 6 edits in trunk/Source
Add telemetry to track storage access API adoption
https://bugs.webkit.org/show_bug.cgi?id=182197
<rdar://problem/35803309>
Reviewed by Chris Dumez.
Part 2: Add telemetry for the Storage Access API case
Source/WebCore:
Adds a new convenience method to identify origin/page/frame combinations that
have been granted access to the Storage Access API. This is used for debug
logging in the NetworkProcess. It is not used in production builds.
- platform/network/NetworkStorageSession.h:
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::hasStorageAccessForFrame const): Added.
Source/WebKit:
This change increments a counter when an origin is loaded in a first part context because
it was granted Storage Access API permissions.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::logCookieInformation const): Add logging to indicate
loads that happened with the Storage Access API enabled.
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): Increment counter for
loads using the new API.
- 3:05 PM Changeset in webkit [227859] by
-
- 3 edits in trunk/Tools
[iOS] API test UIPasteboardTests.DataTransferGetDataWhenPastingPlatformRepresentations fails after r223440
https://bugs.webkit.org/show_bug.cgi?id=182307
<rdar://problem/36041485>
Reviewed by Ryosuke Niwa.
Adjusts a failing API test that we forgot to rebaseline after r223440, which ensures that the result of reading
"text/html" from the DataTransfer is sanitized markup. To do this, teach the test harness
(dump-datatransfer-types.html) to ignore inline styles in markup if a flag is set, and then set that flag in
UIPasteboardTests.DataTransferGetDataWhenPastingPlatformRepresentations.
- TestWebKitAPI/Tests/WebKitCocoa/dump-datatransfer-types.html:
- TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
(TestWebKitAPI::TEST):
- 2:47 PM Changeset in webkit [227858] by
-
- 6 edits2 adds in trunk
Release assert in updateLayout() via AXObjectCache::childrenChanged
https://bugs.webkit.org/show_bug.cgi?id=182279
<rdar://problem/36994456>
Reviewed by Antti Koivisto.
Source/WebCore:
Disable the assertion in Document::updateLayout and Document::updateStyle* in this particular circumstance as fixing it
would require a large architectural refactoring of the accessibility code.
Test: accessibility/accessibility-object-update-during-style-resolution-crash.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::childrenChanged): Disabled the release assertion here.
- dom/Document.cpp:
(WebCore::Document::isSafeToUpdateStyleOrLayout const): Check LayoutAssertionDisableScope::shouldDisable.
- dom/ScriptDisallowedScope.h:
(WebCore::ScriptDisallowedScope::LayoutAssertionDisableScope): Added.
(WebCore::ScriptDisallowedScope::LayoutAssertionDisableScope::LayoutAssertionDisableScope): Added.
(WebCore::ScriptDisallowedScope::LayoutAssertionDisableScope::~LayoutAssertionDisableScope): Added.
(WebCore::ScriptDisallowedScope::LayoutAssertionDisableScope::shouldDisable): Added.
- page/LayoutContext.cpp:
(WebCore::LayoutContext::layout): Check LayoutAssertionDisableScope::shouldDisable.
LayoutTests:
Added a regression test.
- accessibility/accessibility-object-update-during-style-resolution-crash-expected.txt: Added.
- accessibility/accessibility-object-update-during-style-resolution-crash.html: Added.
- 2:45 PM BuildingGtk edited by
- (diff)
- 2:45 PM Changeset in webkit [227857] by
-
- 2 edits in trunk/LayoutTests
Skipping imported/w3c/web-platform-tests/service-workers/service-worker/navigation-redirect.https.html.
https://bugs.webkit.org/show_bug.cgi?id=182311
Unreviewed test expectations.
- 2:42 PM BuildingGtk edited by
- Switch build instructions to use Ninja (diff)
- 2:40 PM Changeset in webkit [227856] by
-
- 5 edits in trunk/Source/WebCore
[RenderTreeBuilder] Move RenderRubyRun::rubyBaseSafe to RenderTreeBuilder::Ruby
https://bugs.webkit.org/show_bug.cgi?id=182306
<rdar://problem/37041440>
Reviewed by Antti Koivisto.
With all the ruby mutation code moving, only RenderTreeBuilder calls RenderRubyRun::rubyBaseSafe.
No change in functionality.
- rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::rubyText const):
(WebCore::RenderRubyRun::rubyBase const):
(WebCore::RenderRubyRun::firstLineBlock const):
(WebCore::RenderRubyRun::takeChild):
(WebCore::RenderRubyRun::rubyBaseSafe): Deleted.
- rendering/RenderRubyRun.h:
- rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::insertChild):
(WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe):
- rendering/updating/RenderTreeBuilderRuby.h:
- 2:16 PM Changeset in webkit [227855] by
-
- 4 edits2 adds in trunk
Make preserve and restore focus more likely to be symmetrical
https://bugs.webkit.org/show_bug.cgi?id=182264
Source/WebKit:
<rdar://problem/36948473>
Reviewed by Tim Horton.
Keep a stack of if we actually increment the focusState, so that
changes to the web content do not result in asymmetric decrements to the focus state.
To work around problems associated with <rdar://problem/37000122>.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _restoreFocusWithToken:]):
(-[WKContentView _preserveFocusWithToken:destructively:]):
LayoutTests:
Reviewed by Tim Horton.
Added new test to verify that opening a selection form twice works.
- fast/forms/ios/ipad/select-form-run-twice-expected.txt: Added.
- fast/forms/ios/ipad/select-form-run-twice.html: Added.
- 2:14 PM Changeset in webkit [227854] by
-
- 3 edits in branches/safari-605-branch/Source/WebCore
Cherry-pick r227796. rdar://problem/37037868
- 2:14 PM Changeset in webkit [227853] by
-
- 3 edits in branches/safari-605-branch/Source/WTF
Cherry-pick r227792. rdar://problem/37037861
- 2:14 PM Changeset in webkit [227852] by
-
- 10 edits in branches/safari-605-branch/Source
Cherry-pick r227789. rdar://problem/37035797
- 2:14 PM Changeset in webkit [227851] by
-
- 2 edits in branches/safari-605-branch/Source/ThirdParty/libwebrtc
Cherry-pick r227698. rdar://problem/36926420
- 2:08 PM Changeset in webkit [227850] by
-
- 3 edits in trunk/PerformanceTests
StyleBench: Generate more mutation steps
https://bugs.webkit.org/show_bug.cgi?id=182291
Reviewed by Ryosuke Niwa.
The test should be doing multiple rounds of mutations in a single document to test what is supposed to test (like it did before r227756).
This also makes test results more stable and less dependent on possible first-time costs.
- StyleBench/resources/benchmark-runner.js:
Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.
- StyleBench/resources/tests.js:
(makeSteps):
Generate 10 rounds of class/element mutation steps.
Give each generated step unique name so reporting works.
Make individual steps do fewer mutations.
- 1:55 PM Changeset in webkit [227849] by
-
- 4 edits in trunk/Source/WebCore
Unified sources for FEMorphology.cpp seems to break the windows build.
https://bugs.webkit.org/show_bug.cgi?id=178847
Patch by Fujii Hironori <Fujii Hironori> on 2018-01-30
Reviewed by Yusuke Suzuki.
Fix a compilation error.
platform/graphics/filters/SpotLightSource.cpp(45): error C2027: use of undefined type 'WebCore::FilterEffect'
No new tests (No behavior change)
- Sources.txt: Removed @no-unify for FEMorphology.cpp.
- platform/graphics/filters/SpotLightSource.cpp: Added #include "FilterEffect.h".
- 1:51 PM Changeset in webkit [227848] by
-
- 2 edits in trunk/Source/WebCore
Test fix after r227776
https://bugs.webkit.org/show_bug.cgi?id=180951
Unreviewed.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::mandatoryAttributesForUserInstalledFonts):
- 1:26 PM Changeset in webkit [227847] by
-
- 2 edits in branches/safari-605-branch/Tools
Unreviewed, disable tests for rdar://problem/37032930&37032931.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
- 12:29 PM Changeset in webkit [227846] by
-
- 2 edits in trunk/Source/WebCore
CrashTracer: com.apple.WebKit.WebContent at WebCore: WebCore::Document::updateStyleIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=182299
<rdar://problem/36853088>
Removing a misleading comment based on Zalan Bujtas's feedback.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded):
- 12:02 PM Changeset in webkit [227845] by
-
- 11 edits in trunk/Source
[CMake] Make WTF headers copies
https://bugs.webkit.org/show_bug.cgi?id=182274
Reviewed by Alex Christensen.
Source/ThirdParty:
- gtest/CMakeLists.txt:
Source/WebDriver:
- CMakeLists.txt:
Source/WTF:
- wtf/CMakeLists.txt:
- wtf/PlatformGTK.cmake:
- wtf/PlatformJSCOnly.cmake:
- wtf/PlatformMac.cmake:
- wtf/PlatformWPE.cmake:
- wtf/PlatformWin.cmake:
- 11:57 AM Changeset in webkit [227844] by
-
- 68 edits1 add in tags/Safari-606.1.1.4/Source
Cherry-pick r227701. rdar://problem/36889194
- 11:57 AM Changeset in webkit [227843] by
-
- 4 edits in tags/Safari-606.1.1.4/Source/JavaScriptCore
Cherry-pick r227692. rdar://problem/36460697
- 11:57 AM Changeset in webkit [227842] by
-
- 16 edits in tags/Safari-606.1.1.4/Source
Cherry-pick r227161. rdar://problem/36163728
- 11:46 AM Changeset in webkit [227841] by
-
- 5 edits2 adds in trunk
CrashTracer: com.apple.WebKit.WebContent at WebCore: WebCore::Document::updateStyleIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=182299
<rdar://problem/36853088>
Reviewed by Simon Fraser.
Source/WebCore:
Mostly speculative fix for the case where a scrollTo moves an
animated SVG image into view, causing its animation to restart during
a paint operation. This was causing a release ASSERT, so we now defer
the resumption of the animation into a timer.
Test: svg/animated-svgImage-scroll.html
- rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded): Enqueue the
animation if it is an SVGImage.
- svg/graphics/SVGImage.cpp: Add a timer to enqueue animation starts.
(WebCore::SVGImage::SVGImage):
(WebCore::SVGImage::startAnimationTimerFired):
(WebCore::SVGImage::enqueueStartAnimation):
(WebCore::SVGImage::stopAnimation):
- svg/graphics/SVGImage.h:
LayoutTests:
- svg/animated-svgImage-scroll-expected.txt: Added.
- svg/animated-svgImage-scroll.html: Added.
- 11:45 AM Changeset in webkit [227840] by
-
- 7 edits in tags/Safari-605.1.25.2/Source
Versioning.
- 11:45 AM Changeset in webkit [227839] by
-
- 7 edits in tags/Safari-606.1.1.4/Source
Versioning.
- 11:40 AM Changeset in webkit [227838] by
-
- 1 copy in tags/Safari-605.1.25.2
New tag.
- 11:39 AM Changeset in webkit [227837] by
-
- 1 copy in tags/Safari-606.1.1.4
New tag.
- 10:51 AM Changeset in webkit [227836] by
-
- 2 edits in branches/safari-605-branch/Source/WebKit
Cherry-pick r227772. rdar://problem/37019441
- 10:51 AM Changeset in webkit [227835] by
-
- 7 edits2 adds in branches/safari-605-branch
Cherry-pick r227768. rdar://problem/37019510
- 10:51 AM Changeset in webkit [227834] by
-
- 6 edits in branches/safari-605-branch
Cherry-pick r227765. rdar://problem/37019523
- 10:51 AM Changeset in webkit [227833] by
-
- 11 edits7 adds in branches/safari-605-branch
Cherry-pick r227759. rdar://problem/37019477
- 10:51 AM Changeset in webkit [227832] by
-
- 2 edits in branches/safari-605-branch/Source/WebKit
Cherry-pick r227758. rdar://problem/37019506
- 10:51 AM Changeset in webkit [227831] by
-
- 2 edits in branches/safari-605-branch/Source/WebKit
Cherry-pick r227754. rdar://problem/37019474
- 10:51 AM Changeset in webkit [227830] by
-
- 3 edits in branches/safari-605-branch/Source/WebCore
Cherry-pick r227753. rdar://problem/37019534
- 10:51 AM Changeset in webkit [227829] by
-
- 2 edits in branches/safari-605-branch/Source/WebKit
Cherry-pick r227751. rdar://problem/37019491
- 10:51 AM Changeset in webkit [227828] by
-
- 3 edits in branches/safari-605-branch/Source/WebCore
Cherry-pick r227745. rdar://problem/37019493
- 10:51 AM Changeset in webkit [227827] by
-
- 3 edits1 add in branches/safari-605-branch
Cherry-pick r227742. rdar://problem/37019360
- 10:51 AM Changeset in webkit [227826] by
-
- 3 edits2 adds in branches/safari-605-branch
Cherry-pick r227716. rdar://problem/37019460
- 10:51 AM Changeset in webkit [227825] by
-
- 2 edits in branches/safari-605-branch/LayoutTests
Cherry-pick r227712. rdar://problem/37019428
- 10:51 AM Changeset in webkit [227824] by
-
- 5 edits in branches/safari-605-branch
Cherry-pick r227710. rdar://problem/37019457
- 10:51 AM Changeset in webkit [227823] by
-
- 5 edits in branches/safari-605-branch
Cherry-pick r227709. rdar://problem/37019451
- 10:51 AM Changeset in webkit [227822] by
-
- 2 edits in branches/safari-605-branch/Source/WebInspectorUI
Cherry-pick r227707. rdar://problem/37019463
- 10:51 AM Changeset in webkit [227821] by
-
- 2 edits in branches/safari-605-branch/Source/WebCore
Cherry-pick r227702. rdar://problem/37019515
- 10:51 AM Changeset in webkit [227820] by
-
- 2 edits in branches/safari-605-branch/Source/WebCore
Cherry-pick r227697. rdar://problem/37019483
- 10:51 AM Changeset in webkit [227819] by
-
- 6 edits in branches/safari-605-branch
Cherry-pick r227696. rdar://problem/37019435
- 10:50 AM Changeset in webkit [227818] by
-
- 2 edits in branches/safari-605-branch/Source/WebCore
Cherry-pick r227686. rdar://problem/37019446
- 10:50 AM Changeset in webkit [227817] by
-
- 5 edits in branches/safari-605-branch
Cherry-pick r227680. rdar://problem/37019528
- 10:50 AM Changeset in webkit [227816] by
-
- 3 edits in branches/safari-605-branch/Source/WebInspectorUI
Cherry-pick r227666. rdar://problem/37019530
- 10:50 AM Changeset in webkit [227815] by
-
- 9 edits2 adds in branches/safari-605-branch
Cherry-pick r227651. rdar://problem/37019465
- 10:50 AM Changeset in webkit [227814] by
-
- 2 edits in branches/safari-605-branch/Source/WTF
Cherry-pick r227648. rdar://problem/37019367
- 10:50 AM Changeset in webkit [227813] by
-
- 7 edits in branches/safari-605-branch
Cherry-pick r227647. rdar://problem/37019494
- 10:50 AM Changeset in webkit [227812] by
-
- 2 edits in branches/safari-605-branch/Source/JavaScriptCore
Cherry-pick r227644. rdar://problem/37019367
- 10:50 AM Changeset in webkit [227811] by
-
- 10 edits in branches/safari-605-branch/Source
Cherry-pick r227643. rdar://problem/37019367
- 10:50 AM Changeset in webkit [227810] by
-
- 2 edits in branches/safari-605-branch/Source/WTF
Cherry-pick r227641. rdar://problem/37019444
- 10:50 AM Changeset in webkit [227809] by
-
- 10 edits in branches/safari-605-branch
Cherry-pick r227639. rdar://problem/37019431
- 10:50 AM Changeset in webkit [227808] by
-
- 9 edits in branches/safari-605-branch
Cherry-pick r227638. rdar://problem/37019454
- 10:50 AM Changeset in webkit [227807] by
-
- 6 edits in branches/safari-605-branch
Cherry-pick r227637. rdar://problem/37019468
- 10:50 AM Changeset in webkit [227806] by
-
- 3 edits in branches/safari-605-branch/Source/JavaScriptCore
Cherry-pick r227636. rdar://problem/37019363
- 10:50 AM Changeset in webkit [227805] by
-
- 4 edits in branches/safari-605-branch
Cherry-pick r227635. rdar://problem/37019482
- 10:50 AM Changeset in webkit [227804] by
-
- 2 edits in branches/safari-605-branch/Source/WebCore
Cherry-pick r227632. rdar://problem/37019496
- 10:50 AM Changeset in webkit [227803] by
-
- 12 edits3 adds in branches/safari-605-branch
Cherry-pick r227631. rdar://problem/37019444
- 10:49 AM Changeset in webkit [227802] by
-
- 3 edits in branches/safari-605-branch/Source/WTF
Cherry-pick r227628. rdar://problem/37019369
- 10:49 AM Changeset in webkit [227801] by
-
- 4 edits in branches/safari-605-branch
Cherry-pick r227626. rdar://problem/37019471
- 10:49 AM Changeset in webkit [227800] by
-
- 4 edits in branches/safari-605-branch
Cherry-pick r227624. rdar://problem/37019501
- 10:49 AM Changeset in webkit [227799] by
-
- 2 edits in branches/safari-605-branch/Source/WebKit
Cherry-pick r227621. rdar://problem/37019519
- 10:49 AM Changeset in webkit [227798] by
-
- 2 edits in branches/safari-605-branch/Tools
Cherry-pick r227616. rdar://problem/37019438
- 10:49 AM Changeset in webkit [227797] by
-
- 2 edits in branches/safari-605-branch/Tools
Cherry-pick r227563. rdar://problem/37019479
- 10:47 AM Changeset in webkit [227796] by
-
- 3 edits in trunk/Source/WebCore
Service worker registration soft updates happen too frequently
https://bugs.webkit.org/show_bug.cgi?id=182296
<rdar://problem/37031862>
Reviewed by Youenn Fablet.
Move code that updates the registration's last update check time from after
the script bytecheck to before, as per:
- https://w3c.github.io/ServiceWorker/#update (step 7.19)
This way, the last update check time gets updated even if the newly fetched
script is identical to the previous one, which is the common case.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::updateWorker):
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):
- 10:45 AM Changeset in webkit [227795] by
-
- 3 edits in branches/safari-605-branch/Source/WebCore
Cherry-pick r227529. rdar://problem/37019438
- 10:33 AM Changeset in webkit [227794] by
-
- 1 edit2 moves in branches/safari-605-branch/LayoutTests
Cherry-pick r227741. rdar://problem/36912402
- 10:28 AM Changeset in webkit [227793] by
-
- 1 edit4 adds in branches/safari-605-branch/LayoutTests
Unreviewed, rebaseline tests for rdar://problem/36912404&36912403.
- platform/mac-elcapitan/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt: Added.
- platform/mac-elcapitan/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt: Added.
- 10:04 AM Changeset in webkit [227792] by
-
- 3 edits in trunk/Source/WTF
Move ENABLE_POISON to Platform.h.
https://bugs.webkit.org/show_bug.cgi?id=182298
<rdar://problem/37032686>
Reviewed by Michael Saboff and JF Bastien.
ENABLE_POISON belongs in Platform.h to ensure that all places that depend on
ENABLE(POISON) will see it properly defined.
- wtf/Platform.h:
- wtf/Poisoned.h:
- 10:01 AM Changeset in webkit [227791] by
-
- 13 edits in trunk/Source/WebCore
[RenderTreeBuilder] Move childBecameNonInline to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182265
<rdar://problem/37004459>
Reviewed by Antti Koivisto.
Move the mutation code that wraps/unwraps a child element when its flow state changes
from(to) in-flow to(from) floating/out-of-flow.
No change in functionality.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::childBecameNonInline): Deleted.
- rendering/RenderBlock.h:
- rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::childBecameNonInline): Deleted.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::handleDynamicFloatPositionChange): Deleted.
- rendering/RenderInline.cpp:
(WebCore::RenderInline::childBecameNonInline): Deleted.
- rendering/RenderInline.h:
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):
(WebCore::RenderTreeBuilder::splitFlow): Deleted.
- rendering/updating/RenderTreeBuilder.h:
- rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::childBecameNonInline):
- rendering/updating/RenderTreeBuilderBlock.h:
- rendering/updating/RenderTreeBuilderInline.cpp:
(WebCore::RenderTreeBuilder::Inline::childBecameNonInline):
- rendering/updating/RenderTreeBuilderInline.h:
- 9:44 AM Changeset in webkit [227790] by
-
- 10 edits in trunk/Source
Add telemetry to track storage access API adoption
https://bugs.webkit.org/show_bug.cgi?id=182197
<rdar://problem/35803309>
Reviewed by Chris Dumez.
Source/WebCore:
Partial roll-out of r227755.
The original patch assumed the WebContent process kept track of user interaction. This is
only tracked in the UIProcess, so we can get rid of some of the logging code adding in
r227755.
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::logFrameNavigation):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::setTimeToLivePartitionFree): Deleted.
(WebCore::ResourceLoadObserver::wasAccessedWithinInteractionWindow const): Deleted.
- loader/ResourceLoadObserver.h:
Source/WebKit:
This patch also handled aggregating the counts in the UIProcess, which has access to
the right data.
The original patch assumed the WebContent process kept track of user interaction. This is
only tracked in the UIProcess, so we can get rid of some of the logging code adding in
r227755.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const): Rollout of r227755 changes not
needed to track the statistics.
(WebKit::WebProcessCreationParameters::decode): Ditto.
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess): Ditto.
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::wasAccessedAsFirstPartyDueToUserInteraction): Moved from
the WebContent process, which does not keep track of user interaction.
(WebKit::WebResourceLoadStatisticsStore::mergeStatistics): Aggregate counts while processing
the statistics.
- UIProcess/WebResourceLoadStatisticsStore.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- 9:21 AM Changeset in webkit [227789] by
-
- 10 edits in trunk/Source
Make sure we never create a WebSWClientConnection with an invalid sessionID
https://bugs.webkit.org/show_bug.cgi?id=182276
<rdar://problem/36582633>
Reviewed by Alex Christensen.
Make sure we never create a WebSWClientConnection with an invalid sessionID as this
could corrupt our hash tables.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::privateBrowsingStateDidChange):
- workers/service/ServiceWorker.cpp:
(WebCore::ServiceWorker::postMessage):
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ready):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::didFinishGetRegistrationRequest):
(WebCore::ServiceWorkerContainer::getRegistrations):
(WebCore::ServiceWorkerContainer::didFinishGetRegistrationsRequest):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::ensureSWClientConnection):
Source/WebKit:
- StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::swServerForSession):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::WebSWClientConnection):
- WebProcess/Storage/WebServiceWorkerProvider.cpp:
(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession):
- WebProcess/Storage/WebToStorageProcessConnection.cpp:
(WebKit::WebToStorageProcessConnection::serviceWorkerConnectionForSession):
- 8:18 AM Changeset in webkit [227788] by
-
- 6 edits in trunk
[WebVR][GTK][WPE] Exclude OpenVR from tarballs
https://bugs.webkit.org/show_bug.cgi?id=182284
Reviewed by Michael Catanzaro.
.:
Added private build options for USE_OPENVR.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Tools:
- gtk/manifest.txt.in: Added ThirdParty/openvr to exclusions.
- wpe/manifest.txt.in: Ditto.
- 8:13 AM Changeset in webkit [227787] by
-
- 10 edits in trunk/Source/WebCore
Avoid traversing too much when doing class change invalidation
https://bugs.webkit.org/show_bug.cgi?id=181604
Reviewed by Zalan Bujtas.
We are now collecting information about which part of the tree a change in class can potentially affect.
Use the information to traverse only the required elements in Style::Invalidator.
The same mechanism can be later used for attribute and id change invalidation.
- css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::collectFeatures const):
(WebCore::DocumentRuleSets::classInvalidationRuleSets const):
(WebCore::DocumentRuleSets::subjectClassRules const): Deleted.
(WebCore::DocumentRuleSets::ancestorClassRules const): Deleted.
Remove separate subject and ancestor invalidation RuleSets. Instead collect all invalidation rulesets
to a vector along with their MatchElements.
- css/DocumentRuleSets.h:
- css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::computeNextMatchElement):
(WebCore::RuleFeatureSet::computeSubSelectorMatchElement):
(WebCore::RuleFeatureSet::collectFeatures):
Similarly collect all class invalidation RuleFeatures to a general HashMap along with the MatchElement.
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
(WebCore::RuleFeatureSet::shrinkToFit):
- css/RuleFeature.h:
(WebCore::RuleFeature::RuleFeature):
- style/ClassChangeInvalidation.cpp:
(WebCore::Style::ClassChangeInvalidation::computeInvalidation):
Find out InvalidationRuleSets to use.
(WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets):
Pass them to Style::Invalidator.
- style/ClassChangeInvalidation.h:
- style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::invalidateStyleForTree):
(WebCore::Style::Invalidator::invalidateStyleForDescendants):
(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):
Traverse only the part of the tree needed by the given MatchElement.
- style/StyleInvalidator.h:
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::classNamesAffectedByRules const):
- 8:03 AM Changeset in webkit [227786] by
-
- 52 edits54 adds in trunk
[css-align] The 'baseline' value must be invalid for the 'justify-content' property
https://bugs.webkit.org/show_bug.cgi?id=181794
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Adapted the test cases using <baseline-position> keywords to the new CSS syntax.
Imported the CSS/support folder.
- resources/import-expectations.json:
- web-platform-tests/css/css-align/content-distribution/parse-align-content-001-expected.txt:
- web-platform-tests/css/css-align/content-distribution/parse-align-content-001.html:
- web-platform-tests/css/css-align/content-distribution/parse-align-content-003-expected.txt:
- web-platform-tests/css/css-align/content-distribution/parse-align-content-003.html:
- web-platform-tests/css/css-align/content-distribution/parse-justify-content-001-expected.txt:
- web-platform-tests/css/css-align/content-distribution/parse-justify-content-001.html:
- web-platform-tests/css/css-align/content-distribution/parse-justify-content-003-expected.txt:
- web-platform-tests/css/css-align/content-distribution/parse-justify-content-003.html:
- web-platform-tests/css/css-align/content-distribution/parse-justify-content-004-expected.txt:
- web-platform-tests/css/css-align/content-distribution/parse-justify-content-004.html:
- web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001-expected.txt:
- web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html:
- web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002-expected.txt:
- web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html:
- web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004-expected.txt:
- web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html:
- web-platform-tests/css/css-align/content-distribution/place-content-shorthand-006-expected.txt:
- web-platform-tests/css/css-align/content-distribution/place-content-shorthand-006.html:
- web-platform-tests/css/css-align/default-alignment/parse-align-items-001-expected.txt:
- web-platform-tests/css/css-align/default-alignment/parse-align-items-001.html:
- web-platform-tests/css/css-align/default-alignment/parse-align-items-003-expected.txt:
- web-platform-tests/css/css-align/default-alignment/parse-align-items-003.html:
- web-platform-tests/css/css-align/default-alignment/parse-justify-items-001-expected.txt:
- web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html:
- web-platform-tests/css/css-align/default-alignment/parse-justify-items-003-expected.txt:
- web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html:
- web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html:
- web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html:
- web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html:
- web-platform-tests/css/css-align/default-alignment/place-items-shorthand-006.html:
- web-platform-tests/css/css-align/resources/alignment-parsing-utils.js:
(checkPlaceShorhand):
(checkPlaceShorhandLonghands):
- web-platform-tests/css/css-align/self-alignment/parse-align-self-001-expected.txt:
- web-platform-tests/css/css-align/self-alignment/parse-align-self-001.html:
- web-platform-tests/css/css-align/self-alignment/parse-align-self-003-expected.txt:
- web-platform-tests/css/css-align/self-alignment/parse-align-self-003.html:
- web-platform-tests/css/css-align/self-alignment/parse-justify-self-001-expected.txt:
- web-platform-tests/css/css-align/self-alignment/parse-justify-self-001.html:
- web-platform-tests/css/css-align/self-alignment/parse-justify-self-003-expected.txt:
- web-platform-tests/css/css-align/self-alignment/parse-justify-self-003.html:
- web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html:
- web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html:
- web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html:
- web-platform-tests/css/css-align/self-alignment/place-self-shorthand-006.html:
- web-platform-tests/css/support/1x1-green.png: Added.
- web-platform-tests/css/support/1x1-lime.png: Added.
- web-platform-tests/css/support/1x1-maroon.png: Added.
- web-platform-tests/css/support/1x1-navy.png: Added.
- web-platform-tests/css/support/1x1-red.png: Added.
- web-platform-tests/css/support/1x1-white.png: Added.
- web-platform-tests/css/support/60x60-gg-rr.png: Added.
- web-platform-tests/css/support/60x60-green.png: Added.
- web-platform-tests/css/support/60x60-red.png: Added.
- web-platform-tests/css/support/OWNERS: Added.
- web-platform-tests/css/support/README: Added.
- web-platform-tests/css/support/a-green.css: Added.
(.a):
- web-platform-tests/css/support/alignment.css: Added.
(.alignSelfAuto):
(.alignSelfNormal):
(.alignSelfStretch):
(.alignSelfStart):
(.alignSelfEnd):
(.alignSelfCenter):
(.alignSelfRight):
(.alignSelfLeft):
(.alignSelfFlexStart):
(.alignSelfFlexEnd):
(.alignSelfSelfStart):
(.alignSelfSelfEnd):
(.alignSelfSafeCenter):
(.alignSelfUnsafeCenter):
(.alignSelfSafeEnd):
(.alignSelfUnsafeEnd):
(.alignSelfSafeSelfEnd):
(.alignSelfUnsafeSelfEnd):
(.alignSelfSafeSelfStart):
(.alignSelfUnsafeSelfStart):
(.alignSelfSafeRight):
(.alignSelfUnsafeRight):
(.alignSelfSafeLeft):
(.alignSelfUnsafeLeft):
(.alignSelfSafeFlexEnd):
(.alignSelfUnsafeFlexEnd):
(.alignSelfSafeFlexStart):
(.alignSelfUnsafeFlexStart):
(.alignSelfBaseline):
(.alignSelfFirstBaseline):
(.alignSelfLastBaseline):
(.alignItemsAuto):
(.alignItemsNormal):
(.alignItemsStretch):
(.alignItemsStart):
(.alignItemsCenter):
(.alignItemsEnd):
(.alignItemsLeft):
(.alignItemsRight):
(.alignItemsFlexStart):
(.alignItemsFlexEnd):
(.alignItemsSelfStart):
(.alignItemsSelfEnd):
(.alignItemsSafeCenter):
(.alignItemsUnsafeCenter):
(.alignItemsSafeEnd):
(.alignItemsUnsafeEnd):
(.alignItemsSafeSelfEnd):
(.alignItemsUnsafeSelfEnd):
(.alignItemsSafeSelfStart):
(.alignItemsUnsafeSelfStart):
(.alignItemsSafeRight):
(.alignItemsUnsafeRight):
(.alignItemsSafeLeft):
(.alignItemsUnsafeLeft):
(.alignItemsSafeFlexEnd):
(.alignItemsUnsafeFlexEnd):
(.alignItemsSafeFlexStart):
(.alignItemsUnsafeFlexStart):
(.alignItemsBaseline):
(.alignItemsFirstBaseline):
(.alignItemsLastBaseline):
(.alignContentBaseline):
(.alignContentLastBaseline):
(.alignContentStart):
(.alignContentEnd):
(.alignContentCenter):
(.alignContentLeft):
(.alignContentRight):
(.alignContentFlexStart):
(.alignContentFlexEnd):
(.alignContentSpaceBetween):
(.alignContentSpaceAround):
(.alignContentSpaceEvenly):
(.alignContentStretch):
(.alignContentSafeCenter):
(.alignContentUnsafeCenter):
(.alignContentSafeEnd):
(.alignContentUnsafeEnd):
(.alignContentSafeRight):
(.alignContentUnsafeRight):
(.alignContentSafeLeft):
(.alignContentUnsafeLeft):
(.alignContentSafeFlexEnd):
(.alignContentUnsafeFlexEnd):
(.alignContentSafeFlexStart):
(.alignContentUnsafeFlexStart):
(.alignContentFirstBaseline):
(.justifySelfAuto):
(.justifySelfNormal):
(.justifySelfStretch):
(.justifySelfStart):
(.justifySelfCenter):
(.justifySelfEnd):
(.justifySelfRight):
(.justifySelfLeft):
(.justifySelfFlexStart):
(.justifySelfFlexEnd):
(.justifySelfSelfStart):
(.justifySelfSelfEnd):
(.justifySelfSafeCenter):
(.justifySelfUnsafeCenter):
(.justifySelfSafeEnd):
(.justifySelfUnsafeEnd):
(.justifySelfSafeSelfEnd):
(.justifySelfUnsafeSelfEnd):
(.justifySelfSafeSelfStart):
(.justifySelfUnsafeSelfStart):
(.justifySelfSafeRight):
(.justifySelfUnsafeRight):
(.justifySelfSafeLeft):
(.justifySelfUnsafeLeft):
(.justifySelfSafeFlexEnd):
(.justifySelfUnsafeFlexEnd):
(.justifySelfSafeFlexStart):
(.justifySelfUnsafeFlexStart):
(.justifySelfBaseline):
(.justifySelfFirstBaseline):
(.justifySelfLastBaseline):
(.justifyItemsAuto):
(.justifyItemsNormal):
(.justifyItemsStretch):
(.justifyItemsStart):
(.justifyItemsCenter):
(.justifyItemsEnd):
(.justifyItemsLeft):
(.justifyItemsRight):
(.justifyItemsFlexStart):
(.justifyItemsFlexEnd):
(.justifyItemsSelfStart):
(.justifyItemsSelfEnd):
(.justifyItemsLegacy):
(.justifyItemsLegacyLeft):
(.justifyItemsLegacyCenter):
(.justifyItemsLegacyRight):
(.justifyItemsLeftLegacy):
(.justifyItemsCenterLegacy):
(.justifyItemsRightLegacy):
(.justifyItemsSafeCenter):
(.justifyItemsUnsafeCenter):
(.justifyItemsSafeEnd):
(.justifyItemsUnsafeEnd):
(.justifyItemsSafeSelfEnd):
(.justifyItemsUnsafeSelfEnd):
(.justifyItemsSafeSelfStart):
(.justifyItemsUnsafeSelfStart):
(.justifyItemsSafeRight):
(.justifyItemsUnsafeRight):
(.justifyItemsSafeLeft):
(.justifyItemsUnsafeLeft):
(.justifyItemsSafeFlexEnd):
(.justifyItemsUnsafeFlexEnd):
(.justifyItemsSafeFlexStart):
(.justifyItemsUnsafeFlexStart):
(.justifyItemsTest):
(.justifyItemsBaseline):
(.justifyItemsFirstBaseline):
(.justifyItemsLastBaseline):
(.justifyContentBaseline):
(.justifyContentLastBaseline):
(.justifyContentStart):
(.justifyContentEnd):
(.justifyContentCenter):
(.justifyContentLeft):
(.justifyContentRight):
(.justifyContentFlexStart):
(.justifyContentFlexEnd):
(.justifyContentSpaceBetween):
(.justifyContentSpaceAround):
(.justifyContentSpaceEvenly):
(.justifyContentStretch):
(.justifyContentSafeCenter):
(.justifyContentUnsafeCenter):
(.justifyContentSafeEnd):
(.justifyContentUnsafeEnd):
(.justifyContentSafeRight):
(.justifyContentUnsafeRight):
(.justifyContentSafeLeft):
(.justifyContentUnsafeLeft):
(.justifyContentSafeFlexEnd):
(.justifyContentUnsafeFlexEnd):
(.justifyContentSafeFlexStart):
(.justifyContentUnsafeFlexStart):
(.justifyContentFirstBaseline):
(.itemsNormal):
(.itemsStretch):
(.itemsStart):
(.itemsCenter):
(.itemsEnd):
(.itemsLeft):
(.itemsRight):
(.itemsSelfStart):
(.itemsSelfEnd):
(.itemsBaseline):
(.selfStretch):
(.selfStart):
(.selfEnd):
(.selfCenter):
(.selfRight):
(.selfLeft):
(.selfSelfStart):
(.selfSelfEnd):
(.selfBaseline):
(.contentStart):
(.contentCenter):
(.contentEnd):
(.contentCenterSafe):
(.contentCenterUnsafe):
(.contentEndSafe):
(.contentEndUnsafe):
(.contentSpaceBetween):
(.contentSpaceAround):
(.contentSpaceEvenly):
(.contentStretch):
- web-platform-tests/css/support/b-green.css: Added.
(.b):
- web-platform-tests/css/support/c-red.css: Added.
(.c):
- web-platform-tests/css/support/cat.png: Added.
- web-platform-tests/css/support/green.ico: Added.
- web-platform-tests/css/support/import-green.css: Added.
(.import):
- web-platform-tests/css/support/import-red.css: Added.
(.import):
- web-platform-tests/css/support/pattern-grg-rgr-grg.png: Added.
- web-platform-tests/css/support/pattern-grg-rrg-rgg.png: Added.
- web-platform-tests/css/support/pattern-rgr-grg-rgr.png: Added.
- web-platform-tests/css/support/pattern-tr.png: Added.
- web-platform-tests/css/support/red.ico: Added.
- web-platform-tests/css/support/ruler-h-50%.png: Added.
- web-platform-tests/css/support/ruler-h-50px.png: Added.
- web-platform-tests/css/support/ruler-v-100px.png: Added.
- web-platform-tests/css/support/ruler-v-50px.png: Added.
- web-platform-tests/css/support/square-purple.png: Added.
- web-platform-tests/css/support/square-teal.png: Added.
- web-platform-tests/css/support/square-white.png: Added.
- web-platform-tests/css/support/support/README: Added.
- web-platform-tests/css/support/support/swatch-green.png: Added.
- web-platform-tests/css/support/support/swatch-red.png: Added.
- web-platform-tests/css/support/support/w3c-import.log: Added.
- web-platform-tests/css/support/swatch-blue.png: Added.
- web-platform-tests/css/support/swatch-green.png: Added.
- web-platform-tests/css/support/swatch-lime.png: Added.
- web-platform-tests/css/support/swatch-orange.png: Added.
- web-platform-tests/css/support/swatch-red.png: Added.
- web-platform-tests/css/support/swatch-teal.png: Added.
- web-platform-tests/css/support/swatch-white.png: Added.
- web-platform-tests/css/support/swatch-yellow.png: Added.
- web-platform-tests/css/support/test-bl.png: Added.
- web-platform-tests/css/support/test-br.png: Added.
- web-platform-tests/css/support/test-inner-half-size.png: Added.
- web-platform-tests/css/support/test-outer.png: Added.
- web-platform-tests/css/support/test-tl.png: Added.
- web-platform-tests/css/support/test-tr.png: Added.
- web-platform-tests/css/support/w3c-import.log: Added.
Source/WebCore:
The CSS WG has resolved that it doesn't make sense to define Baseline
Content-Alignment in the inline/main axis.
https://github.com/w3c/csswg-drafts/issues/1184
The spec has been updated so that <baseline-postion> is not valid for
the 'justify-content' property's syntax. This CL updates our parsing
logic to match the new spec, including the parsing logic of the
place-content shorthand.
Additionally, this CL updates the computed value of the
<baseline-position> values to match other browsers.
We don't implement support for <baseline-position> values in the
Content Distribution properties (align-content and justify-content),
so I don't expect this change to break content of sites using the CSS
Box Alignment feature.
No new tests, just adapt the Web Platform Tests we already have to the new CSS syntax.
- css/parser/CSSPropertyParser.cpp:
(WebCore::getBaselineKeyword):
(WebCore::consumeBaselineKeyword):
(WebCore::consumeContentDistributionOverflowPosition):
(WebCore::consumeSelfPositionOverflowPosition):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeSimplifiedContentPosition):
(WebCore::CSSPropertyParser::consumePlaceContentShorthand):
(WebCore::consumeSimplifiedItemPosition):
- 6:56 AM Changeset in webkit [227785] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
Patch by Frederic Wang <fwang@igalia.com> on 2018-01-30
- TestExpectations: Add Bugzilla references for scrollingElement-quirks-dynamic tests.
- 5:54 AM Changeset in webkit [227784] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE test gardening
This test now has a global flakiness expectation
- platform/wpe/TestExpectations:
- 5:43 AM Changeset in webkit [227783] by
-
- 2 edits in trunk/Tools
Unreviewed, try to fix JSCOnly build
https://bugs.webkit.org/show_bug.cgi?id=177202
- CMakeLists.txt:
- 5:29 AM Changeset in webkit [227782] by
-
- 3 edits in trunk/Tools
Unreviewed. Try to avoid webdriver tests step timing out in the bots.
The process itself doesn't seem to be timing out, but the buildbot is always reporting the step as finished
after timeout. I think there's a race condition or something in buildbot, and it keeps watching the json log
file even when it has already been written. This is a speculative workaround, assuming that's the problem, that
creates the json file before running the tests. I'll revert this if it doesn't fix the issue in the end.
- Scripts/run-webdriver-tests:
- Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py:
(WebDriverTestRunner.dump_results_to_json_file):
- 5:05 AM Changeset in webkit [227781] by
-
- 19 edits in trunk/LayoutTests
Use document.scrollingElement to access viewport scroll properties in tests
https://bugs.webkit.org/show_bug.cgi?id=182241
Patch by Frederic Wang <fwang@igalia.com> on 2018-01-30
Reviewed by Antonio Gomes.
Many tests use document.body in standard mode in order to access scroll properties of the
viewport. This is incorrect per the CSSOM View specification but WebKit does not follow the
spec at the moment (see bug 5991). This replaces several of these instances with
document.scrollingElement, so that tests will still work when WebKit's behavior is changed.
LayoutTests/imported/w3c:
The change in that web-platform-tests test are imported from
https://github.com/w3c/web-platform-tests/commit/fc33ef7641427a3f1388093c54b24f292c21b34d
- web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/003.html:
LayoutTests:
- fast/multicol/scrolling-overflow.html:
- fast/scrolling/latching/iframe_in_iframe.html:
- fast/scrolling/latching/scroll-div-no-latching.html:
- fast/scrolling/latching/scroll-latched-nested-div.html:
- fast/scrolling/latching/scroll-nested-iframe.html:
- http/tests/navigation/anchor-frames-expected.txt:
- http/tests/navigation/anchor-frames-gbk-expected.txt:
- http/tests/navigation/anchor-frames-same-origin-expected.txt:
- http/tests/navigation/resources/frame-with-anchor-gbk.html:
- http/tests/navigation/resources/frame-with-anchor-same-origin.html:
- http/tests/navigation/resources/frame-with-anchor.html:
- tiled-drawing/resources/scroll-and-load-page.html:
- tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html:
- tiled-drawing/scrolling/frames/resources/autoscrolling-frame-with-fixed.html:
- tiled-drawing/scrolling/iframe_in_iframe.html:
- tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt:
- 4:55 AM Changeset in webkit [227780] by
-
- 2 edits in trunk/JSTests
Unreviewed, update test262 expects
https://bugs.webkit.org/show_bug.cgi?id=182232
- test262.yaml:
- 4:06 AM Changeset in webkit [227779] by
-
- 6 edits1 add in trunk
[JSC] Implement trimStart and trimEnd
https://bugs.webkit.org/show_bug.cgi?id=182233
Reviewed by Mark Lam.
JSTests:
- stress/trim.js: Added.
(shouldBe):
(startTest):
(endTest):
(trimTest):
Source/JavaScriptCore:
String.prototype.{trimStart,trimEnd} are now stage 3[1].
String.prototype.{trimLeft,trimRight} are alias to these functions.
We rename these functions to trimStart and trimEnd, and put them as
trimLeft and trimRight too.
[1]: https://tc39.github.io/proposal-string-left-right-trim/
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
(JSC::trimString):
(JSC::stringProtoFuncTrim):
(JSC::stringProtoFuncTrimStart):
(JSC::stringProtoFuncTrimEnd):
(JSC::stringProtoFuncTrimLeft): Deleted.
(JSC::stringProtoFuncTrimRight): Deleted.
LayoutTests:
- js/Object-getOwnPropertyNames-expected.txt:
- js/script-tests/Object-getOwnPropertyNames.js:
- 3:37 AM Changeset in webkit [227778] by
-
- 7 edits in trunk
[WinCairo] Fix forwarding header conflict of WebKit on WinCairo
https://bugs.webkit.org/show_bug.cgi?id=177202
Patch by Basuke Suzuki <Basuke Suzuki> on 2018-01-30
Reviewed by Alex Christensen.
.:
- Source/cmake/WebKitMacros.cmake:
Source/WebCore:
- PlatformWin.cmake:
Source/WebKit:
- PlatformWin.cmake:
Tools:
- CMakeLists.txt:
- 2:07 AM Changeset in webkit [227777] by
-
- 4 edits in trunk/Websites/perf.webkit.org
Should fetch owner commits in build-requests-fetcher.
https://bugs.webkit.org/show_bug.cgi?id=182266
Reviewed by Ryosuke Niwa.
In a build request, owner commit of a commit is not always one of a commit in the commit set.
Build request api should contain owner commits in the 'commits' field of the return value.
- public/include/build-requests-fetcher.php: Added logic to fetch owner commits and added them into 'commits'.
- server-tests/api-build-requests-tests.js: Added a unit test.
- server-tests/resources/mock-data.js:
(MockData.set addTestGroupWithOwnerCommitNotInCommitSet): Added a test group with a build request, the commit set of which does
not contain owner commit of one commit.
- 1:01 AM Changeset in webkit [227776] by
-
- 8 edits in trunk
A disallowed user-installed font may be used if its PostScript name is specified
https://bugs.webkit.org/show_bug.cgi?id=180951
Reviewed by Brent Fulgham.
Source/WebCore:
This patch adds a new CoreText font attribute, kCTFontFallbackOptionAttribute, to the
fonts which WebKit creates. It also adds this attribute to web fonts, so that font
fallback will happen according to our rules about user-installed fonts. It also marks
these font attributes as "mandatory" so CoreText will be guaranteed to follow the
policy.
Test: fast/text/user-installed-fonts/disable.html
- platform/graphics/FontCache.h:
(WebCore::FontDescriptionKey::makeFlagsKey):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontDatabase::collectionForFamily):
(WebCore::FontDatabase::fontForPostScriptName):
(WebCore::addAttributesForUserInstalledFonts):
(WebCore::mandatoryAttributesForUserInstalledFonts):
- platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
Source/WebCore/PAL:
- pal/spi/cocoa/CoreTextSPI.h:
Jan 29, 2018:
- 11:34 PM Changeset in webkit [227775] by
-
- 9 edits1 add in trunk
[JSC] Relax line terminators in String to make JSON subset of JS
https://bugs.webkit.org/show_bug.cgi?id=182232
Reviewed by Keith Miller.
JSTests:
- ChakraCore/test/es5/Lex_u3.baseline-jsc:
- stress/relaxed-line-terminators-in-string.js: Added.
(shouldBe):
Source/JavaScriptCore:
"Subsume JSON" spec is now stage 3[1]. Before this spec change,
JSON can accept \u2028 / \u2029 in string while JS cannot do that.
It accidentally made JSON non subset of JS.
Now we extend our JS string to accept \u2028 / \u2029 to make JSON
subset of JS in this spec change.
[1]: https://github.com/tc39/proposal-json-superset
- parser/Lexer.cpp:
(JSC::Lexer<T>::parseStringSlowCase):
LayoutTests:
- sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A2.3-expected.txt:
- sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A2.3.html:
- sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A2.4-expected.txt:
- sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A2.4.html:
- 11:00 PM Changeset in webkit [227774] by
-
- 11 edits1 add in branches/safari-605-branch
Cherry-pick r227737. rdar://problem/36746140
- 10:32 PM Changeset in webkit [227773] by
-
- 4 edits in trunk/Source
WebDriver: evaluateJavaScriptFunction should return null when return value is undefined
https://bugs.webkit.org/show_bug.cgi?id=180350
Reviewed by Carlos Alberto Lopez Perez.
Source/WebDriver:
Stop handling the empty string as a special case of evaluateJavaScriptFunction result.
- Session.cpp:
(WebDriver::Session::executeScript):
Source/WebKit:
undefined can't be converted to JSON string, in which case JSON.stringify() returns undefined and we handle that
case to return an empty string. We currently handle this case for execute script commands, but not in all other
cases where we use evaluateJavaScriptFunction. It would be simpler if evaluateJavaScriptFunction returned null,
because in that case we wouldn't need to handle it as a special case.
15.2 Executing Script
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-json-clone
Fixes: imported/w3c/webdriver/tests/state/get_element_property.py::test_element_non_existent
- WebProcess/Automation/WebAutomationSessionProxy.js:
(let.AutomationSessionProxy.prototype._jsonStringify): Return "null" instead of "" when undefined is given.
- 9:56 PM Changeset in webkit [227772] by
-
- 2 edits in trunk/Source/WebKit
Release assert in updateLayout while waiting for sync reply to WebPageProxy::HasInsecureContent
https://bugs.webkit.org/show_bug.cgi?id=182273
Reviewed by Chris Dumez.
The assertion was caused by unrelated sync IPCs being processed while WebContent process is waiting for
the reply to WebPageProxy::HasInsecureContent. Since this IPC can be used while creating CachedFrame,
it's not safe to execute arbitrary code.
Fixed the bug by using DoNotProcessIncomingMessagesWhenWaitingForSyncReply added in r227566.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame):
- 9:36 PM Changeset in webkit [227771] by
-
- 2 edits in trunk/Source/WebKit
Add a build step to copy resources from WebKitAdditions as bundle resources in WebKit
https://bugs.webkit.org/show_bug.cgi?id=182268
<rdar://problem/37003784>
Reviewed by Tim Horton and Dan Bernstein.
Adds a "Copy Additional Resources" phase when building WebKit. This phase copies resources from
usr/local/include/WebKitAdditions/WebKit/AdditionalResources in the build directory into the
unlocalized resources directory. If the AdditionalResources directory does not exist in the build
directory, we fall back to searching the SDK.
- WebKit.xcodeproj/project.pbxproj:
- 6:15 PM Changeset in webkit [227770] by
-
- 7 edits in trunk
ServiceWorkerClientFetch should not consider responses without Location headers as redirection responses
https://bugs.webkit.org/show_bug.cgi?id=182134
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-29
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt:
Source/WebKit:
As per fetch spec, a response with a redirection status code but no Location header should not be considered as a redirection.
This is also consistent with SubresourceLoader::didReceiveResponse.
- WebProcess/Storage/ServiceWorkerClientFetch.cpp:
(WebKit::ServiceWorkerClientFetch::didReceiveResponse):
LayoutTests:
- 6:04 PM Changeset in webkit [227769] by
-
- 2 edits in trunk/PerformanceTests
StyleBench: Remove : from a test name
https://bugs.webkit.org/show_bug.cgi?id=182258
Reviewed by Ryosuke Niwa.
It breaks reporting.
- StyleBench/resources/style-bench.js:
(nthPseudoClassConfiguration):
- 5:41 PM Changeset in webkit [227768] by
-
- 7 edits2 adds in trunk
Cache API should make sure to resolve caches.open promises in the same order as called
https://bugs.webkit.org/show_bug.cgi?id=182193
<rdar://problem/36930363>
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-29
Reviewed by Chris Dumez.
Source/WebCore:
Covered by LayoutTests/http/wpt/cache-storage/cache-open-delete-in-parallel.https.html.
- Modules/cache/DOMCacheStorage.cpp:
(WebCore::DOMCacheStorage::doRemove): Removed optimization consisting in removing the cache from DOMCacheStorage object synchronously.
This optimization prevents going to the network process to try deleting the cache.
Source/WebKit:
Covered by added test.
Whenever opening/removing a cache requires writing to disk, wait to finish the task
until any disk writing task is done.
Applying this strategy when clearing data so that we also clear data that is pending to be written.
For removing cache, we now return whether a cache was actually deleted by returning zero as removed cache identifier.
WebCore uses that information to return true/false as promise resolution value.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::retrieveCaches):
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::clear):
(WebKit::CacheStorage::Caches::open):
(WebKit::CacheStorage::Caches::remove):
(WebKit::CacheStorage::Caches::writeCachesToDisk):
(WebKit::CacheStorage::Caches::cacheInfos):
(WebKit::CacheStorage::Caches::cacheInfos const): Deleted.
- NetworkProcess/cache/CacheStorageEngineCaches.h:
(WebKit::CacheStorage::Caches::createWeakPtr):
LayoutTests:
- http/wpt/cache-storage/cache-open.https-expected.txt: Added.
- http/wpt/cache-storage/cache-open.https.html: Added.
- 5:38 PM Changeset in webkit [227767] by
-
- 2 edits in trunk/PerformanceTests
Temporarily skip StyleBench until webkit.org/b/182088 is fixed.
- Skipped:
- 5:33 PM Changeset in webkit [227766] by
-
- 2 edits in trunk/LayoutTests
Marked imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=182177
Unreviewed test expectations.
- 5:27 PM Changeset in webkit [227765] by
-
- 6 edits in trunk
Clean up API after bugs 178240 and 176474
https://bugs.webkit.org/show_bug.cgi?id=182259
Reviewed by Dan Bernstein.
Source/WebKit:
NS_OPTIONS should be NSUInteger, not NSInteger. This is how all other NS_OPTIONS in WebKit are,
and it's necessary if we get really big numbers as options. Changing them won't cause binary
incompatibility unless someone does signed integer comparison with currently invalid values.
Added availability macros I forgot to add earlier.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(TEST):
(-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]):
- 5:20 PM Changeset in webkit [227764] by
-
- 60 edits in trunk
[WebAuthN] Add a compile-time feature flag
https://bugs.webkit.org/show_bug.cgi?id=182211
<rdar://problem/36936365>
Reviewed by Brent Fulgham.
.:
- Source/cmake/WebKitFeatures.cmake:
- Source/cmake/tools/vsprops/FeatureDefines.props:
- Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Add a compile-time feature flag for WebAuthN as most of the functionality is platform
dependent.
No tests.
- Configurations/FeatureDefines.xcconfig:
- Modules/credentialmanagement/BasicCredential.cpp:
- Modules/credentialmanagement/BasicCredential.h:
- Modules/credentialmanagement/BasicCredential.idl:
- Modules/credentialmanagement/CredentialCreationOptions.h:
- Modules/credentialmanagement/CredentialCreationOptions.idl:
- Modules/credentialmanagement/CredentialRequestOptions.h:
- Modules/credentialmanagement/CredentialRequestOptions.idl:
- Modules/credentialmanagement/CredentialsContainer.cpp:
- Modules/credentialmanagement/CredentialsContainer.h:
- Modules/credentialmanagement/CredentialsContainer.idl:
- Modules/credentialmanagement/NavigatorCredentials.cpp:
- Modules/credentialmanagement/NavigatorCredentials.h:
- Modules/credentialmanagement/NavigatorCredentials.idl:
- Modules/webauthn/Authenticator.cpp:
- Modules/webauthn/Authenticator.h:
- Modules/webauthn/AuthenticatorAssertionResponse.cpp:
- Modules/webauthn/AuthenticatorAssertionResponse.h:
- Modules/webauthn/AuthenticatorAssertionResponse.idl:
- Modules/webauthn/AuthenticatorAttestationResponse.cpp:
- Modules/webauthn/AuthenticatorAttestationResponse.h:
- Modules/webauthn/AuthenticatorAttestationResponse.idl:
- Modules/webauthn/AuthenticatorResponse.cpp:
- Modules/webauthn/AuthenticatorResponse.h:
- Modules/webauthn/AuthenticatorResponse.idl:
- Modules/webauthn/PublicKeyCredential.cpp:
- Modules/webauthn/PublicKeyCredential.h:
- Modules/webauthn/PublicKeyCredential.idl:
- Modules/webauthn/PublicKeyCredentialCreationOptions.h:
- Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
- Modules/webauthn/PublicKeyCredentialDescriptor.h:
- Modules/webauthn/PublicKeyCredentialDescriptor.idl:
- Modules/webauthn/PublicKeyCredentialRequestOptions.h:
- Modules/webauthn/PublicKeyCredentialRequestOptions.idl:
- Modules/webauthn/PublicKeyCredentialType.h:
- Modules/webauthn/PublicKeyCredentialType.idl:
- bindings/js/JSAuthenticatorResponseCustom.cpp:
- bindings/js/JSBasicCredentialCustom.cpp:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Tools:
- Scripts/webkitperl/FeatureList.pm:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
Skip WebAuthN related tests on certain platforms as they won't
support it immediately.
- platform/gtk/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- platform/wpe/TestExpectations:
- 4:37 PM Changeset in webkit [227763] by
-
- 2 edits in trunk/LayoutTests
Mark webrtc/captureCanvas-webrtc.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=181835
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:25 PM Changeset in webkit [227762] by
-
- 16 edits in trunk/Source
Resource Load Statistics: Introduce debug mode as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=182199
<rdar://problem/36930364>
Reviewed by Alex Christensen.
Source/WebCore:
No new tests. This adds an experimental feature.
The only changes to default behavior are:
- Increased resolution on timestamps which is needed to be able to set shorter timeouts in debug mode.
- Only update partitioning and blocking table when needed. This is an optimization which pays off in less XPC with shorter timeouts.
- loader/ResourceLoadObserver.cpp:
(WebCore::reduceTimeResolution):
(WebCore::ResourceLoadObserver::logFrameNavigation):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::reduceToHourlyTimeResolution): Deleted.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setResourceLoadStatisticsDebugMode):
(WebCore::RuntimeEnabledFeatures::resourceLoadStatisticsDebugMode const):
- page/Settings.yaml:
Source/WebKit:
The only changes to default behavior are:
- Increased resolution on timestamps which is needed to be able to set shorter timeouts in debug mode.
- Only update partitioning and blocking table when needed. This is an optimization which pays off in less XPC with shorter timeouts.
- Shared/WebPreferences.yaml:
- UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::resourceLoadStatisticsDebugMode const):
(API::WebsiteDataStore::setResourceLoadStatisticsDebugMode):
- UIProcess/API/APIWebsiteDataStore.h:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetResourceLoadStatisticsDebugMode):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsDebugMode]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsDebugMode:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resourceLoadStatisticsDebugMode const):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- 4:16 PM Changeset in webkit [227761] by
-
- 3 edits in trunk/LayoutTests
Switch grandfathering layout test to trigger on data record scanning instead of data record modification
https://bugs.webkit.org/show_bug.cgi?id=181482
<rdar://problem/36549026>
Unreviewed test gardening.
- http/tests/resourceLoadStatistics/grandfathering.html:
Switched from
testRunner.installStatisticsDidModifyDataRecordsCallback()
to
testRunner.installStatisticsDidScanDataRecordsCallback().
- platform/mac-wk2/TestExpectations:
Marked as [ Pass ] again.
- 3:39 PM Changeset in webkit [227760] by
-
- 10 edits4 adds in trunk
FetchResponse should support ConsumeData callback on chunk data is received: handling ReadableStream bodies
https://bugs.webkit.org/show_bug.cgi?id=182008
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-chunk-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-chunk-worker.js: Added.
(const.process):
(this.step):
(this.run):
(const.asyncSteps):
Source/WebCore:
Modify FetchResponse to support ConsumeData callback with
handling of ReadableStream by chunks
- Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::put):
- Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::resolve):
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::consumeBodyFromReadableStream):
- Modules/fetch/FetchResponse.h:
- Modules/streams/ReadableStreamChunk.h: Added.
- Modules/streams/ReadableStreamSink.cpp:
(WebCore::ReadableStreamToSharedBufferSink::enqueue):
(WebCore::ReadableStreamToSharedBufferSink::close):
- Modules/streams/ReadableStreamSink.h:
- WebCore.xcodeproj/project.pbxproj:
- workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::processResponse):
- 3:20 PM Changeset in webkit [227759] by
-
- 11 edits7 adds in trunk
[iOS] Restrict synthetic clicks to the origin that handled the underlying touch event
https://bugs.webkit.org/show_bug.cgi?id=182252
<rdar://problem/21555881>
Reviewed by Tim Horton.
Source/WebCore:
Test: http/tests/events/touch/ios/cross-frame-single-tap-same-origin.https.html
- dom/Document.h:
(WebCore::Document::handlingTouchEvent const):
- page/EventHandler.h:
(WebCore::EventHandler::touchEventTargetSubframe const):
(WebCore::EventHandler::touches const):
Exposed some information needed by WebPage::updatePotentialTapSecurityOrigin().
- page/Frame.h:
- page/ios/FrameIOS.mm:
(WebCore::Frame::betterApproximateNode):
(WebCore::Frame::qualifyingNodeAtViewportLocation):
Changed NodeQualifier from a function pointer to a WTF::Function.
(WebCore::Frame::nodeRespondingToClickEvents):
Turned ancestorRespondingToClickEvents() into a lambda that captures originRestriction. In
the lambda, if there is an origin restriction, return nullptr if the hit test result's inner
Node is not in the restricted origin.
(WebCore::Frame::nodeRespondingToScrollWheelEvents):
Turned ancestorRespondingToScrollWheelEvents() into a lambda.
(WebCore::ancestorRespondingToScrollWheelEvents):
Moved to lambda in nodeRespondingToScrollWheelEvents().
(WebCore::ancestorRespondingToClickEvents):
Moved to lambda in nodeRespondingToClickEvents().
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::dispatchTouchEvent):
(WebKit::WebPage::updatePotentialTapSecurityOrigin):
Record the target frame origin of touch events that are potential taps, are
TouchStart events, are targeted in frames that have touch event listeners, and are not
handled by those listeners.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::potentialTapAtPosition):
(WebKit::WebPage::commitPotentialTap):
(WebKit::WebPage::cancelPotentialTapInFrame):
Passed the target frame origin to Frame::nodeRespondingToClickEvents() then cleared it.
LayoutTests:
- TestExpectations:
- http/tests/events/touch/ios/cross-frame-single-tap-same-origin.https-expected.txt: Added.
- http/tests/events/touch/ios/cross-frame-single-tap-same-origin.https.html: Added.
- http/tests/events/touch/ios/resources/click-target.html: Added.
- 3:17 PM Changeset in webkit [227758] by
-
- 2 edits in trunk/Source/WebKit
Make policy checks more robust against null pointer dereferencing
https://bugs.webkit.org/show_bug.cgi?id=182263
<rdar://problem/34895714>
Reviewed by Tim Horton.
We're still dereferencing null. Check everything.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
- 2:35 PM Changeset in webkit [227757] by
-
- 2 edits in trunk/Source/WebCore
Trivially cleanup std::optional usage in RenderBlockFlow.
https://bugs.webkit.org/show_bug.cgi?id=182142
Reviewed by Antti Koivisto.
No new tests, no behavior change.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):
- 2:09 PM Changeset in webkit [227756] by
-
- 3 edits6 copies in trunk/PerformanceTests
Make StyleBench compatible with run-benchmark and run-perf-tests
https://bugs.webkit.org/show_bug.cgi?id=182262
Reviewed by Antti Koivisto.
Copied resource files referenced from Speedometer directory since run-benchmark needs to be able
to checkout each benchmark separately.
Removed the code to create tests of the same name five times in makeSteps since this
won't be compatible with either run-benchmark or run-perf-tests.
- StyleBench/index.html: Removed the code to show warnings for local files since run-benchmark
doesn't use HTTP server in WebDriver mode.
- StyleBench/resources/benchmark-report.js: Copied from resources/benchmark-report.js.
- StyleBench/resources/benchmark-runner.js: Copied from resources/benchmark-runner.js.
(BenchmarkRunner.prototype._finalize): Use the correction factor of 8 instead of 5 in StyleBench.
- StyleBench/resources/gauge.png: Copied from resources/gauge.png.
- StyleBench/resources/gauge@2x.png: Copied from resources/gauge@2x.png.
- StyleBench/resources/main.css: Copied from resources/main.css.
- StyleBench/resources/main.js: Copied from resources/main.js.
- StyleBench/resources/tests.js:
(makeSteps): Only make each test once.
- 2:00 PM Changeset in webkit [227755] by
-
- 11 edits in trunk/Source
Add telemetry to track storage access API adoption
https://bugs.webkit.org/show_bug.cgi?id=182197
<rdar://problem/35803309>
Reviewed by Chris Dumez.
Source/WebCore:
Part 1: Add telemetry for the user interaction case
This patch adds telemetry to track how frequently third-party cookies are
used in a first party context due to user interaction. This will help
understand cases where the new Storage Access API can help, and to help
us understand if we have considered relevant use cases in its design.
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::setTimeToLivePartitionFree): Let the observer
know the first party interaction duration.
(WebCore::ResourceLoadObserver::wasAccessedWithinInteractionWindow const): Added.
(WebCore::ResourceLoadObserver::logFrameNavigation): Note when a third party
resource is accessed as a first party due to user interaction.
(WebCore::ResourceLoadObserver::logSubresourceLoading): Ditto.
- loader/ResourceLoadObserver.h:
- loader/ResourceLoadStatistics.cpp:
(WebCore::ResourceLoadStatistics::encode const): Handle new fields.
(WebCore::ResourceLoadStatistics::decode): Ditto.
- loader/ResourceLoadStatistics.h:
Source/WebKit:
Part 1: Add telemetry for the user interaction case
This patch adds telemetry to track how frequently third-party cookies are
used in a first party context due to user interaction. This will help
understand cases where the new Storage Access API can help, and to help
us understand if we have considered relevant use cases in its design.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/WebResourceLoadStatisticsTelemetry.cpp:
(WebKit::sortedPrevalentResourceTelemetry): Update for new telemetry.
(WebKit::submitTopList): Update for new data types.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess): Handle the partitioning time
passed from the UIProcess.
- 1:58 PM Changeset in webkit [227754] by
-
- 2 edits in trunk/Source/WebKit
Fix crash when during canAuthenticateAgainstProtectionSpace
https://bugs.webkit.org/show_bug.cgi?id=182260
<rdar://problem/34911343>
Reviewed by Chris Dumez.
If we have a valid network load with no challenge completion handler and we are
telling it to continue with the challenge handling, something has gone wrong.
Maybe we've just recovered from a crashed network process. If this happens, do nothing.
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
- 1:46 PM Changeset in webkit [227753] by
-
- 3 edits in trunk/Source/WebCore
CalcExpressionBlendLength::evaluate hits stack limit
https://bugs.webkit.org/show_bug.cgi?id=182243
Reviewed by Zalan Bujtas.
Speculative fix to prevent nesting of CalcExpressionBlendLength.
No test, don't know how to make one.
- platform/CalculationValue.cpp:
(WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength):
CalcExpressionBlendLength is only used in Length values of animated style. Normally such styles are not used
as input for further blending but there are some paths where this could in principle happen. Repeated
application (for each animation frame) could construct CalcExpressionBlendLength expression that blows
the stack when evaluated.
Speculatively fix by flattening any nesting.
- platform/CalculationValue.h:
(WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength): Deleted.
- 1:32 PM Changeset in webkit [227752] by
-
- 3 edits in trunk/Source/WebKit
Warning in 32-bit WebKit build when trying to link to SafariSafeBrowsing
https://bugs.webkit.org/show_bug.cgi?id=182251
rdar://problem/36964995
Patch by Zach Li <zacharyli323@gmail.com> on 2018-01-29
Reviewed by Alex Christensen.
- Configurations/WebKit.xcconfig:
Only link against SafariSafeBrowsing framework in 64-bit architecture.
- Platform/spi/Cocoa/SafeBrowsingSPI.h:
Guard the Safe Browsing code with WK_API_ENABLED.
- 1:20 PM Changeset in webkit [227751] by
-
- 2 edits in trunk/Source/WebKit
Make sure we do not re-enter Webcore during StorageToWebProcessConnection::EstablishSWServerConnection Sync IPC
https://bugs.webkit.org/show_bug.cgi?id=182256
<rdar://problem/36689233>
Reviewed by Simon Fraser.
Make sure we do not re-enter Webcore during StorageToWebProcessConnection::EstablishSWServerConnection Sync IPC as
this can lead to crashes such as the one in <rdar://problem/36689233>.
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::WebSWClientConnection):
- 12:38 PM Changeset in webkit [227750] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Add the support for reporting Speedometer 2.0 results to perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=182089
<rdar://problem/36172346>
Rubber-stamped by Chris Dumez.
Apparently, this has always worked since the very first version of the perf dashboard added in r163688.
The relevant code is at the line 313 of report-processor.php now.
Added regression tests for this feature since we didn't have any tests four years ago.
- server-tests/api-report-tests.js:
- 12:35 PM Changeset in webkit [227749] by
-
- 2 edits in trunk/Websites/perf.webkit.org
REGRESSION(r225898): The perf dashboard fails to open when there are no summary pages
https://bugs.webkit.org/show_bug.cgi?id=182210
Rubber-stamped by Chris Dumez.
The bug was caused by TestFreshnessPage unconditionally assuming that summaryPageConfiguration is set.
Fixed it by not creating TestFreshnessPage when there are no summary pages specified.
Also modernized the code to use const & let instead of var.
- public/v3/main.js:
(main):
- 12:34 PM Changeset in webkit [227748] by
-
- 2 edits in trunk/Tools
Make the API test added in r227737 be Mac-only.
Unreviewed gardening.
- TestWebKitAPI/Tests/WebKitCocoa/MessagePortProviders.mm:
- 12:31 PM Changeset in webkit [227747] by
-
- 3 edits1 add in trunk/Websites/perf.webkit.org
Perf dashboard's page title can be set to a previously visited page
https://bugs.webkit.org/show_bug.cgi?id=182209
Rubber-stamped by Chris Dumez.
Before this patch, opening a page and navigating away from it could result in the page title
getting set to that of the previously visited page after the new page had been opened.
This bug was caused by Page.render keep setting document.title even though the page is no longer
the currently open page of the router. Fixed it by exiting early in Page.enqueueToRender when
this page is not the currently open page of the router.
Also added basic tests for Page.
- browser-tests/index.html:
- browser-tests/page-tests.js: Added.
- public/v3/pages/page.js:
(Page): Removed the unused second constructor argument.
(Page.prototype.enqueueToRender): Fixed the bug.
(Page.prototype.render): Use const instead of var.
- 12:27 PM Changeset in webkit [227746] by
-
- 3 edits in trunk/Websites/perf.webkit.org
CommitLogViewer should not fetch commits in serial
https://bugs.webkit.org/show_bug.cgi?id=182207
Rubber-stamped by Chris Dumez.
Fetch both the commits in the range as well as the preceding commit at once instead of
fetching the preceding commit only after the commits in the range had been fetched.
- browser-tests/commit-log-viewer-tests.js: Fixed the tcoest case after r224227.
- public/v3/components/commit-log-viewer.js:
(CommitLogViewer.prototype._fetchCommitLogs): Fetch commits in parallel.
- 11:45 AM Changeset in webkit [227745] by
-
- 3 edits in trunk/Source/WebCore
Drop unnecessary "ServiceWorker Task Thread" in SWServer
https://bugs.webkit.org/show_bug.cgi?id=182253
Reviewed by Youenn Fablet.
Drop unnecessary "ServiceWorker Task Thread" in SWServer. We're spinning a thread for
each SWServer that is never used.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::~SWServer):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::taskThreadEntryPoint): Deleted.
(WebCore::SWServer::postTask): Deleted.
(WebCore::SWServer::postTaskReply): Deleted.
(WebCore::SWServer::handleTaskRepliesOnMainThread): Deleted.
- workers/service/server/SWServer.h:
- 11:29 AM Changeset in webkit [227744] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Zooming gesture incorrectly uses scale instead of zoom
https://bugs.webkit.org/show_bug.cgi?id=182174
Patch by Jan-Michael Brummer <jan.brummer@tabos.org> on 2018-01-29
Reviewed by Michael Catanzaro.
Switch zooming gesture to use zoom instead of scale function.
- UIProcess/gtk/GestureController.cpp:
(WebKit::GestureController::ZoomGesture::begin):
(WebKit::GestureController::ZoomGesture::handleZoom):
- 11:27 AM Changeset in webkit [227743] by
-
- 10 edits in trunk
Unreviewed, rolling out r227731.
This caused and assertion failure in API tests.
Reverted changeset:
"Layout Test fast/events/beforeunload-dom-manipulation-
crash.html is crashing"
https://bugs.webkit.org/show_bug.cgi?id=181204
https://trac.webkit.org/changeset/227731
- 11:13 AM Changeset in webkit [227742] by
-
- 3 edits1 add in trunk
REGRESSION (r227341): DFG_ASSERT failure at JSC::DFG::AtTailAbstractState::forNode()
https://bugs.webkit.org/show_bug.cgi?id=182249
Reviewed by Keith Miller.
JSTests:
New regression test.
- stress/compare-clobber-untypeduse.js: Added.
Source/JavaScriptCore:
Changed clobberize() handling of CompareEq, et al to properly handle comparisons between
Untyped and Object values when compared against built in types. Such comparisons can
invoke toNumber() or other methods.
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- 10:37 AM Changeset in webkit [227741] by
-
- 1 edit2 moves in trunk/LayoutTests
Move http/wpt/service-workers/clone-opaque-being-loaded-response.https.html to use HTTP
https://bugs.webkit.org/show_bug.cgi?id=182202
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-29
Reviewed by Chris Dumez.
Some bots dislike cross origin HTTPS fetches.
- http/wpt/service-workers/clone-opaque-being-loaded-response-expected.txt: Renamed from LayoutTests/http/wpt/service-workers/clone-opaque-being-loaded-response.https-expected.txt.
- http/wpt/service-workers/clone-opaque-being-loaded-response.html: Renamed from LayoutTests/http/wpt/service-workers/clone-opaque-being-loaded-response.https.html.
- 10:37 AM Changeset in webkit [227740] by
-
- 3 edits in trunk/Tools
WPT test exporter should add WebKit export in its PR description
https://bugs.webkit.org/show_bug.cgi?id=182246
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-29
Reviewed by Chris Dumez.
Updating PR description body to contain the words 'WebKit export'.
That way, WPT PR bot will mark the PR as reviewed downstream.
- Scripts/webkitpy/w3c/test_exporter.py:
(TestExporter.init):
(TestExporter.make_pull_request):
- Scripts/webkitpy/w3c/test_exporter_unittest.py:
(TestExporterTest.test_export):
- 10:18 AM Changeset in webkit [227739] by
-
- 6 edits2 adds in trunk/Tools
Add the support for running Speedometer 2.0 to run-benchmark
https://bugs.webkit.org/show_bug.cgi?id=182231
Reviewed by Antti Koivisto.
Made it possible to run Speedometer 2.0 using run-benchmark. To do this, this patch adds the ability to
aggregate results using the differently aggregated values of subtests. In particular, Speedometer 2.0
requires aggregating the geometric mean out of total time spent in each suite.
Also added --show-iteration-values to show individual measured values in each iteration.
- Scripts/webkitpy/benchmark_runner/benchmark_results.py:
(BenchmarkResults.format): Added show_iteration_values as an option.
(BenchmarkResults._format_tests): Ditto.
(BenchmarkResults._format_values): Ditto. Added the code to show the measured values for each iteration
when show_iteration_values is set to True. We don't emit the unit in each value so that the list of values
is easily parsable as a JSON array.
(BenchmarkResults._format_values.format_scaled): Added. A helper function.
(BenchmarkResults._subtest_values_by_config_iteration): Added the support for aggregating values using
the aggregated values of a subtest even when they were computed using a different aggregator if the subtest
had exactly one aggregator.
(BenchmarkResults._lint_results):
(BenchmarkResults._lint_subtest_results): Replaced parent_needing_aggregation, which is set to the parent
test's name only when the parent test had an aggregator, by self-explanatory parent_test and
parent_aggregator_list.
(BenchmarkResults._lint_aggregator_list): Ditto. Added raise an exception when a test has an aggregator but
its subtest doesn't specify the same aggregator or it has more than one aggregators, making it ambiguous.
(BenchmarkResults._lint_configuration):
- Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py:
(test_format_values_with_no_unit_scaling): Added.
(test_format_values_with_iteration_values): Added.
(test_format_values_with_no_unit_scaling_and_iteration_values): Added.
(test_aggregate_results_from_another_aggregator): Added.
(test_lint_results): Added a test case.
- Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.init): Added show_iteration_values as an argument.
(BenchmarkRunner._run_benchmark): Ditto.
(BenchmarkRunner.show_results): Ditto.
- Scripts/webkitpy/benchmark_runner/data/patches/webserver/Speedometer2.patch: Added.
- Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan: Added.
- Scripts/webkitpy/benchmark_runner/run_benchmark.py:
(parse_args): Added --show-iteration-values as a boolean argument.
(run_benchmark_plan): Ditto.
(start): Ditto.
- Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py:
(WebServerBenchmarkRunner.init): Ditto.
- 9:47 AM Changeset in webkit [227738] by
-
- 15 edits2 deletes in trunk
Unreviewed, rolling out r227725.
This caused internal failures.
Reverted changeset:
"JSC Sampling Profiler: Detect tester and testee when sampling
in RegExp JIT"
https://bugs.webkit.org/show_bug.cgi?id=152729
https://trac.webkit.org/changeset/227725
- 9:45 AM Changeset in webkit [227737] by
-
- 11 edits1 add in trunk
Make it possible for apps that use both WK1 and WK2 to use MessagePorts.
https://bugs.webkit.org/show_bug.cgi?id=182229
Reviewed by Chris Dumez.
Source/WebCore:
Covered by existing LayoutTests and a new API test.
- dom/messageports/MessagePortChannel.cpp:
(WebCore::MessagePortChannel::checkRemotePortForActivity): Don't use the global singleton
provider. Instead use the provider that belongs to the owning registry.
- dom/messageports/MessagePortChannelProviderImpl.cpp:
(WebCore::MessagePortChannelProviderImpl::MessagePortChannelProviderImpl): Pass a reference
to *this to the Registry.
- dom/messageports/MessagePortChannelProviderImpl.h:
- dom/messageports/MessagePortChannelRegistry.cpp:
(WebCore::MessagePortChannelRegistry::MessagePortChannelRegistry): Keep a Provider member so
MessagePortChannels can get to it instead of relying on the global singleton provider.
- dom/messageports/MessagePortChannelRegistry.h:
(WebCore::MessagePortChannelRegistry::provider):
Source/WebKit:
- UIProcess/UIMessagePortChannelProvider.cpp:
(WebKit::UIMessagePortChannelProvider::UIMessagePortChannelProvider):
- UIProcess/WebPageProxy.cpp:
(WebKit::m_configurationPreferenceValues): The UI process does not need to override the
global singleton provider. It can remain the default ProviderImpl to allow WK1 views
to work fine, too.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/MessagePortProviders.mm: Added.
- 9:07 AM Changeset in webkit [227736] by
-
- 2 edits in branches/safari-605-branch/LayoutTests
Cherry-pick r227708. rdar://problem/36915685
- 9:07 AM Changeset in webkit [227735] by
-
- 2 edits in branches/safari-605-branch/LayoutTests
Cherry-pick r227203. rdar://problem/36837397
- 8:57 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 8:56 AM Changeset in webkit [227734] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE test gardening
- platform/wpe/TestExpectations:
- 8:47 AM Changeset in webkit [227733] by
-
- 2 edits in trunk/Source/WebKit
WebDriver: ASSERTION FAILED: !m_loadTimer.isActive()
https://bugs.webkit.org/show_bug.cgi?id=182237
Reviewed by Carlos Alberto Lopez Perez.
We should stop the load timer when we dispatch the pending navigation callbacks due to an alert open.
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::willShowJavaScriptDialog):
- 8:45 AM Changeset in webkit [227732] by
-
- 3 edits in trunk/Tools
WebDriver: properly recover w3c tests after a webdriver server crash
https://bugs.webkit.org/show_bug.cgi?id=182242
Reviewed by Carlos Alberto Lopez Perez.
When a test makes the webdriver server crash, all other subsequent tests fail because they still try to send
messages to the server, gettin connection refused errors all the time. Selenium tests handle this correctly by
relaunching the server after every test failure, because other failures, even when not crashing the server,
might leave it in an bad state. WPT runner does the same for test files, it uses a subprocess to run the tests
and when any subtest fails, a new subsprocess is used for the following test file. We could do the same.
- Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:
(WebDriverTestRunnerW3C.run): Restart the executor if any subtest failed.
- Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:
(WebDriverW3CExecutor.init): Save timeout and expectations and do not import pytest.
(WebDriverW3CExecutor.setup): Create a subprocess to run the tests.
(WebDriverW3CExecutor.teardown): Send a message to the subprocess to terminate.
(WebDriverW3CExecutor._runner): Run the tests using pytest runner.
(WebDriverW3CExecutor.run): Send a message to the subprocess to run the given test and return the results message.
- 8:02 AM Changeset in webkit [227731] by
-
- 10 edits in trunk
Layout Test fast/events/beforeunload-dom-manipulation-crash.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=181204
<rdar://problem/36256274>
Reviewed by Ryosuke Niwa.
Source/WebCore:
When a frame element is moved in the DOM tree during the execution of a beforeunload handler,
the frame will be detached when removed from its previous position in the DOM tree. When being
detached, an attempt will also be made to stop the load by calling FrameLoader::stopAllLoaders().
However, this method will return early when executed in a beforeunload handler, since navigation
is not allowed then. The end result is a detached frame which will continue to load, and hitting
asserts in DocumentLoader::dataReceived(), and DocumentLoader::notifyFinished(). It should be
possible to stop a frame load, even when executing a beforeunload handler.
No new tests. Covered by the existing test fast/events/beforeunload-dom-manipulation-crash.html.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::isStopLoadingAllowed const):
(WebCore::FrameLoader::stopAllLoaders):
- loader/FrameLoader.h:
Tools:
Implement 'testRunner.forceImmediateCompletion()' for WK1.
- DumpRenderTree/TestRunner.cpp:
(forceImmediateCompletionCallback):
(TestRunner::staticFunctions):
LayoutTests:
- fast/events/beforeunload-dom-manipulation-crash.html: Make it clear that the
frame element is a child of the 'del' element.
- fast/events/beforeunload-dom-manipulation-crash-expected.html:
- platform/mac-wk1/TestExpectations: Unskip test.
- 7:56 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 7:35 AM Changeset in webkit [227730] by
-
- 2 edits in trunk/LayoutTests
Mark js/dom/array-with-double-assign.html as a failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=182239
Unreviewed test gardening.
- platform/win/TestExpectations:
- 7:26 AM Changeset in webkit [227729] by
-
- 2 edits in trunk/Source/WebCore
[CoordnatedGraphics] A child layer of a semitransparent layer isn't clipped properly
https://bugs.webkit.org/show_bug.cgi?id=181080
Reviewed by Žan Doberšek.
Check whether the applied clipping area is empty before drawing the children of a TextureMapperLayer. If
the area is empty no children will be drawn, so we can avoid drawing them.
No new tests -- no change in behavior.
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelfAndChildren):
- 6:32 AM Changeset in webkit [227728] by
-
- 11 edits in trunk/Source
[Cairo] Add GraphicsContextImplCairo::createFactory() helpers
https://bugs.webkit.org/show_bug.cgi?id=182238
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Instead of duplicating lambdas that return a newly-created
GraphicsContextImplCairo object, provide static createFactory() helpers
on that class that produce GraphicsContextImplFactory wrappers which are
then invoked in the GraphicsContext constructor. The static functions
accept either the PlatformContextCairo reference or the cairo_t pointer,
invoking the proper GraphicsContextImplCairo constructor in the returned
lambda wrapper.
No new tests -- no change in functionality.
- platform/graphics/cairo/GraphicsContextImplCairo.cpp:
(WebCore::GraphicsContextImplCairo::createFactory):
- platform/graphics/cairo/GraphicsContextImplCairo.h:
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::ImageBuffer):
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::strokeBoundingRect const):
(WebCore::Path::strokeContains const):
- platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp:
(Nicosia::PaintingContextCairo::PaintingContextCairo):
- platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
Source/WebKit:
Use GraphicsContextImplCairo::createFactory() helpers throughout the
Cairo-specific GraphicsContext constructors in the WebKit layer.
- Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::createGraphicsContext):
- UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate):
- WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::renderPage):
- 2:56 AM Changeset in webkit [227727] by
-
- 2 edits in trunk/Source/WebCore
Construct GraphicsContext with NonPaintingReasons::NoReason in FrameView::adjustPageHeightDeprecated()
https://bugs.webkit.org/show_bug.cgi?id=182235
Reviewed by Carlos Garcia Campos.
Pass the NonPaintingReasons::NoReason value to the GraphicsContext
constructor in FrameView::adjustPageHeightDeprecated(). This has the
same effect as when passing a null PlatformGraphicsContext to the
constructor, which effectively disables any painting through that
GraphicsContext, but doesn't have a platform-specific connotation.
No new tests -- no change in functionality.
- page/FrameView.cpp:
(WebCore::FrameView::adjustPageHeightDeprecated):
- 2:56 AM Changeset in webkit [227726] by
-
- 11 edits in trunk/Source
[Cairo] Remove the GraphicsContext(cairo_t*) constructor
https://bugs.webkit.org/show_bug.cgi?id=182234
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Instead of using the GraphicsContext(cairo_t*) constructor, leverage the
GraphicsContextImplCairo class and work with an existing Cairo context
through that GraphicsContextImpl implementation.
A new GraphicsContextImplCairo constructor is added, expecting pointer
to the cairo_t object. With that, a PlatformContextCairo object is
created, with ownership of that object now being handled by the
GraphicsContextImplCairo class.
Call sites of the GraphicsContext(cairo_t*) constructor are adjusted to
instead provide a factory function that returns a fresh
GraphicsContextImplCairo object, passing that cairo_t object to its
constructor.
No new tests -- no change in behavior.
- platform/graphics/GraphicsContext.h:
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::GraphicsContext): Deleted.
- platform/graphics/cairo/GraphicsContextImplCairo.cpp:
(WebCore::GraphicsContextImplCairo::GraphicsContextImplCairo):
(WebCore::m_private):
- platform/graphics/cairo/GraphicsContextImplCairo.h:
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::strokeBoundingRect const):
(WebCore::Path::strokeContains const):
- platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
Source/WebKit:
Call sites of the GraphicsContext(cairo_t*) constructor are adjusted to
instead provide a factory function that returns a fresh
GraphicsContextImplCairo object, passing that cairo_t object to its
constructor.
- Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::createGraphicsContext):
- UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate):
- WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::renderPage):
- 2:43 AM Changeset in webkit [227725] by
-
- 15 edits2 adds in trunk
JSC Sampling Profiler: Detect tester and testee when sampling in RegExp JIT
https://bugs.webkit.org/show_bug.cgi?id=152729
Reviewed by Saam Barati.
JSTests:
- stress/sampling-profiler-regexp.js: Added.
(platformSupportsSamplingProfiler.test):
(platformSupportsSamplingProfiler.baz):
(platformSupportsSamplingProfiler):
Source/JavaScriptCore:
This patch extends SamplingProfiler to recognize JIT RegExp execution. We record
executing RegExp in VM so that SamplingProfiler can detect it. This is better
than the previous VM::isExecutingInRegExpJIT flag approach since
- isExecutingInRegExpJIT is set after starting executing JIT RegExp code. Thus,
if we suspend the thread just before executing this flag, or just after clearing
this flag, SamplingProfiler gets invalid frame, and frame validation fails. We
should set such a flag before and after executing JIT RegExp code.
- This removes VM dependency from YarrJIT which is not essential one.
We add ExecutionContext enum to RegExp::matchInline not to mark execution if it
is done in non JS thread.
- bytecode/BytecodeDumper.cpp:
(JSC::regexpName):
(JSC::BytecodeDumper<Block>::dumpRegExps):
(JSC::regexpToSourceString): Deleted.
- heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
- runtime/RegExp.cpp:
(JSC::RegExp::compile):
(JSC::RegExp::match):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):
(JSC::RegExp::toSourceString const):
- runtime/RegExp.h:
- runtime/RegExpInlines.h:
(JSC::RegExp::matchInline):
- runtime/RegExpMatchesArray.h:
(JSC::createRegExpMatchesArray):
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::timerLoop):
(JSC::SamplingProfiler::takeSample):
(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::StackFrame::nameFromCallee):
(JSC::SamplingProfiler::StackFrame::displayName):
(JSC::SamplingProfiler::StackFrame::displayNameForJSONTests):
(JSC::SamplingProfiler::StackFrame::functionStartLine):
(JSC::SamplingProfiler::StackFrame::functionStartColumn):
(JSC::SamplingProfiler::StackFrame::sourceID):
(JSC::SamplingProfiler::StackFrame::url):
(WTF::printInternal):
(JSC::SamplingProfiler::~SamplingProfiler): Deleted.
- runtime/SamplingProfiler.h:
- runtime/VM.h:
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):
(JSC::Yarr::YarrGenerator::YarrGenerator):
(JSC::Yarr::jitCompile):
- yarr/YarrJIT.h:
- 2:20 AM Changeset in webkit [227724] by
-
- 2 edits in trunk/Tools
Unreviewed, add myself to some watch lists.
Patch by Frederic Wang <fwang@igalia.com> on 2018-01-29
- Scripts/webkitpy/common/config/watchlist:
- 1:25 AM Changeset in webkit [227723] by
-
- 24 edits4 adds in trunk
[DFG][FTL] WeakMap#set should have DFG node
https://bugs.webkit.org/show_bug.cgi?id=180015
Reviewed by Saam Barati.
JSTests:
- stress/weakmap-set-change-get.js: Added.
(shouldBe):
(test):
- stress/weakmap-set-cse.js: Added.
(shouldBe):
(test):
- stress/weakset-add-change-get.js: Added.
(shouldBe):
- stress/weakset-add-cse.js: Added.
(shouldBe):
Source/JavaScriptCore:
This patch adds WeakMapSet and WeakSetAdd DFG nodes to handle them efficiently in DFG and FTL.
We also define CSE rules for them. Now, WeakMapSet and WeakSetAdd can offer the results of
the subsequent WeakMapGet if CSE allows.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addVarArgChild):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
WeakMap operations do not cause GC.
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileWeakSetAdd):
(JSC::DFG::SpeculativeJIT::compileWeakMapSet):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakSetAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakMapSet):
- jit/JITOperations.h:
- runtime/Intrinsic.cpp:
(JSC::intrinsicName):
- runtime/Intrinsic.h:
- runtime/WeakMapPrototype.cpp:
(JSC::WeakMapPrototype::finishCreation):
- runtime/WeakSetPrototype.cpp:
(JSC::WeakSetPrototype::finishCreation):
Jan 28, 2018:
- 10:35 PM Changeset in webkit [227722] by
-
- 5 edits2 adds in trunk
Overflow of formulas is hidden for display mathematics
https://bugs.webkit.org/show_bug.cgi?id=160547
Patch by Minsheng Liu <lambda@liu.ms> on 2018-01-28
Reviewed by Frédéric Wang.
Source/WebCore:
Previously, <math> with display="block" uses its container's logical width as logical width.
However, that behavior will truncate overflowed contents. The patch fixes it by setting
the logical width as its content width rather than its container's logical width
if the former is wider than the latter.
Test: mathml/presentation/display-math-horizontal-overflow.html
- rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layoutBlock):
LayoutTests:
Add a test to ensure <math> with display="block" will not truncate overflowed contents.
- mathml/presentation/display-math-horizontal-overflow-expected.txt: Added.
- mathml/presentation/display-math-horizontal-overflow.html: Added.
- 9:08 PM Changeset in webkit [227721] by
-
- 5 edits in trunk/Source/JavaScriptCore
LargeAllocation should do the same distancing as MarkedBlock
https://bugs.webkit.org/show_bug.cgi?id=182226
Reviewed by Saam Barati.
This makes LargeAllocation do the same exact distancing that MarkedBlock promises to do.
To make that possible, this patch first makes MarkedBlock know exactly how much distancing it
is doing:
- I've rationalized the payloadSize calculation. In particular, I made MarkedSpace use the calculation done in MarkedBlock. MarkedSpace used to do the math a different way. This keeps the old way just for a static_assert.
- The promised amount of distancing is now codified in HeapCell.h as minimumDistanceBetweenCellsFromDifferentOrigins. We assert that the footer size is at least as big as this. I didn't want to just use footer size for this constant because then, if you increased the size of the footer, you'd also add padding to every large allocation.
Then this patch just adds minimumDistanceBetweenCellsFromDifferentOrigins to each large
allocation. It also zeroes that slice of memory to prevent any information leaks that way.
This is perf neutral. Large allocations start out at ~8000 bytes. The amount of padding is
~300 bytes. That's 3.75% space overhead for objects that are ~8000 bytes, zero overhead for
smaller objects, and diminishing overhead for larger objects. We allocate very few large
objects, so we shouldn't have any real space overhead from this.
- heap/HeapCell.h:
- heap/LargeAllocation.cpp:
(JSC::LargeAllocation::tryCreate):
- heap/MarkedBlock.h:
- heap/MarkedSpace.h:
- 12:54 PM Changeset in webkit [227720] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE gardening.
- platform/wpe/TestExpectations: Add test failure expectations. Shuffle
around a few expectations and eliminate duplicate ones, removing overlap
warnings printed out when invoking run-webkit-tests.
- 12:00 PM Changeset in webkit [227719] by
-
- 2 edits4 adds in trunk/LayoutTests
Unreviewed GTK+ gardening.
- platform/gtk/TestExpectations: Add failure expectations for three tests.
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt:
Added a test baseline due to console messages being output in a slightly different order.
- 11:20 AM WebKitGTK/2.18.x edited by
- Add warning about r227544 (diff)
- 11:08 AM Changeset in webkit [227718] by
-
- 8 edits in trunk/Source/JavaScriptCore
Make MarkedBlock::Footer bigger
https://bugs.webkit.org/show_bug.cgi?id=182220
Reviewed by JF Bastien.
This makes the block footer larger by moving the newlyAllocated bits from the handle into
the footer.
It used to be profitable to put anything we could into the handle because that would free up
payload space inside the block. But now that we want to use the footer for padding, it's
profitable to put GC state information - especially data that is used by the GC itself and so
is not useful for a Spectre attack - into the footer to increase object distancing.
- heap/CellContainer.cpp:
(JSC::CellContainer::isNewlyAllocated const):
- heap/IsoCellSet.cpp:
(JSC::IsoCellSet::sweepToFreeList):
- heap/MarkedBlock.cpp:
(JSC::MarkedBlock::Handle::Handle):
(JSC::MarkedBlock::Footer::Footer):
(JSC::MarkedBlock::Handle::stopAllocating):
(JSC::MarkedBlock::Handle::lastChanceToFinalize):
(JSC::MarkedBlock::Handle::resumeAllocating):
(JSC::MarkedBlock::aboutToMarkSlow):
(JSC::MarkedBlock::resetAllocated):
(JSC::MarkedBlock::Handle::resetAllocated): Deleted.
- heap/MarkedBlock.h:
(JSC::MarkedBlock::newlyAllocatedVersion const):
(JSC::MarkedBlock::isNewlyAllocated):
(JSC::MarkedBlock::setNewlyAllocated):
(JSC::MarkedBlock::clearNewlyAllocated):
(JSC::MarkedBlock::newlyAllocated const):
(JSC::MarkedBlock::Handle::newlyAllocatedVersion const): Deleted.
(JSC::MarkedBlock::Handle::isNewlyAllocated): Deleted.
(JSC::MarkedBlock::Handle::setNewlyAllocated): Deleted.
(JSC::MarkedBlock::Handle::clearNewlyAllocated): Deleted.
(JSC::MarkedBlock::Handle::newlyAllocated const): Deleted.
- heap/MarkedBlockInlines.h:
(JSC::MarkedBlock::isNewlyAllocatedStale const):
(JSC::MarkedBlock::hasAnyNewlyAllocated):
(JSC::MarkedBlock::Handle::isLive):
(JSC::MarkedBlock::Handle::specializedSweep):
(JSC::MarkedBlock::Handle::newlyAllocatedMode):
(JSC::MarkedBlock::Handle::isNewlyAllocatedStale const): Deleted.
(JSC::MarkedBlock::Handle::hasAnyNewlyAllocated): Deleted.
- heap/MarkedSpace.cpp:
(JSC::MarkedSpace::endMarking):
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::appendJSCellOrAuxiliary):
Jan 27, 2018:
- 6:23 PM Changeset in webkit [227717] by
-
- 12 edits in trunk/Source/JavaScriptCore
MarkedBlock should have a footer instead of a header
https://bugs.webkit.org/show_bug.cgi?id=182217
Reviewed by JF Bastien.
This moves the MarkedBlock's meta-data from the header to the footer. This doesn't really
change anything except for some compile-time constants, so it should not affect performance.
This change is to help protect against Spectre attacks on structure checks, which allow for
small-offset out-of-bounds access. By putting the meta-data at the end of the block, small
OOBs will only get to other objects in the same block or the block footer. The block footer
is not super interesting. So, if we combine this with the TLC change (r227617), this means we
can use blocks as the mechanism of achieving distance between objects from different origins.
We just need to avoid ever putting objects from different origins in the same block. That's
what bug 181636 is about.
- heap/BlockDirectory.cpp:
(JSC::blockHeaderSize): Deleted.
(JSC::BlockDirectory::blockSizeForBytes): Deleted.
- heap/BlockDirectory.h:
- heap/HeapUtil.h:
(JSC::HeapUtil::findGCObjectPointersForMarking):
- heap/MarkedBlock.cpp:
(JSC::MarkedBlock::MarkedBlock):
(JSC::MarkedBlock::~MarkedBlock):
(JSC::MarkedBlock::Footer::Footer):
(JSC::MarkedBlock::Footer::~Footer):
(JSC::MarkedBlock::Handle::stopAllocating):
(JSC::MarkedBlock::Handle::lastChanceToFinalize):
(JSC::MarkedBlock::Handle::resumeAllocating):
(JSC::MarkedBlock::aboutToMarkSlow):
(JSC::MarkedBlock::resetMarks):
(JSC::MarkedBlock::assertMarksNotStale):
(JSC::MarkedBlock::Handle::didConsumeFreeList):
(JSC::MarkedBlock::markCount):
(JSC::MarkedBlock::clearHasAnyMarked):
(JSC::MarkedBlock::Handle::didAddToDirectory):
(JSC::MarkedBlock::Handle::didRemoveFromDirectory):
(JSC::MarkedBlock::Handle::sweep):
- heap/MarkedBlock.h:
(JSC::MarkedBlock::markingVersion const):
(JSC::MarkedBlock::lock):
(JSC::MarkedBlock::subspace const):
(JSC::MarkedBlock::footer):
(JSC::MarkedBlock::footer const):
(JSC::MarkedBlock::handle):
(JSC::MarkedBlock::handle const):
(JSC::MarkedBlock::Handle::blockFooter):
(JSC::MarkedBlock::isAtomAligned):
(JSC::MarkedBlock::Handle::cellAlign):
(JSC::MarkedBlock::blockFor):
(JSC::MarkedBlock::vm const):
(JSC::MarkedBlock::weakSet):
(JSC::MarkedBlock::cellSize):
(JSC::MarkedBlock::attributes const):
(JSC::MarkedBlock::atomNumber):
(JSC::MarkedBlock::areMarksStale):
(JSC::MarkedBlock::aboutToMark):
(JSC::MarkedBlock::isMarkedRaw):
(JSC::MarkedBlock::isMarked):
(JSC::MarkedBlock::testAndSetMarked):
(JSC::MarkedBlock::marks const):
(JSC::MarkedBlock::isAtom):
(JSC::MarkedBlock::Handle::forEachCell):
(JSC::MarkedBlock::hasAnyMarked const):
(JSC::MarkedBlock::noteMarked):
(WTF::MarkedBlockHash::hash):
(JSC::MarkedBlock::firstAtom): Deleted.
- heap/MarkedBlockInlines.h:
(JSC::MarkedBlock::marksConveyLivenessDuringMarking):
(JSC::MarkedBlock::Handle::isLive):
(JSC::MarkedBlock::Handle::specializedSweep):
(JSC::MarkedBlock::Handle::forEachLiveCell):
(JSC::MarkedBlock::Handle::forEachDeadCell):
(JSC::MarkedBlock::Handle::forEachMarkedCell):
- heap/MarkedSpace.cpp:
- heap/MarkedSpace.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- 10:14 AM Changeset in webkit [227716] by
-
- 3 edits2 adds in trunk
DFG strength reduction fails to convert NumberToStringWithValidRadixConstant for 0 to constant '0'
https://bugs.webkit.org/show_bug.cgi?id=182213
Reviewed by Mark Lam.
JSTests:
- stress/int32-min-to-string.js: Added.
(shouldBe):
(test2):
(test4):
(test8):
(test16):
(test32):
- stress/zero-to-string.js: Added.
(shouldBe):
(test2):
(test4):
(test8):
(test16):
(test32):
Source/JavaScriptCore:
toStringWithRadixInternal is originally used for the slow path if the given value is larger than radix or negative.
As a result, it does not accept 0 correctly, and produces an empty string. Since DFGStrengthReductionPhase uses
this function, it accidentally converts NumberToStringWithValidRadixConstant(0, radix) to an empty string.
This patch fixes toStringWithRadixInternal to accept 0. This change fixes twitch.tv's issue.
We also add a careful cast to avoid
-INT32_MIN
. It does not produce incorrect value in x86 in practice,
but it is UB, and a compiler may assume that the given value is never INT32_MIN and could do an incorrect optimization.
- runtime/NumberPrototype.cpp:
(JSC::toStringWithRadixInternal):
- 9:50 AM Changeset in webkit [227715] by
-
- 12 edits in trunk
HaveInternalSDK includes should be "#include?"
https://bugs.webkit.org/show_bug.cgi?id=179670
Source/ThirdParty:
- gtest/xcode/Config/General.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/Base.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/Base.xcconfig:
Source/WebCore/PAL:
- Configurations/Base.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/Base.xcconfig:
Tools:
- DumpRenderTree/mac/Configurations/Base.xcconfig:
- 1:26 AM Changeset in webkit [227714] by
-
- 11 edits1 add in trunk
[Web Animations] Distinguish between an omitted and a null timeline argument to the Animation constructor
https://bugs.webkit.org/show_bug.cgi?id=179065
LayoutTests/imported/w3c:
Reviewed by Dean Jackson.
Update WPT test output with progressions.
- web-platform-tests/web-animations/interfaces/Animation/constructor-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/reversing-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:
Source/WebCore:
<rdar://problem/36869046>
Reviewed by Dean Jackson.
The Web Animations specification requires that a missing or undefined "timeline" parameter means that the
document's timeline should be used, but a null value should be supported. To support this, we need to provide
a custom Animation constructor where we can check on the ExecState whether the second argument passed is
undefined, which is true if an explicit "undefined" value is passed or if the argument does not exist.
- Sources.txt: Add the new JSWebAnimationCustom.cpp file.
- WebCore.xcodeproj/project.pbxproj: Add the new JSWebAnimationCustom.cpp file.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::create): Add a create() variant that doesn't provide an AnimationTimeline parameter
to clearly indicate that the provided Document's timeline should be used.
- animation/WebAnimation.h:
- animation/WebAnimation.idl:
- bindings/js/JSWebAnimationCustom.cpp: Added.
(WebCore::constructJSWebAnimation): Provide a custom Animation constructor where we check whether the second
argument, the timeline, is undefined.
- dom/Element.cpp:
(WebCore::Element::animate): Use the new create() variant since passing "nullptr" now means a null timeline.
Jan 26, 2018:
- 10:26 PM Changeset in webkit [227713] by
-
- 4 edits2 adds in trunk/LayoutTests
Make accessibility/mac/selection-notification-focus-change.html more reliable and re-enable it
https://bugs.webkit.org/show_bug.cgi?id=182198
<rdar://problem/36930258>
Reviewed by Tim Horton.
Refactored the test by splitting each test case into its own function split by setTimeout by zero seconds
instead of triggering the next test case when receiving a specific notification to make the test more robust.
Also moved functions which trigger the focus move into evalAndLog so that they appear in the expected result,
and added more logging to make the debugging of the test easier.
Finally, added WebKit2 specific expected result because it has one extra test failure compared to WebKit1.
- accessibility/mac/selection-notification-focus-change-expected.txt:
- accessibility/mac/selection-notification-focus-change.html:
- platform/mac-wk2/accessibility/mac: Added.
- platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt: Added.
- platform/mac/TestExpectations: Removed the flaky test failure expectation since this test should now have
the same expected result everywhere on macOS.
- 8:26 PM Changeset in webkit [227712] by
-
- 2 edits in trunk/LayoutTests
Layout Test http/wpt/beacon/beacon-async-error-logging.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=182184
<rdar://problem/36929478>
Reviewed by Youenn Fablet.
Stop relying on a setTimeout(500) to end the test. Instead rely on the
internals.setConsoleMessageListener() API to wait for the console message
we are expecting.
- http/wpt/beacon/beacon-async-error-logging.html:
- 7:32 PM Changeset in webkit [227711] by
-
- 5 edits in trunk
Use the standard -webkit-autofill color on iOS
https://bugs.webkit.org/show_bug.cgi?id=182182
Reviewed by Tim Horton.
Source/WebCore:
- css/html.css:
(input:-webkit-autofill, input:-webkit-autofill-strong-password):
LayoutTests:
Update test expectations.
- platform/ios/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt:
- platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
- 6:13 PM Changeset in webkit [227710] by
-
- 5 edits in trunk
Don't retain focus for input peripheral views
https://bugs.webkit.org/show_bug.cgi?id=182204
Reviewed by Tim Horton.
Source/WebKit:
Retaining focus on input peripheral views makes it so they cannot dismiss themselves with
the current architecture. This should probably be fixed in UIKit, as there is no reason for
focus to be retained on these views anyways, as they don't have keyboard input, but this
guards against over-aggressive retain requests.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _restoreFocusWithToken:]):
(-[WKContentView _preserveFocusWithToken:destructively:]):
LayoutTests:
Fixed a spelling error while fixing a bug this test caught.
- fast/forms/ios/ipad/unfocus-inside-fixed-hittest.html:
- fast/forms/ios/ipad/unfocus-inside-fixed-hittest-expected.txt:
- 5:49 PM Changeset in webkit [227709] by
-
- 5 edits in trunk
Make sure service worker code does not launch a StorageProcess unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=182192
<rdar://problem/36927427>
Reviewed by Geoffrey Garen.
Source/WebKit:
When calling WebProcess::existingWebToStorageProcessConnection(), make sure we do not
force the creation of a WebProcess connection to the StorageProcess. If there is
no WebProcess, just return false right away.
- WebProcess/Storage/WebServiceWorkerProvider.cpp:
(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession):
- WebProcess/WebProcess.h:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 5:43 PM Changeset in webkit [227708] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/appcache-ordering-main.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=182176
<rdar://problem/36915685>
Unreviewed.
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-26
- TestExpectations: Skiping test for now.
- 5:36 PM Changeset in webkit [227707] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Timelines content browser NavigationBar is squashed at narrow heights
https://bugs.webkit.org/show_bug.cgi?id=182196
<rdar://problem/36929899>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/NavigationBar.css:
(.navigation-bar):
- 5:35 PM Changeset in webkit [227706] by
-
- 2 edits in trunk/LayoutTests
Mark imported/blink/fast/text/international-iteration-simple-text.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=179853
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 5:26 PM Changeset in webkit [227705] by
-
- 4 edits in branches/safari-605-branch/Source/WebKit
Cherry-pick r227687. rdar://problem/36873343
- 5:25 PM Changeset in webkit [227704] by
-
- 2 edits in branches/safari-605-branch/Tools
Apply patch. rdar://problem/36830858
[safari-605-branch] API test CSSPropertyParserTest.GridTrackLimits is failing
<rdar://problem/36830858>
Reviewed by Maciej Stachowiak.
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Make it match the other FeatureDefines.xcconfig files, otherwise it will result in test failures.
- 4:49 PM Changeset in webkit [227703] by
-
- 19 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: TabBar redesign: improvements to tab layout and resize behavior
https://bugs.webkit.org/show_bug.cgi?id=181468
<rdar://problem/36395439>
Reviewed by Devin Rousso.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Images/TabPicker.svg: Added.
New ">>" icon for the tab picker button.
- UserInterface/Views/CanvasTabContentView.js:
(WI.CanvasTabContentView):
- UserInterface/Views/ConsoleTabContentView.js:
(WI.ConsoleTabContentView):
- UserInterface/Views/DebuggerTabContentView.js:
(WI.DebuggerTabContentView):
- UserInterface/Views/ElementsTabContentView.js:
(WI.ElementsTabContentView):
- UserInterface/Views/GeneralTabBarItem.js:
(WI.GeneralTabBarItem):
(WI.GeneralTabBarItem.fromTabContentViewConstructor):
(WI.GeneralTabBarItem.prototype.get title):
Add missing override for getter/setter pair.
(WI.GeneralTabBarItem.prototype.set title):
(WI.GeneralTabBarItem.prototype._handleContextMenuEvent):
Show the close button on ephemeral tabs only (Search, New Tab).
Replace unusedrepresentedObject
parameter withisEphemeral
, which
determines whether to show a close button for the tab.
- UserInterface/Views/LayersTabContentView.js:
(WI.LayersTabContentView):
- UserInterface/Views/NavigationBar.js:
Remove unused symbol.
- UserInterface/Views/NetworkTabContentView.js:
(WI.NetworkTabContentView):
- UserInterface/Views/NewTabContentView.js:
(WI.NewTabContentView):
- UserInterface/Views/PinnedTabBarItem.js:
(WI.PinnedTabBarItem):
Remove unused parameter.
- UserInterface/Views/ResourcesTabContentView.js:
(WI.ResourcesTabContentView):
- UserInterface/Views/SearchTabContentView.js:
(WI.SearchTabContentView):
- UserInterface/Views/StorageTabContentView.js:
(WI.StorageTabContentView):
- UserInterface/Views/TabBar.css:
(.tab-bar > .item):
(.tab-bar.calculate-width > .item):
(.tab-bar > .item.pinned.tab-picker):
(.tab-bar > .item > .close):
(.tab-bar > .item > .title):
(.tab-bar:not(.collapsed) > .item > .title):
(.tab-bar.collapsed > .item:not(.pinned) > .icon):
(.tab-bar > .item:hover > .close):
(.tab-bar.collapsed > .item:hover > .close):
(.tab-bar:not(.collapsed) > .item.ephemeral:hover > .icon):
(.tab-bar.collapsed > .item.ephemeral:hover > .title):
(body[dir=ltr] .tab-bar > .item > .close): Deleted.
(body[dir=rtl] .tab-bar > .item > .close): Deleted.
(.tab-bar > .item > .flex-space): Deleted.
(.tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
(body[dir=ltr] .tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
(body[dir=rtl] .tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
(body[dir=ltr] .tab-bar > .item > .title): Deleted.
(body[dir=rtl] .tab-bar > .item > .title): Deleted.
(.tab-bar.collapsed > .item): Deleted.
(.tab-bar.collapsed > .item > .flex-space): Deleted.
(.tab-bar.collapsed > .item > .close): Deleted.
(body[dir=ltr] .tab-bar.collapsed > .item > .close): Deleted.
(body[dir=rtl] .tab-bar.collapsed > .item > .close): Deleted.
(.tab-bar.hide-titles > .item > .title): Deleted.
(.tab-bar.collapsed:not(.hide-titles) > .item:not(.pinned):hover > .icon,): Deleted.
(.tab-bar.collapsed:not(.hide-titles) > .item:hover > .close,): Deleted.
Clean up tab styles and prevent tabs from shrinking during flex layout.
Added newcalculate-width
class, to disable flex layout when measuring
the minimum width of the TabBar required to fit all tab items.
- UserInterface/Views/TabBar.js:
(WI.TabBar):
(WI.TabBar.prototype.set selectedTabBarItem):
(WI.TabBar.prototype.layout.forceItemHidden):
(WI.TabBar.prototype.layout):
Perform two layout passes, similar to NavigationBar. The first pass disables
flex layout and measures tab items at full size. If the bar isn't wide enough
to show all the tabs, hide their icons and measure again. If there still isn't
room, hide tabs starting from the end of the bar and display the tab picker.
(WI.TabBar.prototype._handleMouseDown):
(WI.TabBar.prototype._handleTabPickerTabContextMenu):
- UserInterface/Views/TabBarItem.js:
(WI.TabBarItem):
- UserInterface/Views/TimelineTabContentView.js:
(WI.TimelineTabContentView):
- 4:45 PM Changeset in webkit [227702] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r222961): Clear function not clearing whole screen when antialias is set to false
https://bugs.webkit.org/show_bug.cgi?id=179368
<rdar://problem/36111549>
Reviewed by Sam Weinig.
When we changed from using a CAOpenGLLayer to a regular CALayer, we should
have also swapped the "opaque" property to "contentsOpaque".
Covered by the existing test: fast/canvas/webgl/context-attributes-alpha.html
(when run on some hardware!)
- platform/graphics/cocoa/WebGLLayer.mm:
(-[WebGLLayer initWithGraphicsContext3D:]):
- 4:43 PM Changeset in webkit [227701] by
-
- 68 edits1 add in trunk/Source
Add infrastructure for pointer preparation.
https://bugs.webkit.org/show_bug.cgi?id=182191
<rdar://problem/36889194>
Reviewed by JF Bastien.
Source/WebCore:
No new tests because this patch does not introduce any behavior change.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
- bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
- bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::toJSNewlyCreated):
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/PointerPreparations.h: Added.
- 4:05 PM Changeset in webkit [227700] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix emitAllocateWithNonNullAllocator to work on arm
https://bugs.webkit.org/show_bug.cgi?id=182187
<rdar://problem/36906550>
Reviewed by Filip Pizlo.
This patch unifies the x86 and ARM paths in emitAllocateWithNonNullAllocator
and makes it so that emitAllocateWithNonNullAllocator uses the macro scratch
register on ARM.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::allocateHeapCell):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):
- 3:44 PM Changeset in webkit [227699] by
-
- 2 edits in tags/Safari-605.1.25.1/Source/ThirdParty/libwebrtc
Cherry-pick r227698. rdar://problem/36926420
- 2:37 PM Changeset in webkit [227698] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
Disable VCP for MacOS
https://bugs.webkit.org/show_bug.cgi?id=182183
<rdar://problem/36919791>
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-26
Reviewed by Eric Carlson.
- Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/VideoProcessingSoftLink.h:
- 2:36 PM Changeset in webkit [227697] by
-
- 2 edits in trunk/Source/WebCore
REGRESSiON (r226492): Crash under Element::absoluteEventBounds() on a SVGPathElement which has not been laid out yet
https://bugs.webkit.org/show_bug.cgi?id=182185
rdar://problem/36836262
Reviewed by Zalan Bujtas.
Document::absoluteRegionForEventTargets() can fire when layout is dirty, and SVGPathElement's path() can be null if it
hasn't been laid out yet. So protect against a null path in getBBox().
Not easily testable because internals.nonFastScrollableRects() forces layout, and the crash depends on the timing of
absoluteRegionForEventTargets().
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::getBBox):
- 2:11 PM Changeset in webkit [227696] by
-
- 6 edits in trunk
Offlined content does not work for apps on home screen
https://bugs.webkit.org/show_bug.cgi?id=182070
<rdar://problem/36843906>
Reviewed by Youenn Fablet.
Source/WebCore:
Already registered service workers were unable to intercept the very first
load because registration matching was happening after the registration
was loaded from disk, but *before* its active worker was populated.
We now initialize the registrations' active worker as soon as we load
them from disk. We do not necessarily have a SW Context process connection
identifier yet at this point so I made it optional on the SWServerWorker.
This identifier gets set on the SWServerWorker when the worker is actually
launched and gets cleared when the SWServerWorker gets terminated.
Covered by new API test.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::installContextData):
(WebCore::SWServer::terminateWorkerInternal):
(WebCore::SWServer::workerContextTerminated):
(WebCore::SWServer::fireInstallEvent):
(WebCore::SWServer::fireActivateEvent):
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::SWServerWorker):
- workers/service/server/SWServerWorker.h:
(WebCore::SWServerWorker::contextConnectionIdentifier const):
(WebCore::SWServerWorker::setContextConnectionIdentifier):
Tools:
Add API test coverage to make sure an already registered service worker is able to intercept
the very first load.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
(-[SWMessageHandlerWithExpectedMessage userContentController:didReceiveScriptMessage:]):
- 1:41 PM Changeset in webkit [227695] by
-
- 18 edits4 deletes in tags/Safari-605.1.25.1/Source
Revert r227340. rdar://problem/36746140
- 1:41 PM Changeset in webkit [227694] by
-
- 57 edits4 deletes in tags/Safari-605.1.25.1
Revert r227425. rdar://problem/36791667
- 1:23 PM Changeset in webkit [227693] by
-
- 14 edits in trunk/Source/JavaScriptCore
Rebaselining builtin generator tests after r227685.
Unreviewed.
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
- Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
It used to be that the builtins generator was minifying by default. That was an accident
and we now only minify on Release builds. The generator tests are now getting the
default unminified output behavior so they need to update their expectations
for some extra whitespace.
- 1:14 PM Changeset in webkit [227692] by
-
- 4 edits in trunk/Source/JavaScriptCore
We should only append ParserArenaDeletable pointers to ParserArena::m_deletableObjects.
https://bugs.webkit.org/show_bug.cgi?id=182180
<rdar://problem/36460697>
Reviewed by Michael Saboff.
Some parser Node subclasses extend ParserArenaDeletable via multiple inheritance,
but not as the Node's first base class. ParserArena::m_deletableObjects is
expecting pointers to objects of the shape of ParserArenaDeletable. We ensure
this by allocating the Node subclass, and casting it to ParserArenaDeletable to
get the correct pointer to append to ParserArena::m_deletableObjects.
To simplify things, we introduce a JSC_MAKE_PARSER_ARENA_DELETABLE_ALLOCATED
(analogous to WTF_MAKE_FAST_ALLOCATED) for use in Node subclasses that extends
ParserArenaDeletable.
- parser/NodeConstructors.h:
(JSC::ParserArenaDeletable::operator new):
- parser/Nodes.h:
- parser/ParserArena.h:
(JSC::ParserArena::allocateDeletable):
- 12:55 PM Changeset in webkit [227691] by
-
- 15 edits in trunk
Addressing post-review comments after r226614
https://bugs.webkit.org/show_bug.cgi?id=182151
Patch by Chris Nardi <cnardi@chromium.org> on 2018-01-26
Reviewed by Myles C. Maxfield.
PerformanceTests:
- StitchMarker/wtf/text/StringImpl.h:
(WTF::isSpaceOrNewline):
- StitchMarker/wtf/text/TextBreakIterator.cpp:
(WTF::numCodeUnitsInGraphemeClusters):
- StitchMarker/wtf/text/TextBreakIterator.h:
Source/WebCore:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::sanitizeUserInputValue):
- html/TextFieldInputType.cpp:
(WebCore::limitLength):
- platform/LocalizedStrings.cpp:
(WebCore::truncatedStringForLookupMenuItem):
- rendering/updating/RenderTreeBuilderFirstLetter.cpp:
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):
Source/WTF:
- wtf/text/StringImpl.h:
(WTF::isSpaceOrNewline):
- wtf/text/TextBreakIterator.cpp:
(WTF::numCodeUnitsInGraphemeClusters):
- wtf/text/TextBreakIterator.h:
Tools:
- TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp:
(TestWebKitAPI::TEST):
- 12:51 PM Changeset in webkit [227690] by
-
- 7 edits in tags/Safari-605.1.25.1/Source
Versioning.
- 12:17 PM Changeset in webkit [227689] by
-
- 1 copy in tags/Safari-605.1.25.1
New tag.
- 12:16 PM Changeset in webkit [227688] by
-
- 6 edits in branches/safari-605-branch
Cherry-pick r227570. rdar://problem/36873398
- 12:15 PM Changeset in webkit [227687] by
-
- 4 edits in trunk/Source/WebKit
Allow cellular access for default-created ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=182179
<rdar://problem/36572023>
Reviewed by Andy Estes.
This makes it so when we recover from a NetworkProcess crash (see r227590) on iOS, we will
be able to continue browsing using cell data.
- Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::privateSessionParameters):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
- 11:39 AM Changeset in webkit [227686] by
-
- 2 edits in trunk/Source/WebCore
[iOS] prefers-reduced-motion media query is not working
https://bugs.webkit.org/show_bug.cgi?id=182169
<rdar://problem/36801631>
Patch by Antoine Quint <Antoine Quint> on 2018-01-26
Reviewed by Dean Jackson.
The code that would eventually query UIKit for the system setting was not run since USE(NEW_THEME) is off on iOS.
Adding a PLATFORM(IOS) flag here allows the code to run.
- css/MediaQueryEvaluator.cpp:
(WebCore::prefersReducedMotionEvaluate):
- 11:32 AM Changeset in webkit [227685] by
-
- 2 edits in trunk/Source/JavaScriptCore
JavaScriptCore builtins should be partially minified in Release builds not Debug builds
https://bugs.webkit.org/show_bug.cgi?id=182165
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-01-26
Reviewed by Keith Miller.
- Scripts/builtins/builtins_model.py:
(BuiltinFunction.fromString):
Apply minifications on Release builds instead of Debug builds.
Also eliminate leading whitespace.
- 10:52 AM Changeset in webkit [227684] by
-
- 2 edits in trunk/Source/WTF
Fix style - need to use C comments.
- wtf/Platform.h:
- 10:42 AM Changeset in webkit [227683] by
-
- 11 edits in trunk/Source
Disable TLS-based TLCs
https://bugs.webkit.org/show_bug.cgi?id=182175
Reviewed by Saam Barati.
Source/JavaScriptCore:
Check for the new USE(FAST_TLS_FOR_TLC) flag instead of just ENABLE(FAST_TLS_JIT).
- heap/BlockDirectory.cpp:
(JSC::BlockDirectory::~BlockDirectory):
- heap/BlockDirectory.h:
- heap/ThreadLocalCache.cpp:
(JSC::ThreadLocalCache::installSlow):
(JSC::ThreadLocalCache::installData):
- heap/ThreadLocalCache.h:
- heap/ThreadLocalCacheInlines.h:
(JSC::ThreadLocalCache::getImpl):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):
- runtime/VM.cpp:
(JSC::VM::~VM):
- runtime/VM.h:
Source/WTF:
Add a flag for TLS-based TLCs and set it to 0. We can re-enable this feature when we need to use TLCs for
actual thread-local allocation and when we fix the fact that WebCore context switches JSC VMs without telling
us.
- wtf/Platform.h:
- 10:36 AM Changeset in webkit [227682] by
-
- 10 edits in trunk/Source/WebKit
Clean up more networking code
https://bugs.webkit.org/show_bug.cgi?id=182161
Reviewed by Anders Carlsson.
Two cleanups:
- The WebProcess doesn't need to initialize NetworkSessions.
- WebFrameNetworkingContext doesn't need to have the NetworkingContext functions to support ResourceHandles in WebKit any more.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/RemoteNetworkingContext.h:
(): Deleted.
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
- NetworkProcess/curl/RemoteNetworkingContextCurl.cpp:
(WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted.
(WebKit::RemoteNetworkingContext::isValid const): Deleted.
(WebKit::RemoteNetworkingContext::storageSession const): Deleted.
- NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted.
(WebKit::RemoteNetworkingContext::isValid const): Deleted.
(WebKit::RemoteNetworkingContext::localFileContentSniffingEnabled const): Deleted.
(WebKit::RemoteNetworkingContext::storageSession const): Deleted.
(WebKit::RemoteNetworkingContext::sourceApplicationAuditData const): Deleted.
(WebKit::RemoteNetworkingContext::sourceApplicationIdentifier const): Deleted.
(WebKit::RemoteNetworkingContext::blockedError const): Deleted.
- NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
(WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted.
(WebKit::RemoteNetworkingContext::isValid const): Deleted.
(WebKit::RemoteNetworkingContext::storageSession const): Deleted.
- WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::clearCachedCredentials):
- 9:50 AM Changeset in webkit [227681] by
-
- 2 edits in branches/safari-605-branch/LayoutTests
Cherry-pick r227426. rdar://problem/36837397
- 9:36 AM Changeset in webkit [227680] by
-
- 5 edits in trunk
CSP post checks should be done for service worker responses
https://bugs.webkit.org/show_bug.cgi?id=182160
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-26
Reviewed by Daniel Bates.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-csp.https-expected.txt:
Source/WebCore:
Covered by updated test.
Add security checks when receiving a service worker response.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse):
- loader/cache/CachedResourceLoader.h:
- 8:53 AM Changeset in webkit [227679] by
-
- 2 edits in trunk/Tools
Unreviewed, rolling out r224920.
Some Win EWS bots are not coming back up after starting reboot.
- EWSTools/start-queue-win.sh:
- 8:49 AM Changeset in webkit [227678] by
-
- 2 edits in trunk/LayoutTests
[Win] Update test expectations.
Unreviewed test gardening.
- platform/win/TestExpectations:
- 8:48 AM Changeset in webkit [227677] by
-
- 2 edits in trunk/Tools
WebDriver: simplify the tests json report
https://bugs.webkit.org/show_bug.cgi?id=182171
Reviewed by Carlos Alberto Lopez Perez.
We are duplicating the test name in every subtest name. WPT already changed the format to remove the test name
form the subtest name. We should do the same for simplicity and compatibility with WPT.
- Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py:
(WebDriverTestRunner.dump_results_to_json_file):
- 8:36 AM WPE edited by
- fix typo (diff)
- 6:57 AM Changeset in webkit [227676] by
-
- 20 edits2 adds in trunk
[css-multicol] Support percentages in column-gap
https://bugs.webkit.org/show_bug.cgi?id=182004
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
New expected results for a few tests that are passing now.
One is the test for this specific patch, the other are tests related to animations
of "normal" and initial value, that were fixed with the introduction of GapLength.
- web-platform-tests/css/css-multicol/multicol-gap-animation-002-expected.txt:
- web-platform-tests/css/css-multicol/multicol-gap-animation-003-expected.txt:
- web-platform-tests/css/css-multicol/multicol-gap-percentage-001-expected.txt:
Source/WebCore:
This patch adds percentage support to column-gap property.
Most of the changes are related to the parsing logic,
the column-gap property now accepts both length and percentages,
on top of the "normal" initial value.
A new utility class GapLength has been added, as it'll be useful
to implement row-gap in the future.
Apart from that the muticolumn layout code has been modified
to resolve the percentage gaps (treating them as zero while computing
preferred widths) and resolving them during layout.
This doesn't follow the current text on the spec, but there is an
ongoing discussion that might cause the text is changed:
https://github.com/w3c/csswg-drafts/issues/509#issuecomment-355242101
We could update the implementation once we have a definitive answer
from the CSS WG.
Test: web-platform-tests/css/css-multicol/multicol-gap-percentage-001.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
- css/CSSProperties.json:
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertGapLength):
- css/StyleBuilderCustom.h:
(WebCore::forwardInheritedValue):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeGapLength):
(WebCore::CSSPropertyParser::parseSingleValue):
- page/FrameView.cpp:
(WebCore::FrameView::applyPaginationToViewport):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::columnGap const):
- rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::columnGap const):
- rendering/style/GapLength.cpp: Added.
(WebCore::operator<<):
- rendering/style/GapLength.h: Added.
(WebCore::GapLength::GapLength):
(WebCore::GapLength::isNormal const):
(WebCore::GapLength::length const):
(WebCore::GapLength::operator== const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::columnGap const):
(WebCore::RenderStyle::setColumnGap):
(WebCore::RenderStyle::initialColumnGap):
- rendering/style/StyleMultiColData.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleMultiColData::operator== const):
- rendering/style/StyleMultiColData.h:
- style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
- 6:52 AM Changeset in webkit [227675] by
-
- 3 edits in trunk/Source/WebKit
[GTK] Support using long-tap gesture to open context menu
https://bugs.webkit.org/show_bug.cgi?id=140747
Patch by Jan-Michael Brummer <jan.brummer@tabos.org> on 2018-01-26
Reviewed by Carlos Garcia Campos.
Add long press gesture which simulates a secondary mouse press to open context menu.
- UIProcess/gtk/GestureController.cpp:
(WebKit::GestureController::GestureController):
(WebKit::GestureController::handleEvent):
(WebKit::GestureController::isProcessingGestures const):
(WebKit::GestureController::Gesture::simulateMousePress):
(WebKit::GestureController::DragGesture::handleTap):
(WebKit::GestureController::LongPressGesture::longPressed):
(WebKit::GestureController::LongPressGesture::pressed):
(WebKit::GestureController::LongPressGesture::LongPressGesture):
- UIProcess/gtk/GestureController.h:
(WebKit::GestureController::reset):
- 5:20 AM Changeset in webkit [227674] by
-
- 7 edits in trunk/Source/WebDriver
WebDriver: service hangs after a browser crash
https://bugs.webkit.org/show_bug.cgi?id=182170
Reviewed by Carlos Alberto Lopez Perez.
This is currently happening in the GTK+ debug bot. There's a test that makes the browser crash due to an assert,
hanging the whole process and preventing the rest of the tests from running. When the browser crashes, we
correctly handle the pending requests, by completing them with an error. However, if the client tries to send
another command we fail to send the message to the browser and the reply is never sent to the client. In the
case of the tests, delete session command is sent, but never gets a reply.
- Session.cpp:
(WebDriver::Session::isConnected const): Return whether the session is connected to the browser.
- Session.h:
- SessionHost.cpp:
(WebDriver::SessionHost::sendCommandToBackend): Pass the message ID to SessionHost::sendMessageToBackend().
- SessionHost.h:
- WebDriverService.cpp:
(WebDriver::WebDriverService::deleteSession): Ignore unknown errors if the session is no longer connected.
- glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::sendMessageToBackend): Handle errors when sending the command by completing the request
with an error.
- 2:46 AM Changeset in webkit [227673] by
-
- 3 edits in trunk/Source/WebCore
Remove unused RenderFragmentedFlow::createFragmentedFlowStyle.
https://bugs.webkit.org/show_bug.cgi?id=182138
Reviewed by Manuel Rego Casasnovas.
Has no callers.
No new tests, just removes unused code so no behavior change.
- rendering/RenderFragmentedFlow.cpp:
- rendering/RenderFragmentedFlow.h:
- 2:45 AM Changeset in webkit [227672] by
-
- 3 edits in trunk/Source/WebCore
Remove useless RenderBlockFlow overrides.
https://bugs.webkit.org/show_bug.cgi?id=182139
Reviewed by Manuel Rego Casasnovas.
I think these are leftovers from the CSS regions removal, looking at
blame.
No new tests, no behavior change.
- rendering/RenderBlockFlow.cpp:
- rendering/RenderBlockFlow.h:
- 1:50 AM Changeset in webkit [227671] by
-
- 3 edits in trunk/Source/WebDriver
WebDriver: timeouts value and cookie expiry should be limited to max safe integer
https://bugs.webkit.org/show_bug.cgi?id=182167
Reviewed by Žan Doberšek.
This changed recently in the spec, but our implementation was wrong in any case since we were limiting to
INT_MAX. Use valueAsNumberInRange() to ensure we get a valid double value in the given range, and then convert
to unsigned if it's a valid integer.
Fixes: imported/w3c/webdriver/tests/sessions/new_session/create_firstMatch.py::test_valid[timeouts-value10]
imported/w3c/webdriver/tests/sessions/new_session/create_alwaysMatch.py::test_valid[timeouts-value10]
- Session.h:
- WebDriverService.cpp:
(WebDriver::valueAsNumberInRange):
(WebDriver::unsignedValue):
(WebDriver::deserializeTimeouts):
(WebDriver::deserializeCookie):
- 1:18 AM Changeset in webkit [227670] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed. REGRESSION(r227647): window.open() is broken in GTK and WPE after r227647.
In r227647, API::UIClient::createNewPage() was changed to use CompletionHandler instead of Function. All
implementations were updated expect the GLib one, and we didn't notice it because the method doesn't have the
final/override mark.
- UIProcess/API/glib/WebKitUIClient.cpp:
(UIClient::createNewPage):
- 12:54 AM Changeset in webkit [227669] by
-
- 2 edits in trunk/Source/WebKit
[WebVR] Make WebVR available by default for developer builds
https://bugs.webkit.org/show_bug.cgi?id=182101
Reviewed by Michael Catanzaro.
Moved WebVR setting to the experimental features section and make it
available by default for developer builds for GTK and WPE.
- Shared/WebPreferences.yaml:
- 12:51 AM Changeset in webkit [227668] by
-
- 11 edits in trunk/WebDriverTests
Unreviewed. Update W3C WebDriver imported tests.
- imported/w3c/importer.json:
- imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/pytestrunner/runner.py:
- imported/w3c/webdriver/tests/element_click/select.py:
- imported/w3c/webdriver/tests/interaction/element_clear.py:
- imported/w3c/webdriver/tests/sessions/new_session/support/create.py:
- imported/w3c/webdriver/tests/state/get_element_attribute.py:
- imported/w3c/webdriver/tests/state/get_element_property.py:
- imported/w3c/webdriver/tests/state/get_element_tag_name.py:
- imported/w3c/webdriver/tests/state/is_element_selected.py: