[webkit-changes] [250545] branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/ WKWebView.mm

2019-09-30 Thread alancoon
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

2019-09-30 Thread alancoon
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

2019-09-30 Thread alancoon
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

2019-09-30 Thread drousso
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

2019-09-30 Thread tzagallo
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

2019-09-30 Thread cdumez
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

2019-09-30 Thread ysuzuki
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

2019-09-30 Thread sbarati
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

2019-09-30 Thread alancoon
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/

2019-09-30 Thread alancoon
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

2019-09-30 Thread alancoon
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

2019-09-30 Thread ysuzuki
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/

2019-09-30 Thread alancoon
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

2019-09-30 Thread drousso
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

2019-09-30 Thread alancoon
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

2019-09-30 Thread cdumez
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 @@