[webkit-changes] [238456] trunk

2018-11-22 Thread cdumez
Title: [238456] trunk








Revision 238456
Author cdu...@apple.com
Date 2018-11-22 20:36:38 -0800 (Thu, 22 Nov 2018)


Log Message
Regression(r238353) Load sometimes hangs when navigating back after a cross-site navigation
https://bugs.webkit.org/show_bug.cgi?id=191914

Reviewed by Ryosuke Niwa.

Source/WebKit:

When process-swapping on a cross-site server-side redirect, we end up doing a decidePolicyForNavigationResponse
policy check for the about:blank suspension load. This policy decision is ignored by the UIProcess because
SuspendedPageProxy does not handle this particular IPC message. To handle the issue, make sure the WebProcess
never sends a DecidePolicyForNavigationResponse IPC to the UIProcess for about:blank suspension loads and let
the load proceed.

The issue was already there before r238353 but it was made obvious by r238353 which caused a hang when trying
to reuse a Suspended page which is hanging while trying to suspend.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (238455 => 238456)

--- trunk/Source/WebKit/ChangeLog	2018-11-23 04:00:31 UTC (rev 238455)
+++ trunk/Source/WebKit/ChangeLog	2018-11-23 04:36:38 UTC (rev 238456)
@@ -1,3 +1,22 @@
+2018-11-22  Chris Dumez  
+
+Regression(r238353) Load sometimes hangs when navigating back after a cross-site navigation
+https://bugs.webkit.org/show_bug.cgi?id=191914
+
+Reviewed by Ryosuke Niwa.
+
+When process-swapping on a cross-site server-side redirect, we end up doing a decidePolicyForNavigationResponse
+policy check for the about:blank suspension load. This policy decision is ignored by the UIProcess because
+SuspendedPageProxy does not handle this particular IPC message. To handle the issue, make sure the WebProcess
+never sends a DecidePolicyForNavigationResponse IPC to the UIProcess for about:blank suspension loads and let
+the load proceed.
+
+The issue was already there before r238353 but it was made obvious by r238353 which caused a hang when trying
+to reuse a Suspended page which is hanging while trying to suspend.
+
+* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
+
 2018-11-22  Wenson Hsieh  
 
 [Cocoa] clang emits a warning when building WebKit after r238293


Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (238455 => 238456)

--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp	2018-11-23 04:00:31 UTC (rev 238455)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp	2018-11-23 04:36:38 UTC (rev 238456)
@@ -738,6 +738,12 @@
 return;
 }
 
+// For suspension loads to about:blank, no need to ask the SuspendedPageProxy.
+if (request.url() == blankURL() && webPage->isSuspended()) {
+function(PolicyAction::Use);
+return;
+}
+
 RefPtr userData;
 
 // Notify the bundle client.


Modified: trunk/Tools/ChangeLog (238455 => 238456)

--- trunk/Tools/ChangeLog	2018-11-23 04:00:31 UTC (rev 238455)
+++ trunk/Tools/ChangeLog	2018-11-23 04:36:38 UTC (rev 238456)
@@ -1,3 +1,14 @@
+2018-11-22  Chris Dumez  
+
+Regression(r238353) Load sometimes hangs when navigating back after a cross-site navigation
+https://bugs.webkit.org/show_bug.cgi?id=191914
+
+Reviewed by Ryosuke Niwa.
+
+Add API test coverage.
+
+* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
+
 2018-11-22  Zalan Bujtas  
 
 [LFC][IFC] Offset formatting context root runs with horizontal margins.


Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm (238455 => 238456)

--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm	2018-11-23 04:00:31 UTC (rev 238455)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm	2018-11-23 04:36:38 UTC (rev 238456)
@@ -1319,6 +1319,15 @@
 EXPECT_FALSE(serverRedirected);
 EXPECT_EQ(3, numberOfDecidePolicyCalls);
 EXPECT_EQ(2u, seenPIDs.size());
+
+EXPECT_WK_STREQ(@"pson://www.apple.com/main.html", [[webView URL] absoluteString]);
+
+[webView goBack];
+
+TestWebKitAPI::Util::run();
+done = false;
+
+EXPECT_WK_STREQ(@"pson://www.webkit.org/main1.html", [[webView URL] absoluteString]);
 }
 
 enum class ShouldEnablePSON { No, Yes };






___
webkit-changes mailing list
webkit-changes@lists.webkit.org

[webkit-changes] [238455] trunk/Source/WebKit

2018-11-22 Thread wenson_hsieh
Title: [238455] trunk/Source/WebKit








Revision 238455
Author wenson_hs...@apple.com
Date 2018-11-22 20:00:31 -0800 (Thu, 22 Nov 2018)


Log Message
[Cocoa] clang emits a warning when building WebKit after r238293
https://bugs.webkit.org/show_bug.cgi?id=191917

Reviewed by Dan Bernstein.

Move the implementations of -setSafeBrowsingEnabled: and -isSafeBrowsingEnabled to the main implementation of
WKPreferences to fix the warning.

* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences setSafeBrowsingEnabled:]):
(-[WKPreferences isSafeBrowsingEnabled]):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (238454 => 238455)

--- trunk/Source/WebKit/ChangeLog	2018-11-23 03:10:34 UTC (rev 238454)
+++ trunk/Source/WebKit/ChangeLog	2018-11-23 04:00:31 UTC (rev 238455)
@@ -1,5 +1,19 @@
 2018-11-22  Wenson Hsieh  
 
+[Cocoa] clang emits a warning when building WebKit after r238293
+https://bugs.webkit.org/show_bug.cgi?id=191917
+
+Reviewed by Dan Bernstein.
+
+Move the implementations of -setSafeBrowsingEnabled: and -isSafeBrowsingEnabled to the main implementation of
+WKPreferences to fix the warning.
+
+* UIProcess/API/Cocoa/WKPreferences.mm:
+(-[WKPreferences setSafeBrowsingEnabled:]):
+(-[WKPreferences isSafeBrowsingEnabled]):
+
+2018-11-22  Wenson Hsieh  
+
 Address post-review feedback after r238438
 https://bugs.webkit.org/show_bug.cgi?id=191913
 


Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (238454 => 238455)

--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm	2018-11-23 03:10:34 UTC (rev 238454)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm	2018-11-23 04:00:31 UTC (rev 238455)
@@ -140,6 +140,16 @@
 _preferences->setStorageAccessPromptsEnabled(enabled);
 }
 
+- (void)setSafeBrowsingEnabled:(BOOL)enabled
+{
+_preferences->setSafeBrowsingEnabled(enabled);
+}
+
+- (BOOL)isSafeBrowsingEnabled
+{
+return _preferences->safeBrowsingEnabled();
+}
+
 #pragma mark OS X-specific methods
 
 #if PLATFORM(MAC)
@@ -697,16 +707,6 @@
 _preferences->setICECandidateFilteringEnabled(enabled);
 }
 
-- (void)setSafeBrowsingEnabled:(BOOL)enabled
-{
-_preferences->setSafeBrowsingEnabled(enabled);
-}
-
-- (BOOL)isSafeBrowsingEnabled
-{
-return _preferences->safeBrowsingEnabled();
-}
-
 - (BOOL)_webRTCLegacyAPIEnabled
 {
 return NO;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [238454] trunk/Source

2018-11-22 Thread wenson_hsieh
Title: [238454] trunk/Source








Revision 238454
Author wenson_hs...@apple.com
Date 2018-11-22 19:10:34 -0800 (Thu, 22 Nov 2018)


Log Message
Address post-review feedback after r238438
https://bugs.webkit.org/show_bug.cgi?id=191913

Reviewed by Ryosuke Niwa.

Source/WebCore:

Replace `bool` arguments to `FrameSelection::setSelectedRange`, `Editor::replaceSelectionWithText`, and
`Editor::replaceSelectionWithFragment` with `enum class`es instead. In particular, introduce the following:

FrameSelection::ShouldCloseTyping { No, Yes }
Editor::SelectReplacement { No, Yes }
Editor::SmartReplace { No, Yes }
Editor::MatchStyle { No, Yes }

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText):
* editing/Editor.cpp:
(WebCore::Editor::handleTextEvent):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::replaceSelectionWithText):
(WebCore::Editor::setComposition):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::changeBackToReplacedString):
(WebCore::Editor::transpose):
(WebCore::Editor::insertAttachment):

At various call sites, replace boolean arguments with named enums.

* editing/Editor.h:
* editing/EditorCommand.cpp:
(WebCore::expandSelectionToGranularity):
(WebCore::executeDeleteToMark):
(WebCore::executeSelectToMark):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectedRange):
* editing/FrameSelection.h:
* page/Page.cpp:
(WebCore::replaceRanges):

Avoid a bit of ref-count churn, and adjust a few functions to take `const Vector&`s instead of `Vector&&`s.

(WebCore::Page::replaceRangesWithText):
(WebCore::Page::replaceSelectionWithText):
* page/Page.h:

Source/WebKit:

Replace boolean arguments to setSelectedRange, replaceSelectionWithText and replaceSelectionWithFragment with
enum flags, and tweak a couple of functions to take `const Vector&` instead of `Vector&&`.

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageReplaceStringMatches):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::replaceMatches):
* WebProcess/WebPage/FindController.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::replaceStringMatchesFromInjectedBundle):
(WebKit::WebPage::replaceMatches):
(WebKit::WebPage::replaceSelectionWithText):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::selectWithTwoTouches):
(WebKit::WebPage::extendSelection):
(WebKit::WebPage::selectWordBackward):
(WebKit::WebPage::moveSelectionByOffset):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::selectPositionAtBoundaryWithDirection):
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPage::updateSelectionWithExtentPoint):
(WebKit::WebPage::replaceSelectedText):
(WebKit::WebPage::replaceDictatedText):
(WebKit::WebPage::syncApplyAutocorrection):

Source/WebKitLegacy/mac:

* WebView/WebFrame.mm:
(-[WebFrame setSelectedDOMRange:affinity:closeTyping:]):
(-[WebFrame _replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]):
* WebView/WebView.mm:
(-[WebView setSelectedDOMRange:affinity:]):

Source/WebKitLegacy/win:

* AccessibleTextImpl.cpp:
(AccessibleText::replaceText):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/accessibility/AccessibilityObject.cpp
trunk/Source/WebCore/editing/Editor.cpp
trunk/Source/WebCore/editing/Editor.h
trunk/Source/WebCore/editing/EditorCommand.cpp
trunk/Source/WebCore/editing/FrameSelection.cpp
trunk/Source/WebCore/editing/FrameSelection.h
trunk/Source/WebCore/page/Page.cpp
trunk/Source/WebCore/page/Page.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
trunk/Source/WebKit/WebProcess/WebPage/FindController.cpp
trunk/Source/WebKit/WebProcess/WebPage/FindController.h
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
trunk/Source/WebKitLegacy/mac/ChangeLog
trunk/Source/WebKitLegacy/mac/WebView/WebFrame.mm
trunk/Source/WebKitLegacy/mac/WebView/WebView.mm
trunk/Source/WebKitLegacy/win/AccessibleTextImpl.cpp
trunk/Source/WebKitLegacy/win/ChangeLog




Diff

Modified: trunk/Source/WebCore/ChangeLog (238453 => 238454)

--- trunk/Source/WebCore/ChangeLog	2018-11-23 01:33:40 UTC (rev 238453)
+++ trunk/Source/WebCore/ChangeLog	2018-11-23 03:10:34 UTC (rev 238454)
@@ -1,3 +1,49 @@
+2018-11-22  Wenson Hsieh  
+
+Address post-review feedback after r238438
+https://bugs.webkit.org/show_bug.cgi?id=191913
+
+Reviewed by Ryosuke Niwa.
+
+Replace `bool` arguments to `FrameSelection::setSelectedRange`, `Editor::replaceSelectionWithText`, and
+`Editor::replaceSelectionWithFragment` with `enum class`es instead. In particular, introduce the 

[webkit-changes] [238453] trunk/Source/JavaScriptCore

2018-11-22 Thread mark . lam
Title: [238453] trunk/Source/_javascript_Core








Revision 238453
Author mark@apple.com
Date 2018-11-22 17:33:40 -0800 (Thu, 22 Nov 2018)


Log Message
Make the jsc shell's dumpException() more robust against long exception strings.
https://bugs.webkit.org/show_bug.cgi?id=191910


Reviewed by Michael Saboff.

This only affects the dumping of the exception string in the jsc shell due to
unhandled exceptions or exceptions at shell boot time before any JS code is
running.

* jsc.cpp:
(dumpException):

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/jsc.cpp




Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (238452 => 238453)

--- trunk/Source/_javascript_Core/ChangeLog	2018-11-22 23:47:33 UTC (rev 238452)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-11-23 01:33:40 UTC (rev 238453)
@@ -1,3 +1,18 @@
+2018-11-22  Mark Lam  
+
+Make the jsc shell's dumpException() more robust against long exception strings.
+https://bugs.webkit.org/show_bug.cgi?id=191910
+
+
+Reviewed by Michael Saboff.
+
+This only affects the dumping of the exception string in the jsc shell due to
+unhandled exceptions or exceptions at shell boot time before any JS code is
+running.
+
+* jsc.cpp:
+(dumpException):
+
 2018-11-21  Yusuke Suzuki  
 
 [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG


Modified: trunk/Source/_javascript_Core/jsc.cpp (238452 => 238453)

--- trunk/Source/_javascript_Core/jsc.cpp	2018-11-22 23:47:33 UTC (rev 238452)
+++ trunk/Source/_javascript_Core/jsc.cpp	2018-11-23 01:33:40 UTC (rev 238453)
@@ -2302,7 +2302,12 @@
 } \
 } while (false)
 
-printf("Exception: %s\n", exception.toWTFString(globalObject->globalExec()).utf8().data());
+auto exceptionString = exception.toWTFString(globalObject->globalExec());
+Expected expectedCString = exceptionString.tryGetUtf8();
+if (expectedCString)
+printf("Exception: %s\n", expectedCString.value().data());
+else
+printf("Exception: \n");
 
 Identifier nameID = Identifier::fromString(globalObject->globalExec(), "name");
 CHECK_EXCEPTION();






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [238452] trunk/Source/WebCore

2018-11-22 Thread rniwa
Title: [238452] trunk/Source/WebCore








Revision 238452
Author rn...@webkit.org
Date 2018-11-22 15:47:33 -0800 (Thu, 22 Nov 2018)


Log Message
Modernize SVGURIReference::targetElementFromIRIString
https://bugs.webkit.org/show_bug.cgi?id=191898

Reviewed by Daniel Bates.

Made targetElementFromIRIString return an element and the fragment identifier,
and merged urlFromIRIStringWithFragmentIdentifier into it.

Also replaced the code computing the full URL using the base URL after removing
the fragment identifier and rejoining it later with a single call to completeURL.

No new tests since there should be no observable behavior change.

* accessibility/AccessibilitySVGElement.cpp:
(WebCore::AccessibilitySVGElement::targetForUseElement const):
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::updateCursorElement):
* rendering/svg/RenderSVGTextPath.cpp:
(WebCore::RenderSVGTextPath::layoutPath const):
* svg/SVGAltGlyphElement.cpp:
(WebCore::SVGAltGlyphElement::hasValidGlyphElements const):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::buildPendingResource):
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::hasValidGlyphElement const):
* svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::collectGradientAttributes):
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::buildPendingResource):
(WebCore::SVGMPathElement::pathElement):
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::collectGradientAttributes):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::detachTarget):
(WebCore::SVGTRefElement::buildPendingResource):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::buildPendingResource):
* svg/SVGURIReference.cpp:
(WebCore::SVGURIReference::targetElementFromIRIString):
(WebCore::urlFromIRIStringWithFragmentIdentifier): Deleted.
* svg/SVGURIReference.h:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::findTarget const):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::buildPendingResource):
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::referencedRenderer const):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/accessibility/AccessibilitySVGElement.cpp
trunk/Source/WebCore/css/CSSCursorImageValue.cpp
trunk/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp
trunk/Source/WebCore/svg/SVGAltGlyphElement.cpp
trunk/Source/WebCore/svg/SVGFEImageElement.cpp
trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp
trunk/Source/WebCore/svg/SVGLinearGradientElement.cpp
trunk/Source/WebCore/svg/SVGMPathElement.cpp
trunk/Source/WebCore/svg/SVGRadialGradientElement.cpp
trunk/Source/WebCore/svg/SVGTRefElement.cpp
trunk/Source/WebCore/svg/SVGTextPathElement.cpp
trunk/Source/WebCore/svg/SVGURIReference.cpp
trunk/Source/WebCore/svg/SVGURIReference.h
trunk/Source/WebCore/svg/SVGUseElement.cpp
trunk/Source/WebCore/svg/animation/SVGSMILElement.cpp
trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (238451 => 238452)

