WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
184367
GraphicsLayerCA::createPlatformCALayer always disables extended color in its backing store
https://bugs.webkit.org/show_bug.cgi?id=184367
Summary
GraphicsLayerCA::createPlatformCALayer always disables extended color in its ...
Brent Fulgham
Reported
2018-04-06 14:21:33 PDT
While working on
Bug 184364
, I noticed that this callstack, which leads me to believe that improper backing store is being created: #0 0x00000002d0b42bb7 in WebCore::screenSupportsExtendedColor(WebCore::Widget*) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/platform/mac/PlatformScreenMac.mm:231 #1 0x00000002d2afc300 in WebCore::GraphicsLayerCA::createPlatformCALayer(WebCore::PlatformCALayer::LayerType, WebCore::PlatformCALayerClient*) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:370 #2 0x00000002d2afce1c in WebCore::GraphicsLayerCA::initialize(WebCore::GraphicsLayer::Type) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:426 #3 0x00000002d2afc132 in WebCore::GraphicsLayer::create(WebCore::GraphicsLayerFactory*, WebCore::GraphicsLayerClient&, WebCore::GraphicsLayer::Type) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:350 #4 0x00000002d2f818cb in WebCore::RenderLayerCompositor::ensureRootLayer() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/rendering/RenderLayerCompositor.cpp:3260 #5 0x00000002d2f817e3 in WebCore::RenderLayerCompositor::enableCompositingMode(bool) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/rendering/RenderLayerCompositor.cpp:292 #6 0x00000002d2f46ee8 in WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/rendering/RenderLayerCompositor.cpp:658 #7 0x00000002d2f845f9 in WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/rendering/RenderLayerCompositor.cpp:382 #8 0x00000002d27b8334 in WebCore::FrameView::updateCompositingLayersAfterStyleChange() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/page/FrameView.cpp:806 #9 0x00000002d1e0d769 in WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/dom/Document.cpp:1871 #10 0x00000002d1e114ae in WebCore::Document::createRenderTree() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/dom/Document.cpp:2232 #11 0x00000002d1e11665 in WebCore::Document::didBecomeCurrentDocumentInFrame() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/dom/Document.cpp:2243 #12 0x00000002d2799d6f in WebCore::Frame::setDocument(WTF::RefPtr<WebCore::Document, WTF::DumbPtrTraits<WebCore::Document> >&&) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/page/Frame.cpp:303 #13 0x00000002d25e1dcd in WebCore::DocumentWriter::begin(WebCore::URL const&, bool, WebCore::Document*) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/loader/DocumentWriter.cpp:173 #14 0x00000002d25a591e in WebCore::DocumentLoader::commitData(char const*, unsigned long) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/loader/DocumentLoader.cpp:978 #15 0x00000002d25a53a5 in WebCore::DocumentLoader::finishedLoading() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/loader/DocumentLoader.cpp:426 #16 0x00000002d25af1e9 in WebCore::DocumentLoader::maybeLoadEmpty() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/loader/DocumentLoader.cpp:1645 #17 0x00000002d25af35e in WebCore::DocumentLoader::startLoadingMainResource() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/loader/DocumentLoader.cpp:1657 #18 0x00000002d25eed7c in WebCore::FrameLoader::init() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/loader/FrameLoader.cpp:309 #19 0x00000002d2798ef4 in WebCore::Frame::init() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebCore/page/Frame.cpp:202 #20 0x00000001017320d4 in WebKit::WebFrame::createWithCoreMainFrame(WebKit::WebPage*, WebCore::Frame*) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/WebProcess/WebPage/WebFrame.cpp:119 #21 0x000000010185812a in WebKit::WebPage::WebPage(unsigned long long, WebKit::WebPageCreationParameters&&) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/WebProcess/WebPage/WebPage.cpp:455 #22 0x0000000101854de5 in WebKit::WebPage::WebPage(unsigned long long, WebKit::WebPageCreationParameters&&) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/WebProcess/WebPage/WebPage.cpp:384 #23 0x0000000101854cc4 in WebKit::WebPage::create(unsigned long long, WebKit::WebPageCreationParameters&&) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/WebProcess/WebPage/WebPage.cpp:325 #24 0x0000000101abcc66 in WebKit::WebProcess::createWebPage(unsigned long long, WebKit::WebPageCreationParameters&&) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/WebProcess/WebProcess.cpp:600 #25 0x0000000101b14f30 in void IPC::callMemberFunctionImpl<WebKit::WebProcess, void (WebKit::WebProcess::*)(unsigned long long, WebKit::WebPageCreationParameters&&), std::__1::tuple<unsigned long long, WebKit::WebPageCreationParameters>, 0ul, 1ul>(WebKit::WebProcess*, void (WebKit::WebProcess::*)(unsigned long long, WebKit::WebPageCreationParameters&&), std::__1::tuple<unsigned long long, WebKit::WebPageCreationParameters>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:40 #26 0x0000000101b14c90 in void IPC::callMemberFunction<WebKit::WebProcess, void (WebKit::WebProcess::*)(unsigned long long, WebKit::WebPageCreationParameters&&), std::__1::tuple<unsigned long long, WebKit::WebPageCreationParameters>, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<unsigned long long, WebKit::WebPageCreationParameters>&&, WebKit::WebProcess*, void (WebKit::WebProcess::*)(unsigned long long, WebKit::WebPageCreationParameters&&)) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:46 #27 0x0000000101b0ee85 in void IPC::handleMessage<Messages::WebProcess::CreateWebPage, WebKit::WebProcess, void (WebKit::WebProcess::*)(unsigned long long, WebKit::WebPageCreationParameters&&)>(IPC::Decoder&, WebKit::WebProcess*, void (WebKit::WebProcess::*)(unsigned long long, WebKit::WebPageCreationParameters&&)) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:126 #28 0x0000000101b0cbad in WebKit::WebProcess::didReceiveWebProcessMessage(IPC::Connection&, IPC::Decoder&) at /Users/bfulgham/Projects/WebKit/OpenSource/WebKitBuild/Debug/DerivedSources/WebKit2/WebProcessMessageReceiver.cpp:74 #29 0x0000000101abdb2b in WebKit::WebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/WebProcess/WebProcess.cpp:665 #30 0x0000000100f23163 in IPC::Connection::dispatchMessage(IPC::Decoder&) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/Platform/IPC/Connection.cpp:906 #31 0x0000000100f18718 in IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/Platform/IPC/Connection.cpp:933 #32 0x0000000100f2376a in IPC::Connection::dispatchOneMessage() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/Platform/IPC/Connection.cpp:964 #33 0x0000000100f3ba2d in IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WebKit/Platform/IPC/Connection.cpp:900 #34 0x0000000100f3b989 in WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call() at /Users/bfulgham/Projects/WebKit/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/Function.h:101 #35 0x00000002df94cbfb in WTF::Function<void ()>::operator()() const at /Users/bfulgham/Projects/WebKit/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/Function.h:56 #36 0x00000002df99e99d in WTF::RunLoop::performWork() at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WTF/wtf/RunLoop.cpp:123 #37 0x00000002df99f1b4 in WTF::RunLoop::performWork(void*) at /Users/bfulgham/Projects/WebKit/OpenSource/Source/WTF/wtf/cf/RunLoopCF.cpp:38 While the Media Query is done properly, it looks like the creation of the main view backing store is always done without extended color support on macOS. The following locations will create non-extended backing stores: GraphicsLayerCA::createPlatformCALayer() GraphicsLayerCARemote::createPlatformCALayer LegacyTileGridTile::LegacyTileGridTile WKWebView _takeViewSnapshot
Attachments
Patch
(1.58 KB, patch)
2018-04-10 09:15 PDT
,
Brent Fulgham
simon.fraser
: review+
bfulgham
: commit-queue+
Details
Formatted Diff
Diff
Archive of layout-test-results from ews206 for win-future
(12.61 MB, application/zip)
2018-04-11 03:12 PDT
,
EWS Watchlist
no flags
Details
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2018-04-06 14:22:11 PDT
<
rdar://problem/39249074
>
Simon Fraser (smfr)
Comment 2
2018-04-09 06:50:23 PDT
Are you saying that screenSupportsExtendedColor() always returns false here?
Brent Fulgham
Comment 3
2018-04-09 11:36:13 PDT
(In reply to Simon Fraser (smfr) from
comment #2
)
> Are you saying that screenSupportsExtendedColor() always returns false here?
Yes. I think all instances of ‘GraphicsLayerCA::initialize result in a backing store that lacks extended color support. I talked with Dino about this on Friday, and he thinks it is unlikely to create visible problems, it that the backing store is technically wrong in these devices.
Brent Fulgham
Comment 4
2018-04-10 09:15:09 PDT
Created
attachment 337610
[details]
Patch
EWS Watchlist
Comment 5
2018-04-11 03:12:28 PDT
Comment on
attachment 337610
[details]
Patch
Attachment 337610
[details]
did not pass win-ews (win): Output:
http://webkit-queues.webkit.org/results/7281146
New failing tests: http/tests/security/canvas-remote-read-remote-video-localhost.html
EWS Watchlist
Comment 6
2018-04-11 03:12:40 PDT
Created
attachment 337689
[details]
Archive of layout-test-results from ews206 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews206 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Simon Fraser (smfr)
Comment 7
2018-04-11 03:21:38 PDT
Comment on
attachment 337610
[details]
Patch I wish we could test this.
Brent Fulgham
Comment 8
2018-04-11 12:52:55 PDT
Comment on
attachment 337689
[details]
Archive of layout-test-results from ews206 for win-future There is no way a change in a Mac-specific file would cause these Windows failures.
Brent Fulgham
Comment 9
2018-04-11 12:52:58 PDT
Committed
r230542
: <
https://trac.webkit.org/changeset/230542
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug