[webkit-changes] [250545] branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/ WKWebView.mm
Title: [250545] branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm Revision 250545 Author alanc...@apple.com Date 2019-09-30 22:34:08 -0700 (Mon, 30 Sep 2019) Log Message Unreviewed build fix. rdar://problem/55825353 Modified Paths branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm Diff Modified: branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (250544 => 250545) --- branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2019-10-01 04:57:38 UTC (rev 250544) +++ branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2019-10-01 05:34:08 UTC (rev 250545) @@ -2035,13 +2035,13 @@ { if (_didDeferUpdateVisibleContentRectsForUnstableScrollView) { RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _didCommitLayerTree:] - received a commit (%llu) while deferring visible content rect updates (_dynamicViewportUpdateMode %d, _needsResetViewStateAfterCommitLoadForMainFrame %d (wants commit %llu), sizeChangedSinceLastVisibleContentRectUpdate %d, [_scrollView isZoomBouncing] %d, _currentlyAdjustingScrollViewInsetsForKeyboard %d)", -self, _page->pageID().toUInt64(), layerTreeTransaction.transactionID().toUInt64(), _dynamicViewportUpdateMode, _needsResetViewStateAfterCommitLoadForMainFrame, _firstPaintAfterCommitLoadTransactionID.toUInt64(), [_contentView sizeChangedSinceLastVisibleContentRectUpdate], [_scrollView isZoomBouncing], _currentlyAdjustingScrollViewInsetsForKeyboard); +self, _page->pageID().toUInt64(), layerTreeTransaction.transactionID(), _dynamicViewportUpdateMode, _needsResetViewStateAfterCommitLoadForMainFrame, _firstPaintAfterCommitLoadTransactionID, [_contentView sizeChangedSinceLastVisibleContentRectUpdate], [_scrollView isZoomBouncing], _currentlyAdjustingScrollViewInsetsForKeyboard); } if (_timeOfFirstVisibleContentRectUpdateWithPendingCommit) { auto timeSinceFirstRequestWithPendingCommit = MonotonicTime::now() - *_timeOfFirstVisibleContentRectUpdateWithPendingCommit; if (timeSinceFirstRequestWithPendingCommit > delayBeforeNoCommitsLogging) -RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _didCommitLayerTree:] - finally received commit %.2fs after visible content rect update request; transactionID %llu", self, _page->pageID().toUInt64(), timeSinceFirstRequestWithPendingCommit.value(), layerTreeTransaction.transactionID().toUInt64()); +RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _didCommitLayerTree:] - finally received commit %.2fs after visible content rect update request; transactionID %llu", self, _page->pageID().toUInt64(), timeSinceFirstRequestWithPendingCommit.value(), layerTreeTransaction.transactionID()); _timeOfFirstVisibleContentRectUpdateWithPendingCommit = WTF::nullopt; } @@ -3151,7 +3151,7 @@ if (_timeOfFirstVisibleContentRectUpdateWithPendingCommit) { auto timeSinceFirstRequestWithPendingCommit = timeNow - *_timeOfFirstVisibleContentRectUpdateWithPendingCommit; if (timeSinceFirstRequestWithPendingCommit > delayBeforeNoCommitsLogging) -RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _updateVisibleContentRects:] - have not received a commit %.2fs after visible content rect update; lastTransactionID %llu", self, _page->pageID().toUInt64(), timeSinceFirstRequestWithPendingCommit.value(), _lastTransactionID.toUInt64()); +RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _updateVisibleContentRects:] - have not received a commit %.2fs after visible content rect update; lastTransactionID %llu", self, _page->pageID().toUInt64(), timeSinceFirstRequestWithPendingCommit.value(), _lastTransactionID); } if (_invokingUIScrollViewDelegateCallback) { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250547] branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa
Title: [250547] branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa Revision 250547 Author alanc...@apple.com Date 2019-09-30 22:34:15 -0700 (Mon, 30 Sep 2019) Log Message Disabling tests until d...@apple.com can fix. rdar://problem/55825353 Modified Paths branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm Added Paths branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm.orig Diff Modified: branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm (250546 => 250547) --- branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm 2019-10-01 05:34:13 UTC (rev 250546) +++ branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm 2019-10-01 05:34:15 UTC (rev 250547) @@ -23,6 +23,8 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ +#if 0 + #import "config.h" #if PLATFORM(IOS) && USE(UICONTEXTMENU) @@ -345,3 +347,5 @@ } #endif // PLATFORM(IOS) && USE(UICONTEXTMENU) + +#endif Copied: branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm.orig (from rev 250546, branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm) (0 => 250547) --- branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm.orig (rev 0) +++ branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm.orig 2019-10-01 05:34:15 UTC (rev 250547) @@ -0,0 +1,347 @@ +/* + * Copyright (C) 2019 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import "config.h" + +#if PLATFORM(IOS) && USE(UICONTEXTMENU) + +#import "TestContextMenuDriver.h" +#import "TestWKWebView.h" +#import "TestWKWebViewController.h" +#import "Utilities.h" +#import +#import + +static bool contextMenuRequested; +static bool willPresentCalled; +static bool willCommitCalled; +static bool previewingViewControllerCalled; +static bool previewActionItemsCalled; +static bool didEndCalled; +static bool alternateURLRequested; +static RetainPtr linkURL; + +static RetainPtr contextMenuWebViewDriver(Class delegateClass, NSString *customHTMLString = nil) +{ +static auto window = adoptNS([[UIWindow alloc] initWithFrame:NSMakeRect(0, 0, 800, 600)]); +static auto driver = adoptNS([TestContextMenuDriver new]); +static auto uiDelegate = adoptNS((NSObject *)[delegateClass new]); +static auto configuration = adoptNS([WKWebViewConfiguration new]); +[configuration _setClickInteractionDriverForTesting:driver.get()]; +static auto webViewController = adoptNS([[TestWKWebViewController alloc] initWithFrame:CGRectMake(0, 0, 200, 200) configuration:configuration.get()]); +TestWKWebView *webView = [webViewController webView]; +[window addSubview:webView]; +[webView setUIDelegate:uiDelegate.get()]; +if (!customHTMLString) { +linkURL = [NSURL URLWithString:@"http://127.0.0.1/"]; +[webView synchronouslyLoadHTMLString:[NSString stringWithFormat:@"This is a link", linkURL.get()]]; +} else +[webView synchronouslyLoadHTMLString:customHTMLString]; +return driver; +} + +@interface TestContextMenuUIDelegate : NSObject +@end + +@implementation TestContextMenuUIDelegate + +- (void)webView:(WKWebView *)webView contextMenuConfigurationForElement:(WKContextMenuElementInfo *)elementInfo completionHandler:(void(^)(UIContextMenuConfiguration * _Nullable))completionHandler +{ +EXPECT_TRUE([elementInfo.linkURL.absoluteString isEqualToString:[linkURL absoluteString]]); +contextMenuRequested = true; +UIContextMenuContentPreviewProvider previewProvider = ^UIViewController * () +{ +
[webkit-changes] [250546] branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ ContextMenus.mm
Title: [250546] branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm Revision 250546 Author alanc...@apple.com Date 2019-09-30 22:34:13 -0700 (Mon, 30 Sep 2019) Log Message Unreviewed build fix from thor...@apple.com. rdar://problem/55825353 Modified Paths branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm Diff Modified: branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm (250545 => 250546) --- branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm 2019-10-01 05:34:08 UTC (rev 250545) +++ branches/safari-608-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm 2019-10-01 05:34:13 UTC (rev 250546) @@ -37,9 +37,31 @@ static bool contextMenuRequested; static bool willPresentCalled; static bool willCommitCalled; +static bool previewingViewControllerCalled; +static bool previewActionItemsCalled; static bool didEndCalled; -static RetainPtr simpleURL; +static bool alternateURLRequested; +static RetainPtr linkURL; +static RetainPtr contextMenuWebViewDriver(Class delegateClass, NSString *customHTMLString = nil) +{ +static auto window = adoptNS([[UIWindow alloc] initWithFrame:NSMakeRect(0, 0, 800, 600)]); +static auto driver = adoptNS([TestContextMenuDriver new]); +static auto uiDelegate = adoptNS((NSObject *)[delegateClass new]); +static auto configuration = adoptNS([WKWebViewConfiguration new]); +[configuration _setClickInteractionDriverForTesting:driver.get()]; +static auto webViewController = adoptNS([[TestWKWebViewController alloc] initWithFrame:CGRectMake(0, 0, 200, 200) configuration:configuration.get()]); +TestWKWebView *webView = [webViewController webView]; +[window addSubview:webView]; +[webView setUIDelegate:uiDelegate.get()]; +if (!customHTMLString) { +linkURL = [NSURL URLWithString:@"http://127.0.0.1/"]; +[webView synchronouslyLoadHTMLString:[NSString stringWithFormat:@"This is a link", linkURL.get()]]; +} else +[webView synchronouslyLoadHTMLString:customHTMLString]; +return driver; +} + @interface TestContextMenuUIDelegate : NSObject @end @@ -47,7 +69,7 @@ - (void)webView:(WKWebView *)webView contextMenuConfigurationForElement:(WKContextMenuElementInfo *)elementInfo completionHandler:(void(^)(UIContextMenuConfiguration * _Nullable))completionHandler { -EXPECT_TRUE([elementInfo.linkURL.absoluteString isEqualToString:[simpleURL absoluteString]]); +EXPECT_TRUE([elementInfo.linkURL.absoluteString isEqualToString:[linkURL absoluteString]]); contextMenuRequested = true; UIContextMenuContentPreviewProvider previewProvider = ^UIViewController * () { @@ -77,25 +99,9 @@ @end -static RetainPtr contextMenuWebViewDriver() -{ -static auto window = adoptNS([[UIWindow alloc] initWithFrame:NSMakeRect(0, 0, 800, 600)]); -static auto driver = adoptNS([TestContextMenuDriver new]); -static auto uiDelegate = adoptNS([TestContextMenuUIDelegate new]); -static auto configuration = adoptNS([WKWebViewConfiguration new]); -[configuration _setClickInteractionDriverForTesting:(id<_UIClickInteractionDriving>)driver.get()]; -static auto webViewController = adoptNS([[TestWKWebViewController alloc] initWithFrame:CGRectMake(0, 0, 200, 200) configuration:configuration.get()]); -TestWKWebView *webView = [webViewController webView]; -[window addSubview:webView]; -[webView setUIDelegate:uiDelegate.get()]; -simpleURL = [[NSBundle mainBundle] URLForResource:@"simple" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]; -[webView synchronouslyLoadHTMLString:[NSString stringWithFormat:@"This is a link", simpleURL.get()]]; -return driver; -} - TEST(WebKit, ContextMenuClick) { -auto driver = contextMenuWebViewDriver(); +auto driver = contextMenuWebViewDriver([TestContextMenuUIDelegate class]); [driver begin:^(BOOL result) { EXPECT_TRUE(result); [driver clickDown]; @@ -110,7 +116,7 @@ TEST(WebKit, ContextMenuEnd) { -auto driver = contextMenuWebViewDriver(); +auto driver = contextMenuWebViewDriver([TestContextMenuUIDelegate class]); [driver begin:^(BOOL result) { EXPECT_TRUE(result); [driver end]; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250544] trunk
Title: [250544] trunk Revision 250544 Author drou...@apple.com Date 2019-09-30 21:57:38 -0700 (Mon, 30 Sep 2019) Log Message Web Inspector: JS Formatter: unexpected newlines added inside template string _expression_ https://bugs.webkit.org/show_bug.cgi?id=202374 Reviewed by Joseph Pecoraro. Source/WebInspectorUI: Wrap every "add newline" with a check to see if the current node is inside a template literal node. If so (and we aren't forcibly adding a newline), prevent the newline from being added. * UserInterface/Workers/Formatter/JSFormatter.js: (JSFormatter.prototype._appendNewline): Added. (JSFormatter.prototype._insertNewlinesBeforeToken): (JSFormatter.prototype._insertComment): (JSFormatter.prototype._insertSameLineTrailingComments): (JSFormatter.prototype._insertCommentsAndNewlines): (JSFormatter.prototype._before): (JSFormatter.prototype._after): (JSFormatter.prototype._handleTokenAtNode): (JSFormatter.prototype._exitNode): (JSFormatter.prototype._afterProgram): LayoutTests: * inspector/formatting/resources/_javascript_-tests/template-strings.js: * inspector/formatting/resources/_javascript_-tests/template-strings-expected.js: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/inspector/formatting/resources/_javascript_-tests/template-strings-expected.js trunk/LayoutTests/inspector/formatting/resources/_javascript_-tests/template-strings.js trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Workers/Formatter/JSFormatter.js Diff Modified: trunk/LayoutTests/ChangeLog (250543 => 250544) --- trunk/LayoutTests/ChangeLog 2019-10-01 04:06:25 UTC (rev 250543) +++ trunk/LayoutTests/ChangeLog 2019-10-01 04:57:38 UTC (rev 250544) @@ -1,3 +1,13 @@ +2019-09-30 Devin Rousso + +Web Inspector: JS Formatter: unexpected newlines added inside template string _expression_ +https://bugs.webkit.org/show_bug.cgi?id=202374 + +Reviewed by Joseph Pecoraro. + +* inspector/formatting/resources/_javascript_-tests/template-strings.js: +* inspector/formatting/resources/_javascript_-tests/template-strings-expected.js: + 2019-09-30 Saam Barati Inline caching is wrong for custom accessors and custom values Modified: trunk/LayoutTests/inspector/formatting/resources/_javascript_-tests/template-strings-expected.js (250543 => 250544) --- trunk/LayoutTests/inspector/formatting/resources/_javascript_-tests/template-strings-expected.js 2019-10-01 04:06:25 UTC (rev 250543) +++ trunk/LayoutTests/inspector/formatting/resources/_javascript_-tests/template-strings-expected.js 2019-10-01 04:57:38 UTC (rev 250544) @@ -8,3 +8,14 @@ tag`tagged template string` tag`tagged template string` tag`before ${1 + 1} after` + +` +before ${1 + 1} after +before ${x} after +before ${func()} after +before ${{a: 1}} after +before ${[1]} after +before ${ +y +} after +` Modified: trunk/LayoutTests/inspector/formatting/resources/_javascript_-tests/template-strings.js (250543 => 250544) --- trunk/LayoutTests/inspector/formatting/resources/_javascript_-tests/template-strings.js 2019-10-01 04:06:25 UTC (rev 250543) +++ trunk/LayoutTests/inspector/formatting/resources/_javascript_-tests/template-strings.js 2019-10-01 04:57:38 UTC (rev 250544) @@ -8,3 +8,14 @@ tag`tagged template string` tag `tagged template string` tag`before ${1+1} after` + +` +before ${ 1 + 1 } after +before ${ x } after +before ${ func() } after +before ${ { a: 1 } } after +before ${ [ 1 ] } after +before ${ +y +} after +` \ No newline at end of file Modified: trunk/Source/WebInspectorUI/ChangeLog (250543 => 250544) --- trunk/Source/WebInspectorUI/ChangeLog 2019-10-01 04:06:25 UTC (rev 250543) +++ trunk/Source/WebInspectorUI/ChangeLog 2019-10-01 04:57:38 UTC (rev 250544) @@ -1,5 +1,28 @@ 2019-09-30 Devin Rousso +Web Inspector: JS Formatter: unexpected newlines added inside template string _expression_ +https://bugs.webkit.org/show_bug.cgi?id=202374 + +Reviewed by Joseph Pecoraro. + +Wrap every "add newline" with a check to see if the current node is inside a template +literal node. If so (and we aren't forcibly adding a newline), prevent the newline from +being added. + +* UserInterface/Workers/Formatter/JSFormatter.js: +(JSFormatter.prototype._appendNewline): Added. +(JSFormatter.prototype._insertNewlinesBeforeToken): +(JSFormatter.prototype._insertComment): +(JSFormatter.prototype._insertSameLineTrailingComments): +(JSFormatter.prototype._insertCommentsAndNewlines): +(JSFormatter.prototype._before): +(JSFormatter.prototype._after): +(JSFormatter.prototype._handleTokenAtNode): +(JSFormatter.prototype._exitNode): +(JSFormatter.prototype._afterProgram): + +2019-09-30 Devin Rousso + Web Inspector: Canvas: shader type header is white in dark mode
[webkit-changes] [250543] trunk
Title: [250543] trunk Revision 250543 Author tzaga...@apple.com Date 2019-09-30 21:06:25 -0700 (Mon, 30 Sep 2019) Log Message Make assertion in JSObject::putOwnDataProperty more precise https://bugs.webkit.org/show_bug.cgi?id=202379 Reviewed by Yusuke Suzuki. JSTests: * stress/object-assign-target-proto-setter.js: Added. (get Object): Source/_javascript_Core: Currently, we assert that the structure has no accessors/custom accessors, but that assertion is too conservative. All we need to prove is that the property being inserted either does not exist in the target object or is neither an accessor nor read-only. * runtime/JSObject.h: (JSC::JSObject::putOwnDataProperty): Deleted. (JSC::JSObject::putOwnDataPropertyMayBeIndex): Deleted. * runtime/JSObjectInlines.h: (JSC::JSObject::validatePutOwnDataProperty): (JSC::JSObject::putOwnDataProperty): (JSC::JSObject::putOwnDataPropertyMayBeIndex): Modified Paths trunk/JSTests/ChangeLog trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/runtime/JSObject.h trunk/Source/_javascript_Core/runtime/JSObjectInlines.h Added Paths trunk/JSTests/stress/object-assign-target-proto-setter.js Diff Modified: trunk/JSTests/ChangeLog (250542 => 250543) --- trunk/JSTests/ChangeLog 2019-10-01 03:36:01 UTC (rev 250542) +++ trunk/JSTests/ChangeLog 2019-10-01 04:06:25 UTC (rev 250543) @@ -1,3 +1,14 @@ +2019-09-30 Tadeu Zagallo + +Make assertion in JSObject::putOwnDataProperty more precise +https://bugs.webkit.org/show_bug.cgi?id=202379 + + +Reviewed by Yusuke Suzuki. + +* stress/object-assign-target-proto-setter.js: Added. +(get Object): + 2019-09-30 Yusuke Suzuki [JSC] HeapSnapshotBuilder m_rootData should be protected with a lock too Added: trunk/JSTests/stress/object-assign-target-proto-setter.js (0 => 250543) --- trunk/JSTests/stress/object-assign-target-proto-setter.js (rev 0) +++ trunk/JSTests/stress/object-assign-target-proto-setter.js 2019-10-01 04:06:25 UTC (rev 250543) @@ -0,0 +1,3 @@ +const x = {}; +Object.defineProperty(x, '__proto__', {get: ()=>{}}); +Object.assign(x, { get: ()=> {} }); Modified: trunk/Source/_javascript_Core/ChangeLog (250542 => 250543) --- trunk/Source/_javascript_Core/ChangeLog 2019-10-01 03:36:01 UTC (rev 250542) +++ trunk/Source/_javascript_Core/ChangeLog 2019-10-01 04:06:25 UTC (rev 250543) @@ -1,3 +1,23 @@ +2019-09-30 Tadeu Zagallo + +Make assertion in JSObject::putOwnDataProperty more precise +https://bugs.webkit.org/show_bug.cgi?id=202379 + + +Reviewed by Yusuke Suzuki. + +Currently, we assert that the structure has no accessors/custom accessors, but that assertion is +too conservative. All we need to prove is that the property being inserted either does not exist +in the target object or is neither an accessor nor read-only. + +* runtime/JSObject.h: +(JSC::JSObject::putOwnDataProperty): Deleted. +(JSC::JSObject::putOwnDataPropertyMayBeIndex): Deleted. +* runtime/JSObjectInlines.h: +(JSC::JSObject::validatePutOwnDataProperty): +(JSC::JSObject::putOwnDataProperty): +(JSC::JSObject::putOwnDataPropertyMayBeIndex): + 2019-09-30 Yusuke Suzuki [JSC] HeapSnapshotBuilder m_rootData should be protected with a lock too Modified: trunk/Source/_javascript_Core/runtime/JSObject.h (250542 => 250543) --- trunk/Source/_javascript_Core/runtime/JSObject.h 2019-10-01 03:36:01 UTC (rev 250542) +++ trunk/Source/_javascript_Core/runtime/JSObject.h 2019-10-01 04:06:25 UTC (rev 250543) @@ -727,6 +727,9 @@ // This is used by JSLexicalEnvironment. bool putOwnDataProperty(VM&, PropertyName, JSValue, PutPropertySlot&); bool putOwnDataPropertyMayBeIndex(ExecState*, PropertyName, JSValue, PutPropertySlot&); +private: +void validatePutOwnDataProperty(VM&, PropertyName, JSValue); +public: // Fast access to known property offsets. ALWAYS_INLINE JSValue getDirect(PropertyOffset offset) const { return locationForOffset(offset)->get(); } @@ -1490,30 +1493,6 @@ return jsUndefined(); } -inline bool JSObject::putOwnDataProperty(VM& vm, PropertyName propertyName, JSValue value, PutPropertySlot& slot) -{ -ASSERT(value); -ASSERT(!Heap::heap(value) || Heap::heap(value) == Heap::heap(this)); -ASSERT(!structure(vm)->hasGetterSetterProperties()); -ASSERT(!structure(vm)->hasCustomGetterSetterProperties()); - -return putDirectInternal(vm, propertyName, value, 0, slot); -} - -inline bool JSObject::putOwnDataPropertyMayBeIndex(ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot& slot) -{ -VM& vm = exec->vm(); -ASSERT(value); -ASSERT(!Heap::heap(value) || Heap::heap(value) == Heap::heap(this)); -ASSERT(!structure(vm)->hasGetterSetterProperties()); -ASSERT(!structure(vm)->hasCustomGetterSetterProperties()); - -if (Optional
[webkit-changes] [250542] trunk/Source/WebCore
Title: [250542] trunk/Source/WebCore Revision 250542 Author cdu...@apple.com Date 2019-09-30 20:36:01 -0700 (Mon, 30 Sep 2019) Log Message Make GenericEventQueue an ActiveDOMObject https://bugs.webkit.org/show_bug.cgi?id=202373 Reviewed by Eric Carlson. Make GenericEventQueue an ActiveDOMObject so that it is guaranteed to never fire any events while suspended without requiring the client to explicitly suspend/resume the event queue. * Modules/encryptedmedia/MediaKeySession.cpp: (WebCore::MediaKeySession::MediaKeySession): (WebCore::MediaKeySession::enqueueMessage): (WebCore::MediaKeySession::updateKeyStatuses): * Modules/encryptedmedia/MediaKeySession.h: * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp: (WebCore::WebKitMediaKeySession::WebKitMediaKeySession): (WebCore::WebKitMediaKeySession::~WebKitMediaKeySession): (WebCore::WebKitMediaKeySession::addKeyTimerFired): (WebCore::WebKitMediaKeySession::sendMessage): (WebCore::WebKitMediaKeySession::sendError): (WebCore::WebKitMediaKeySession::hasPendingActivity const): (WebCore::WebKitMediaKeySession::stop): * Modules/encryptedmedia/legacy/WebKitMediaKeySession.h: * Modules/mediasource/MediaSource.cpp: (WebCore::MediaSource::MediaSource): (WebCore::MediaSource::hasPendingActivity const): (WebCore::MediaSource::stop): (WebCore::MediaSource::canSuspendForDocumentSuspension const): (WebCore::MediaSource::scheduleEvent): * Modules/mediasource/MediaSource.h: * Modules/mediasource/SourceBuffer.cpp: (WebCore::SourceBuffer::SourceBuffer): (WebCore::SourceBuffer::hasPendingActivity const): (WebCore::SourceBuffer::stop): (WebCore::SourceBuffer::scheduleEvent): * Modules/mediasource/SourceBuffer.h: * Modules/mediasource/SourceBufferList.cpp: (WebCore::SourceBufferList::SourceBufferList): (WebCore::SourceBufferList::scheduleEvent): (WebCore::SourceBufferList::canSuspendForDocumentSuspension const): * Modules/mediasource/SourceBufferList.h: * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::AudioContext): (WebCore::AudioContext::stop): * Modules/webaudio/AudioContext.h: * animation/DeclarativeAnimation.cpp: (WebCore::DeclarativeAnimation::DeclarativeAnimation): (WebCore::DeclarativeAnimation::tick): (WebCore::DeclarativeAnimation::needsTick const): (WebCore::DeclarativeAnimation::remove): (WebCore::DeclarativeAnimation::enqueueDOMEvent): (WebCore::DeclarativeAnimation::stop): (WebCore::DeclarativeAnimation::suspend): (WebCore::DeclarativeAnimation::resume): * animation/DeclarativeAnimation.h: * dom/GenericEventQueue.cpp: (WebCore::GenericEventQueueBase::GenericEventQueueBase): (WebCore::GenericEventQueueBase::setPaused): (WebCore::GenericEventQueueBase::canSuspendForDocumentSuspension const): (WebCore::GenericEventQueueBase::suspend): (WebCore::GenericEventQueueBase::resume): (WebCore::GenericEventQueueBase::rescheduleAllEventsIfNeeded): (WebCore::GenericEventQueueBase::stop): (WebCore::GenericEventQueueBase::activeDOMObjectName const): (WebCore::GenericEventQueue::create): (WebCore::MainThreadGenericEventQueue::create): * dom/GenericEventQueue.h: * dom/MessagePort.cpp: (WebCore::MessagePort::MessagePort): (WebCore::MessagePort::close): (WebCore::MessagePort::dispatchMessages): * dom/MessagePort.h: * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): (WebCore::HTMLMediaElement::~HTMLMediaElement): (WebCore::HTMLMediaElement::scheduleEvent): (WebCore::HTMLMediaElement::updateActiveTextTrackCues): (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): (WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered): (WebCore::HTMLMediaElement::closeTaskQueues): (WebCore::HTMLMediaElement::suspend): (WebCore::HTMLMediaElement::resume): (WebCore::HTMLMediaElement::hasPendingActivity const): (WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): * html/HTMLMediaElement.h: * html/track/TrackListBase.cpp: (WebCore::TrackListBase::TrackListBase): (WebCore::TrackListBase::scheduleTrackEvent): (WebCore::TrackListBase::scheduleChangeEvent): (WebCore::TrackListBase::isChangeEventScheduled const): (WebCore::TrackListBase::canSuspendForDocumentSuspension const): * html/track/TrackListBase.h: * workers/Worker.cpp: (WebCore::Worker::Worker): (WebCore::Worker::terminate): (WebCore::Worker::stop): (WebCore::Worker::hasPendingActivity const): (WebCore::Worker::enqueueEvent): (WebCore::Worker::dispatchEvent): * workers/Worker.h: * workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::ServiceWorkerContainer): (WebCore::ServiceWorkerContainer::startMessages): (WebCore::ServiceWorkerContainer::postMessage): (WebCore::ServiceWorkerContainer::stop): * workers/service/ServiceWorkerContainer.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.h
[webkit-changes] [250541] trunk
Title: [250541] trunk Revision 250541 Author ysuz...@apple.com Date 2019-09-30 20:23:58 -0700 (Mon, 30 Sep 2019) Log Message [JSC] HeapSnapshotBuilder m_rootData should be protected with a lock too https://bugs.webkit.org/show_bug.cgi?id=202389 Reviewed by Mark Lam. JSTests: * stress/heap-analyzer-taking-lock.js: Added. Source/_javascript_Core: While we are protecting HeapSnapshotBuilder::m_edges with a lock, we are not protecting m_rootData, which is also concurrently modified. This patch protects it. * heap/HeapSnapshotBuilder.cpp: (JSC::HeapSnapshotBuilder::setOpaqueRootReachabilityReasonForCell): Modified Paths trunk/JSTests/ChangeLog trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/heap/HeapSnapshotBuilder.cpp Added Paths trunk/JSTests/stress/heap-analyzer-taking-lock.js Diff Modified: trunk/JSTests/ChangeLog (250540 => 250541) --- trunk/JSTests/ChangeLog 2019-10-01 00:50:46 UTC (rev 250540) +++ trunk/JSTests/ChangeLog 2019-10-01 03:23:58 UTC (rev 250541) @@ -1,3 +1,13 @@ +2019-09-30 Yusuke Suzuki + +[JSC] HeapSnapshotBuilder m_rootData should be protected with a lock too +https://bugs.webkit.org/show_bug.cgi?id=202389 + + +Reviewed by Mark Lam. + +* stress/heap-analyzer-taking-lock.js: Added. + 2019-09-30 Saam Barati Inline caching is wrong for custom accessors and custom values Added: trunk/JSTests/stress/heap-analyzer-taking-lock.js (0 => 250541) --- trunk/JSTests/stress/heap-analyzer-taking-lock.js (rev 0) +++ trunk/JSTests/stress/heap-analyzer-taking-lock.js 2019-10-01 03:23:58 UTC (rev 250541) @@ -0,0 +1,8 @@ +// Should not crash. +let array = []; +for (let i = 0; i < 1; i++) { +array[i] = new DataView(new ArrayBuffer()); +} +for (let i = 0; i < 1000; i++) {} + +generateHeapSnapshotForGCDebugging(); Modified: trunk/Source/_javascript_Core/ChangeLog (250540 => 250541) --- trunk/Source/_javascript_Core/ChangeLog 2019-10-01 00:50:46 UTC (rev 250540) +++ trunk/Source/_javascript_Core/ChangeLog 2019-10-01 03:23:58 UTC (rev 250541) @@ -1,3 +1,17 @@ +2019-09-30 Yusuke Suzuki + +[JSC] HeapSnapshotBuilder m_rootData should be protected with a lock too +https://bugs.webkit.org/show_bug.cgi?id=202389 + + +Reviewed by Mark Lam. + +While we are protecting HeapSnapshotBuilder::m_edges with a lock, we are not protecting m_rootData, which is also concurrently modified. +This patch protects it. + +* heap/HeapSnapshotBuilder.cpp: +(JSC::HeapSnapshotBuilder::setOpaqueRootReachabilityReasonForCell): + 2019-09-30 Saam Barati Inline caching is wrong for custom accessors and custom values Modified: trunk/Source/_javascript_Core/heap/HeapSnapshotBuilder.cpp (250540 => 250541) --- trunk/Source/_javascript_Core/heap/HeapSnapshotBuilder.cpp 2019-10-01 00:50:46 UTC (rev 250540) +++ trunk/Source/_javascript_Core/heap/HeapSnapshotBuilder.cpp 2019-10-01 03:23:58 UTC (rev 250541) @@ -150,6 +150,8 @@ if (!reason || !*reason || m_snapshotType != SnapshotType::GCDebuggingSnapshot) return; +std::lock_guard lock(m_buildingEdgeMutex); + m_rootData.ensure(cell, [] () -> RootData { return { }; }).iterator->value.reachabilityFromOpaqueRootReasons = reason; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250540] trunk
Title: [250540] trunk Revision 250540 Author sbar...@apple.com Date 2019-09-30 17:50:46 -0700 (Mon, 30 Sep 2019) Log Message Inline caching is wrong for custom accessors and custom values https://bugs.webkit.org/show_bug.cgi?id=201994 Reviewed by Yusuke Suzuki. JSTests: * microbenchmarks/custom-accessor-materialized.js: Added. (assert): (test4.get const): * microbenchmarks/custom-accessor-thin-air.js: Added. (assert): (test5.get const): (test5.get proto): * microbenchmarks/custom-accessor.js: Added. (assert): (test3.get const): * microbenchmarks/custom-value-2.js: Added. (assert): (test1.getMultiline): (test1): * microbenchmarks/custom-value.js: Added. (assert): (test1.getMultiline): (test1): * stress/custom-accessor-delete-1.js: Added. (assert): (test3.get const): * stress/custom-accessor-delete-2.js: Added. (assert): (test4.get const): * stress/custom-accessor-delete-3.js: Added. (assert): (test5.get const): (test5.get proto): * stress/custom-value-delete-property-1.js: Added. (assert): (test1.getMultiline): (test1): * stress/custom-value-delete-property-2.js: Added. (test2.foo): (test2): * stress/custom-value-delete-property-3.js: Added. (test6.foo): (test6): Source/_javascript_Core: There was an oversight in our inline caching code for custom accessors and custom values. We used to assume that if an object O had a custom function for property P, then O will forever respond to the same custom function for property P. This assumption was very wrong. These custom accessors/values might be properties in JS which are configurable, so they can be rewritten to be other properties. Our inline caching code would be wrong in the scenarios where these property descriptors got redefined. This patch makes it so that we now properly watchpoint for custom functions being changed. If the custom accessor has been materialized, we place an Equivalence watchpoint on the custom accessor. This patch also teaches StructureStubInfo how to watchpoint on property value equivalence. Before, we just watchpointed on structure transitions. This patch also adds a new property condition kind for when the custom function exists inside the static property table. This case is really easy to test for because we just need to see if the structure still has static properties and the static property table has the entry for a particular property. This property condition kind just needs to watch for structure transitions because an entry in the static property table can't be mutated. This patch is neutral on the microbenchmarks I've added. * bytecode/AccessCase.cpp: (JSC::AccessCase::AccessCase): (JSC::AccessCase::couldStillSucceed const): (JSC::AccessCase::generateImpl): * bytecode/AdaptiveInferredPropertyValueWatchpointBase.h: * bytecode/ObjectPropertyCondition.cpp: (JSC::ObjectPropertyCondition::structureEnsuresValidityAssumingImpurePropertyWatchpoint const): * bytecode/ObjectPropertyCondition.h: (JSC::ObjectPropertyCondition::customFunctionEquivalence): * bytecode/ObjectPropertyConditionSet.cpp: (JSC::ObjectPropertyConditionSet::hasOneSlotBaseCondition const): (JSC::ObjectPropertyConditionSet::slotBaseCondition const): (JSC::generateConditionsForPrototypePropertyHitCustom): * bytecode/ObjectPropertyConditionSet.h: * bytecode/PolyProtoAccessChain.cpp: (JSC::PolyProtoAccessChain::create): * bytecode/PolymorphicAccess.cpp: (JSC::AccessGenerationState::installWatchpoint): (JSC::PolymorphicAccess::commit): (JSC::AccessGenerationState::addWatchpoint): Deleted. * bytecode/PolymorphicAccess.h: * bytecode/PropertyCondition.cpp: (JSC::PropertyCondition::dumpInContext const): (JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const): (JSC::PropertyCondition::validityRequiresImpurePropertyWatchpoint const): (JSC::PropertyCondition::isStillValid const): (JSC::PropertyCondition::isWatchableWhenValid const): (WTF::printInternal): * bytecode/PropertyCondition.h: (JSC::PropertyCondition::customFunctionEquivalence): (JSC::PropertyCondition::hash const): (JSC::PropertyCondition::operator== const): * bytecode/StructureStubClearingWatchpoint.cpp: (JSC::StructureTransitionStructureStubClearingWatchpoint::fireInternal): (JSC::WatchpointsOnStructureStubInfo::addWatchpoint): (JSC::WatchpointsOnStructureStubInfo::ensureReferenceAndInstallWatchpoint): (JSC::WatchpointsOnStructureStubInfo::ensureReferenceAndAddWatchpoint): (JSC::AdaptiveValueStructureStubClearingWatchpoint::handleFire): (JSC::StructureStubClearingWatchpoint::fireInternal): Deleted. * bytecode/StructureStubClearingWatchpoint.h: * bytecode/Watchpoint.h: * jit/Repatch.cpp: (JSC::tryCacheGetByID): (JSC::tryCachePutByID): * runtime/ClassInfo.h: * runtime/JSObject.cpp: (JSC::JSObject::findPropertyHashEntry const): * runtime/JSObject.h: * runtime/ObjectPropertyChangeAdaptiveWatchpoint.h: * runtime/Structure.cpp: (JSC::Structure::findPropertyHashEntry const): * runtime/Structure.h: * tools/JSDollarVM.cpp: (JSC::testStaticAccessorGetter):
[webkit-changes] [250539] branches/safari-608-branch/Source
Title: [250539] branches/safari-608-branch/Source Revision 250539 Author alanc...@apple.com Date 2019-09-30 17:47:04 -0700 (Mon, 30 Sep 2019) Log Message Versioning. Modified Paths branches/safari-608-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-608-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebCore/PAL/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebKit/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: branches/safari-608-branch/Source/_javascript_Core/Configurations/Version.xcconfig (250538 => 250539) --- branches/safari-608-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2019-10-01 00:23:49 UTC (rev 250538) +++ branches/safari-608-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2019-10-01 00:47:04 UTC (rev 250539) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 6; +TINY_VERSION = 7; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (250538 => 250539) --- branches/safari-608-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2019-10-01 00:23:49 UTC (rev 250538) +++ branches/safari-608-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2019-10-01 00:47:04 UTC (rev 250539) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 6; +TINY_VERSION = 7; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebCore/Configurations/Version.xcconfig (250538 => 250539) --- branches/safari-608-branch/Source/WebCore/Configurations/Version.xcconfig 2019-10-01 00:23:49 UTC (rev 250538) +++ branches/safari-608-branch/Source/WebCore/Configurations/Version.xcconfig 2019-10-01 00:47:04 UTC (rev 250539) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 6; +TINY_VERSION = 7; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (250538 => 250539) --- branches/safari-608-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2019-10-01 00:23:49 UTC (rev 250538) +++ branches/safari-608-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2019-10-01 00:47:04 UTC (rev 250539) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 6; +TINY_VERSION = 7; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (250538 => 250539) --- branches/safari-608-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2019-10-01 00:23:49 UTC (rev 250538) +++ branches/safari-608-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2019-10-01 00:47:04 UTC (rev 250539) @@ -1,6 +1,6 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 6; +TINY_VERSION = 7; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebKit/Configurations/Version.xcconfig (250538 => 250539) --- branches/safari-608-branch/Source/WebKit/Configurations/Version.xcconfig 2019-10-01 00:23:49 UTC (rev 250538) +++ branches/safari-608-branch/Source/WebKit/Configurations/Version.xcconfig 2019-10-01 00:47:04 UTC (rev 250539) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 6; +TINY_VERSION = 7; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig (250538 => 250539) --- branches/safari-608-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2019-10-01 00:23:49 UTC (rev 250538) +++ branches/safari-608-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2019-10-01 00:47:04 UTC (rev 250539) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 6; +TINY_VERSION = 7; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250538] tags/Safari-608.3.6/
Title: [250538] tags/Safari-608.3.6/ Revision 250538 Author alanc...@apple.com Date 2019-09-30 17:23:49 -0700 (Mon, 30 Sep 2019) Log Message Tag Safari-608.3.6. Added Paths tags/Safari-608.3.6/ Diff ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250537] branches/safari-608-branch/Source
Title: [250537] branches/safari-608-branch/Source Revision 250537 Author alanc...@apple.com Date 2019-09-30 17:10:34 -0700 (Mon, 30 Sep 2019) Log Message Versioning. Modified Paths branches/safari-608-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-608-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebCore/PAL/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebKit/Configurations/Version.xcconfig branches/safari-608-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: branches/safari-608-branch/Source/_javascript_Core/Configurations/Version.xcconfig (250536 => 250537) --- branches/safari-608-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2019-10-01 00:00:06 UTC (rev 250536) +++ branches/safari-608-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2019-10-01 00:10:34 UTC (rev 250537) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (250536 => 250537) --- branches/safari-608-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2019-10-01 00:00:06 UTC (rev 250536) +++ branches/safari-608-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2019-10-01 00:10:34 UTC (rev 250537) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebCore/Configurations/Version.xcconfig (250536 => 250537) --- branches/safari-608-branch/Source/WebCore/Configurations/Version.xcconfig 2019-10-01 00:00:06 UTC (rev 250536) +++ branches/safari-608-branch/Source/WebCore/Configurations/Version.xcconfig 2019-10-01 00:10:34 UTC (rev 250537) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (250536 => 250537) --- branches/safari-608-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2019-10-01 00:00:06 UTC (rev 250536) +++ branches/safari-608-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2019-10-01 00:10:34 UTC (rev 250537) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (250536 => 250537) --- branches/safari-608-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2019-10-01 00:00:06 UTC (rev 250536) +++ branches/safari-608-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2019-10-01 00:10:34 UTC (rev 250537) @@ -1,6 +1,6 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebKit/Configurations/Version.xcconfig (250536 => 250537) --- branches/safari-608-branch/Source/WebKit/Configurations/Version.xcconfig 2019-10-01 00:00:06 UTC (rev 250536) +++ branches/safari-608-branch/Source/WebKit/Configurations/Version.xcconfig 2019-10-01 00:10:34 UTC (rev 250537) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-608-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig (250536 => 250537) --- branches/safari-608-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2019-10-01 00:00:06 UTC (rev 250536) +++ branches/safari-608-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2019-10-01 00:10:34 UTC (rev 250537) @@ -23,7 +23,7 @@ MAJOR_VERSION = 608; MINOR_VERSION = 3; -TINY_VERSION = 5; +TINY_VERSION = 6; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250536] trunk
Title: [250536] trunk Revision 250536 Author ysuz...@apple.com Date 2019-09-30 17:00:06 -0700 (Mon, 30 Sep 2019) Log Message [JSC] AI folds CompareEq wrongly when it sees proven Boolean and Number https://bugs.webkit.org/show_bug.cgi?id=202382 Reviewed by Saam Barati. JSTests: * stress/compare-eq-bool-number-folding.js: Added. (test): Source/_javascript_Core: If CompareEq(Untyped, Untyped) finds that it gets proven Boolean and Number types on its arguments, we fold it to constant False. But this is wrong since `false == 0` is true in JS. This patch adds leastUpperBoundOfEquivalentSpeculations, which merges Number, BigInt, and Boolean types if one of them are seen. * bytecode/SpeculatedType.cpp: (JSC::leastUpperBoundOfEquivalentSpeculations): (JSC::valuesCouldBeEqual): Modified Paths trunk/JSTests/ChangeLog trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/bytecode/SpeculatedType.cpp Added Paths trunk/JSTests/stress/compare-eq-bool-number-folding.js Diff Modified: trunk/JSTests/ChangeLog (250535 => 250536) --- trunk/JSTests/ChangeLog 2019-09-30 23:56:46 UTC (rev 250535) +++ trunk/JSTests/ChangeLog 2019-10-01 00:00:06 UTC (rev 250536) @@ -1,3 +1,14 @@ +2019-09-30 Yusuke Suzuki + +[JSC] AI folds CompareEq wrongly when it sees proven Boolean and Number +https://bugs.webkit.org/show_bug.cgi?id=202382 + + +Reviewed by Saam Barati. + +* stress/compare-eq-bool-number-folding.js: Added. +(test): + 2019-09-27 Yusuke Suzuki [JSC] Keep JSString::value(ExecState*)'s result as String instead of `const String&` Added: trunk/JSTests/stress/compare-eq-bool-number-folding.js (0 => 250536) --- trunk/JSTests/stress/compare-eq-bool-number-folding.js (rev 0) +++ trunk/JSTests/stress/compare-eq-bool-number-folding.js 2019-10-01 00:00:06 UTC (rev 250536) @@ -0,0 +1,11 @@ +//@ runDefault("--useConcurrentJIT=0", "--jitPolicyScale=0.1") + +function test() { +var [w, y] = [false, 0, null]; +if (w != y) +throw 0; +} +noInline(test); + +for (var i = 0; i < 2000; ++i) +test(); Modified: trunk/Source/_javascript_Core/ChangeLog (250535 => 250536) --- trunk/Source/_javascript_Core/ChangeLog 2019-09-30 23:56:46 UTC (rev 250535) +++ trunk/Source/_javascript_Core/ChangeLog 2019-10-01 00:00:06 UTC (rev 250536) @@ -1,3 +1,20 @@ +2019-09-30 Yusuke Suzuki + +[JSC] AI folds CompareEq wrongly when it sees proven Boolean and Number +https://bugs.webkit.org/show_bug.cgi?id=202382 + + +Reviewed by Saam Barati. + +If CompareEq(Untyped, Untyped) finds that it gets proven Boolean and Number types on its arguments, +we fold it to constant False. But this is wrong since `false == 0` is true in JS. +This patch adds leastUpperBoundOfEquivalentSpeculations, which merges Number, BigInt, and Boolean types +if one of them are seen. + +* bytecode/SpeculatedType.cpp: +(JSC::leastUpperBoundOfEquivalentSpeculations): +(JSC::valuesCouldBeEqual): + 2019-09-28 Adrian Perez de Castro [GTK][WPE] Fix non-unified build issue caused by r250440 Modified: trunk/Source/_javascript_Core/bytecode/SpeculatedType.cpp (250535 => 250536) --- trunk/Source/_javascript_Core/bytecode/SpeculatedType.cpp 2019-09-30 23:56:46 UTC (rev 250535) +++ trunk/Source/_javascript_Core/bytecode/SpeculatedType.cpp 2019-10-01 00:00:06 UTC (rev 250536) @@ -624,10 +624,21 @@ return type; } +static inline SpeculatedType leastUpperBoundOfEquivalentSpeculations(SpeculatedType type) +{ +type = leastUpperBoundOfStrictlyEquivalentSpeculations(type); + +// Boolean or BigInt can be converted to Number when performing non-strict equal. +if (type & (SpecIntAnyFormat | SpecNonIntAsDouble | SpecBoolean | SpecBigInt)) +type |= (SpecIntAnyFormat | SpecNonIntAsDouble | SpecBoolean | SpecBigInt); + +return type; +} + bool valuesCouldBeEqual(SpeculatedType a, SpeculatedType b) { -a = leastUpperBoundOfStrictlyEquivalentSpeculations(a); -b = leastUpperBoundOfStrictlyEquivalentSpeculations(b); +a = leastUpperBoundOfEquivalentSpeculations(a); +b = leastUpperBoundOfEquivalentSpeculations(b); // Anything could be equal to a string. if (a & SpecString) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250535] tags/Safari-608.3.5/
Title: [250535] tags/Safari-608.3.5/ Revision 250535 Author alanc...@apple.com Date 2019-09-30 16:56:46 -0700 (Mon, 30 Sep 2019) Log Message Tag Safari-608.3.5. Added Paths tags/Safari-608.3.5/ Diff ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250533] trunk/Source/WebInspectorUI
Title: [250533] trunk/Source/WebInspectorUI Revision 250533 Author drou...@apple.com Date 2019-09-30 16:32:41 -0700 (Mon, 30 Sep 2019) Log Message Web Inspector: Canvas: shader type header is white in dark mode https://bugs.webkit.org/show_bug.cgi?id=202253 Reviewed by Matt Baker. * UserInterface/Views/ShaderProgramContentView.css: (.content-view.shader-program > .shader > header > .shader-type): (@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header > .shader-type): Added. (@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header): Deleted. (.content-view.shader-program > .shader > header > *): Deleted. Modified Paths trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.css Diff Modified: trunk/Source/WebInspectorUI/ChangeLog (250532 => 250533) --- trunk/Source/WebInspectorUI/ChangeLog 2019-09-30 22:52:13 UTC (rev 250532) +++ trunk/Source/WebInspectorUI/ChangeLog 2019-09-30 23:32:41 UTC (rev 250533) @@ -1,3 +1,16 @@ +2019-09-30 Devin Rousso + +Web Inspector: Canvas: shader type header is white in dark mode +https://bugs.webkit.org/show_bug.cgi?id=202253 + +Reviewed by Matt Baker. + +* UserInterface/Views/ShaderProgramContentView.css: +(.content-view.shader-program > .shader > header > .shader-type): +(@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header > .shader-type): Added. +(@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header): Deleted. +(.content-view.shader-program > .shader > header > *): Deleted. + 2019-09-26 Joseph Pecoraro Web Inspector: Include LocalResourceOverrides in the Open Resource dialog Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.css (250532 => 250533) --- trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.css 2019-09-30 22:52:13 UTC (rev 250532) +++ trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.css 2019-09-30 23:32:41 UTC (rev 250533) @@ -52,17 +52,14 @@ border-left: 1px solid var(--border-color); } -.content-view.shader-program > .shader > header > * { +.content-view.shader-program > .shader > header > .shader-type { padding: 2px 4px; +background-color: hsl(0, 0%, 95%); border-bottom: 1px solid lightgrey; } -.content-view.shader-program > .shader > header > .shader-type { -background-color: hsl(0, 0%, 95%); -} - @media (prefers-color-scheme: dark) { -.content-view.shader-program > .shader > header { +.content-view.shader-program > .shader > header > .shader-type { background-color: var(--background-color); border-bottom-color: var(--text-color-quaternary); } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250532] branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/ WKWebView.mm
Title: [250532] branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm Revision 250532 Author alanc...@apple.com Date 2019-09-30 15:52:13 -0700 (Mon, 30 Sep 2019) Log Message Unreviewed build fix. rdar://problem/55825353 Modified Paths branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm Diff Modified: branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (250531 => 250532) --- branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2019-09-30 22:33:32 UTC (rev 250531) +++ branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2019-09-30 22:52:13 UTC (rev 250532) @@ -2035,13 +2035,13 @@ { if (_didDeferUpdateVisibleContentRectsForUnstableScrollView) { RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _didCommitLayerTree:] - received a commit (%llu) while deferring visible content rect updates (_dynamicViewportUpdateMode %d, _needsResetViewStateAfterCommitLoadForMainFrame %d (wants commit %llu), sizeChangedSinceLastVisibleContentRectUpdate %d, [_scrollView isZoomBouncing] %d, _currentlyAdjustingScrollViewInsetsForKeyboard %d)", -self, _page->identifier().toUInt64(), layerTreeTransaction.transactionID().toUInt64(), _dynamicViewportUpdateMode, _needsResetViewStateAfterCommitLoadForMainFrame, _firstPaintAfterCommitLoadTransactionID.toUInt64(), [_contentView sizeChangedSinceLastVisibleContentRectUpdate], [_scrollView isZoomBouncing], _currentlyAdjustingScrollViewInsetsForKeyboard); +self, _page->pageID().toUInt64(), layerTreeTransaction.transactionID().toUInt64(), _dynamicViewportUpdateMode, _needsResetViewStateAfterCommitLoadForMainFrame, _firstPaintAfterCommitLoadTransactionID.toUInt64(), [_contentView sizeChangedSinceLastVisibleContentRectUpdate], [_scrollView isZoomBouncing], _currentlyAdjustingScrollViewInsetsForKeyboard); } if (_timeOfFirstVisibleContentRectUpdateWithPendingCommit) { auto timeSinceFirstRequestWithPendingCommit = MonotonicTime::now() - *_timeOfFirstVisibleContentRectUpdateWithPendingCommit; if (timeSinceFirstRequestWithPendingCommit > delayBeforeNoCommitsLogging) -RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _didCommitLayerTree:] - finally received commit %.2fs after visible content rect update request; transactionID %llu", self, _page->identifier().toUInt64(), timeSinceFirstRequestWithPendingCommit.value(), layerTreeTransaction.transactionID().toUInt64()); +RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _didCommitLayerTree:] - finally received commit %.2fs after visible content rect update request; transactionID %llu", self, _page->pageID().toUInt64(), timeSinceFirstRequestWithPendingCommit.value(), layerTreeTransaction.transactionID().toUInt64()); _timeOfFirstVisibleContentRectUpdateWithPendingCommit = WTF::nullopt; } @@ -3143,7 +3143,7 @@ [_passwordView setFrame:self.bounds]; [_customContentView web_computedContentInsetDidChange]; _didDeferUpdateVisibleContentRectsForAnyReason = YES; -RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _updateVisibleContentRects:] - usesStandardContentView is NO, bailing", self, _page->identifier().toUInt64()); +RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _updateVisibleContentRects:] - usesStandardContentView is NO, bailing", self, _page->pageID().toUInt64()); return; } @@ -3151,13 +3151,13 @@ if (_timeOfFirstVisibleContentRectUpdateWithPendingCommit) { auto timeSinceFirstRequestWithPendingCommit = timeNow - *_timeOfFirstVisibleContentRectUpdateWithPendingCommit; if (timeSinceFirstRequestWithPendingCommit > delayBeforeNoCommitsLogging) -RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _updateVisibleContentRects:] - have not received a commit %.2fs after visible content rect update; lastTransactionID %llu", self, _page->identifier().toUInt64(), timeSinceFirstRequestWithPendingCommit.value(), _lastTransactionID.toUInt64()); +RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _updateVisibleContentRects:] - have not received a commit %.2fs after visible content rect update; lastTransactionID %llu", self, _page->pageID().toUInt64(), timeSinceFirstRequestWithPendingCommit.value(), _lastTransactionID.toUInt64()); } if (_invokingUIScrollViewDelegateCallback) { _didDeferUpdateVisibleContentRectsForUIScrollViewDelegateCallback = YES; _didDeferUpdateVisibleContentRectsForAnyReason = YES; -RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _updateVisibleContentRects:] - _invokingUIScrollViewDelegateCallback is YES, bailing", self, _page->identifier().toUInt64()); +RELEASE_LOG_IF_ALLOWED("%p (PageID=%llu) -[WKWebView _updateVisibleContentRects:] - _invokingUIScrollViewDelegateCallback is YES, bailing", self, _page->pageID().toUInt64()); return; } @@
[webkit-changes] [250531] trunk
Title: [250531] trunk
Revision 250531
Author cdu...@apple.com
Date 2019-09-30 15:33:32 -0700 (Mon, 30 Sep 2019)
Log Message
IDBTransaction / IDBObjectStore should not prevent a page from entering the back / forward cache
https://bugs.webkit.org/show_bug.cgi?id=202291
Reviewed by Geoffrey Garen.
Source/WebCore:
IDBObjectStore does not fire any events and should therefore not cause any problem while in PageCache.
IDBTransaction can only fire abort/complete/error events, all of which are being enqueued to the
DocumentEventQueue. The DocumentEventQueue subclasses SuspendableTimer which will correctly suspend
while the document is in page cache. IDBTransaction will therefore not cause events to fire (and JS
to run) while in page cache.
Test: storage/indexeddb/IDBTransaction-page-cache.html
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::canSuspendForDocumentSuspension const):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::canSuspendForDocumentSuspension const):
LayoutTests:
Add layout test coverage.
* storage/indexeddb/IDBTransaction-page-cache.html: Added.
Modified Paths
trunk/LayoutTests/ChangeLog
trunk/LayoutTests/fast/history/page-cache-indexed-opened-db-expected.txt
trunk/LayoutTests/fast/history/page-cache-indexed-opened-db.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
Added Paths
trunk/LayoutTests/storage/indexeddb/IDBTransaction-page-cache-expected.txt
trunk/LayoutTests/storage/indexeddb/IDBTransaction-page-cache.html
Diff
Modified: trunk/LayoutTests/ChangeLog (250530 => 250531)
--- trunk/LayoutTests/ChangeLog 2019-09-30 21:09:04 UTC (rev 250530)
+++ trunk/LayoutTests/ChangeLog 2019-09-30 22:33:32 UTC (rev 250531)
@@ -1,5 +1,17 @@
2019-09-30 Chris Dumez
+IDBTransaction / IDBObjectStore should not prevent a page from entering the back / forward cache
+https://bugs.webkit.org/show_bug.cgi?id=202291
+
+
+Reviewed by Geoffrey Garen.
+
+Add layout test coverage.
+
+* storage/indexeddb/IDBTransaction-page-cache.html: Added.
+
+2019-09-30 Chris Dumez
+
Pages with Web Workers cannot enter the back / forward cache
https://bugs.webkit.org/show_bug.cgi?id=202296
Modified: trunk/LayoutTests/fast/history/page-cache-indexed-opened-db-expected.txt (250530 => 250531)
--- trunk/LayoutTests/fast/history/page-cache-indexed-opened-db-expected.txt 2019-09-30 21:09:04 UTC (rev 250530)
+++ trunk/LayoutTests/fast/history/page-cache-indexed-opened-db-expected.txt 2019-09-30 22:33:32 UTC (rev 250531)
@@ -1,10 +1,12 @@
-Tests that a page with an open IndexedDB database does not go into the page cache.
+Tests that a page with an open IndexedDB database goes into the page cache.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
pageshow - not from cache
-PASS Page was not restored from page cache
+pagehide - entering cache
+pageshow - from cache
+PASS Page did enter and was restored from the page cache
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/fast/history/page-cache-indexed-opened-db.html (250530 => 250531)
--- trunk/LayoutTests/fast/history/page-cache-indexed-opened-db.html 2019-09-30 21:09:04 UTC (rev 250530)
+++ trunk/LayoutTests/fast/history/page-cache-indexed-opened-db.html 2019-09-30 22:33:32 UTC (rev 250531)
@@ -4,7 +4,7 @@