--- trunk/Source/WebCore/ChangeLog	2018-11-22 21:17:41 UTC (rev 238451)
+++ trunk/Source/WebCore/ChangeLog	2018-11-22 23:47:33 UTC (rev 238452)
@@ -1,3 +1,53 @@
+2018-11-21  Ryosuke Niwa  
+
+Modernize SVGURIReference::targetElementFromIRIString
+https://bugs.webkit.org/show_bug.cgi?id=191898
+
+Reviewed by Daniel Bates.
+
+Made targetElementFromIRIString return an element and the fragment identifier,
+and merged urlFromIRIStringWithFragmentIdentifier into it.
+
+Also replaced the code computing the full URL using the base URL after removing
+the fragment identifier and rejoining it later with a single call to completeURL.
+
+No new tests since there should be no observable behavior change.
+
+* accessibility/AccessibilitySVGElement.cpp:
+(WebCore::AccessibilitySVGElement::targetForUseElement const):
+* css/CSSCursorImageValue.cpp:
+(WebCore::CSSCursorImageValue::updateCursorElement):
+* rendering/svg/RenderSVGTextPath.cpp:
+(WebCore::RenderSVGTextPath::layoutPath const):
+* svg/SVGAltGlyphElement.cpp:
+(WebCore::SVGAltGlyphElement::hasValidGlyphElements const):
+* svg/SVGFEImageElement.cpp:
+(WebCore::SVGFEImageElement::buildPendingResource):
+* svg/SVGGlyphRefElement.cpp:
+(WebCore::SVGGlyphRefElement::hasValidGlyphElement const):
+* svg/SVGLinearGradientElement.cpp:
+(WebCore::SVGLinearGradientElement::collectGradientAttributes):
+* svg/SVGMPathElement.cpp:
+(WebCore::SVGMPathElement::buildPendingResource):
+(WebCore::SVGMPathElement::pathElement):
+* svg/SVGRadialGradientElement.cpp:
+(WebCore::SVGRadialGradientElement::collectGradientAttributes):
+* svg/SVGTRefElement.cpp:
+(WebCore::SVGTRefElement::detachTarget):
+(WebCore::SVGTRefElement::buildPendingResource):
+* 

[webkit-changes] [238451] trunk

2018-11-22 Thread dino
Title: [238451] trunk








Revision 238451
Author d...@apple.com
Date 2018-11-22 13:17:41 -0800 (Thu, 22 Nov 2018)


Log Message
Implement WebGPUQueue and device.getQueue()
https://bugs.webkit.org/show_bug.cgi?id=191911


Reviewed by Antoine Quint.

Source/WebCore:

Implement WebGPUDevice::getQueue(), which creates a WebGPUQueue
instance if necessary. Also link WebGPUQueue to the existing
GPUQueue object, and expose the label IDL property.

This patch is based on some work from Justin Fan.

Test: webgpu/queue-creation.html

* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
New files.

* Modules/webgpu/WebGPUCommandBuffer.h:
(WebCore::WebGPUCommandBuffer::commandBuffer const):
Expose a GPUCommandBuffer getter, used when submitting (even though
the actual GPU submission isn't implemented yet).

* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::getQueue):
* Modules/webgpu/WebGPUDevice.h:
* Modules/webgpu/WebGPUDevice.idl:
Implement getQueue().

* Modules/webgpu/WebGPUQueue.cpp:
(WebCore::WebGPUQueue::create):
(WebCore::WebGPUQueue::WebGPUQueue):
(WebCore::WebGPUQueue::submit):
* Modules/webgpu/WebGPUQueue.h:
(WebCore::WebGPUQueue::label const):
(WebCore::WebGPUQueue::setLabel):
* Modules/webgpu/WebGPUQueue.idl:
New class. Mostly sends stuff onto GPUQueue.

* bindings/js/WebCoreBuiltinNames.h:
Add WebGPUQueue.

* platform/graphics/gpu/GPUQueue.h:
* platform/graphics/gpu/cocoa/GPUQueueMetal.mm:
(WebCore::GPUQueue::create):
(WebCore::GPUQueue::submit):
(WebCore::GPUQueue::label const):
(WebCore::GPUQueue::setLabel const):
"label" getter/setter that uses
the underlying MTLCommandQueue label property, but prefixes
it with a WebKit identifier, so it can be correctly
identified in system crash logs as coming from WebGPU.

LayoutTests:

WPT-style test for queue creation.

* webgpu/queue-creation-expected.txt: Added.
* webgpu/queue-creation.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/Modules/webgpu/WebGPUCommandBuffer.h
trunk/Source/WebCore/Modules/webgpu/WebGPUDevice.cpp
trunk/Source/WebCore/Modules/webgpu/WebGPUDevice.h
trunk/Source/WebCore/Modules/webgpu/WebGPUDevice.idl
trunk/Source/WebCore/Sources.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h
trunk/Source/WebCore/platform/graphics/gpu/GPUQueue.h
trunk/Source/WebCore/platform/graphics/gpu/cocoa/GPUQueueMetal.mm


Added Paths

trunk/LayoutTests/webgpu/queue-creation-expected.txt
trunk/LayoutTests/webgpu/queue-creation.html
trunk/Source/WebCore/Modules/webgpu/WebGPUQueue.cpp
trunk/Source/WebCore/Modules/webgpu/WebGPUQueue.h
trunk/Source/WebCore/Modules/webgpu/WebGPUQueue.idl




Diff

Modified: trunk/LayoutTests/ChangeLog (238450 => 238451)

--- trunk/LayoutTests/ChangeLog	2018-11-22 20:32:52 UTC (rev 238450)
+++ trunk/LayoutTests/ChangeLog	2018-11-22 21:17:41 UTC (rev 238451)
@@ -1,3 +1,16 @@
+2018-11-22  Dean Jackson  
+
+Implement WebGPUQueue and device.getQueue()
+https://bugs.webkit.org/show_bug.cgi?id=191911
+
+
+Reviewed by Antoine Quint.
+
+WPT-style test for queue creation.
+
+* webgpu/queue-creation-expected.txt: Added.
+* webgpu/queue-creation.html: Added.
+
 2018-11-22  Frederic Wang  
 
 Improve fast/scrolling/scrolling-tree-includes-frame.html


Added: trunk/LayoutTests/webgpu/queue-creation-expected.txt (0 => 238451)

--- trunk/LayoutTests/webgpu/queue-creation-expected.txt	(rev 0)
+++ trunk/LayoutTests/webgpu/queue-creation-expected.txt	2018-11-22 21:17:41 UTC (rev 238451)
@@ -0,0 +1,3 @@
+
+PASS getQueue() on WebGPUDevice 
+
Property changes on: trunk/LayoutTests/webgpu/queue-creation-expected.txt
___


Added: svn:eol-style
+native
\ No newline at end of property

Added: svn:keywords
+Date Revision
\ No newline at end of property

Added: svn:mime-type
+text/plain
\ No newline at end of property

Added: trunk/LayoutTests/webgpu/queue-creation.html (0 => 238451)

--- trunk/LayoutTests/webgpu/queue-creation.html	(rev 0)
+++ trunk/LayoutTests/webgpu/queue-creation.html	2018-11-22 21:17:41 UTC (rev 238451)
@@ -0,0 +1,31 @@
+
+
+Get the WebGPUDevice and ask for the WebGPUQueue
+
+
+
+'use strict';
+
+promise_test(async t => {
+assert_not_equals(window.webgpu, undefined, "window.webgpu exists");
+
+const swapChain = document.createElement("canvas").getContext("webgpu");
+assert_true(swapChain instanceof WebGPUSwapChain, "getContext returned a WebGPUSwapChain.");
+
+const adapter = await window.webgpu.requestAdapter({});
+assert_true(adapter instanceof WebGPUAdapter, "requestAdapter returned a WebGPUAdapter.");
+
+const device = adapter.createDevice();
+assert_true(device 

[webkit-changes] [238450] trunk/LayoutTests

2018-11-22 Thread commit-queue
Title: [238450] trunk/LayoutTests








Revision 238450
Author commit-qu...@webkit.org
Date 2018-11-22 12:32:52 -0800 (Thu, 22 Nov 2018)


Log Message
Improve fast/scrolling/scrolling-tree-includes-frame.html
https://bugs.webkit.org/show_bug.cgi?id=191912

These are small improvements to scrolling-tree-includes-frame.html:
- Run doTest() after the iframe is loaded and use waitUntilDone/notifyDone for more reliable timing.
- Use iframe@srcdoc instead of iframe@src and put the content of the iframe document in its own line.
- Move the iframe style in a separate  tag and ensure the iframe is really positioned at (0,0)
with no extra margin/padding/border.
- Remove unnecessary id="frame"
The test expectation is not changed.

Patch by Frederic Wang  on 2018-11-22
Reviewed by Antonio Gomes.

* fast/scrolling/scrolling-tree-includes-frame.html:

Modified Paths