mash: Check failure in SkBitmap type converter for extension app window |
||||||||
Issue descriptionRepro (after my VPN delegate patch lands): * Install "Pulse Secure" app from Chrome web store * Click on system tray > VPN > Pulse Secure It tries to open an app window and hits this check failure: [2396:2396:1118/111736:FATAL:property_type_converters.cc(163)] Check failed: false. #0 0x7fed9fe4bcde base::debug::StackTrace::StackTrace() #1 0x7fed9fe6d8ba logging::LogMessage::~LogMessage() #2 0x7fed99d53e24 mojo::TypeConverter<>::Convert() #3 0x7fed99d0d9b9 views::NativeWidgetMus::SetWindowIcons() #4 0x7fed9ad556d9 views::Widget::UpdateWindowIcon() #5 0x7feda0c292f1 extensions::AppWindow::UpdateAppIcon() #6 0x7feda0c29f67 extensions::AppWindow::OnExtensionIconImageChanged() #7 0x7feda0ad67c3 extensions::IconImage::OnImageLoaded() #8 0x7feda0af2da4 extensions::ImageLoader::ReplyBack() #9 0x7fed9feda467 base::(anonymous namespace)::PostTaskAndReplyRelay::RunReplyAndSelfDestruct() #10 0x7fed9fe4c7fe base::debug::TaskAnnotator::RunTask() #11 0x7fed9fe79eed base::MessageLoop::RunTask() #12 0x7fed9fe7a258 base::MessageLoop::DeferOrRunPendingTask() #13 0x7fed9fe7a66b base::MessageLoop::DoWork() #14 0x7fed9fe7cab9 base::MessagePumpLibevent::Run() #15 0x7fed9fe79bf9 base::MessageLoop::RunHandler() #16 0x7fed9fea8150 base::RunLoop::Run() #17 0x7feda126f9c9 ChromeBrowserMainParts::MainMessageLoopRun() #18 0x7fed9d81e3e9 content::BrowserMainLoop::RunMainMessageLoopParts() #19 0x7fed9d820ef0 content::BrowserMainRunnerImpl::Run() #20 0x7fed9d819d9e content::BrowserMain() #21 0x7fed9df521f3 content::ContentMainRunnerImpl::Run() #22 0x7fed9df50c70 content::ContentMain() #23 0x7feda0a19993 ChromeMain #24 0x7fed971ecf45 __libc_start_main #25 0x7feda0a19831 <unknown> The issue is that only RGBA 8888 bitmaps with premultiplied alpha are supported and apparently this icon isn't one of those.
,
Nov 18 2016
You won't be able to test this specific use case (VPNs) in mash until I land https://codereview.chromium.org/2510083006/ and a follow-up CL. But there should be a way to open other app windows.
,
Nov 18 2016
I'll post an example app with a non-RGBA8888 icon once I have a build that doesn't crash. Yuzhu pointed me at this example for using mojo struct serialization code (thanks!): https://codesearch.chromium.org/chromium/src/cc/ipc/cc_serialization_perftest.cc?l=123
,
Nov 19 2016
Hmm, I crash when navigating to about:extensions to try loading a test app: Received signal 11 <unknown> 000000000000 #0 0x7f3bb43ede8e base::debug::StackTrace::StackTrace() #1 0x7f3bb43ed9cf base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x7f3bb480a330 <unknown> #3 0x7f3b90cb1a4f <unknown> #4 0x7f3b90cada47 <unknown> #5 0x7f3b90cb481f <unknown> #6 0x7f3bac2bcfdd gl::GLApiBase::glClearFn() #7 0x7f3bac5a9e3b gpu::gles2::GLES2DecoderImpl::DoClear() #8 0x7f3bac56f649 gpu::gles2::GLES2DecoderImpl::HandleClear() #9 0x7f3bac5d6ed2 gpu::gles2::GLES2DecoderImpl::DoCommandsImpl<>() #10 0x7f3bac5a2235 gpu::gles2::GLES2DecoderImpl::DoCommands() #11 0x7f3bac5239fb gpu::CommandParser::ProcessCommands() #12 0x7f3bac526787 gpu::CommandExecutor::PutChanged() #13 0x7f3bac7a38d8 gpu::GpuCommandBufferStub::PutChanged() #14 0x7f3bac736765 _ZN4base8internal13FunctorTraitsIMN3gpu22InProcessCommandBufferEFvvEvE6InvokeIPS3_JEEEvS5_OT_DpOT0_ I'll take a closer look in that direction next week.
,
Nov 22 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e7bfffb17dcf8df18e8ecf78cb7ab5de6fed3853 commit e7bfffb17dcf8df18e8ecf78cb7ab5de6fed3853 Author: msw <msw@chromium.org> Date: Tue Nov 22 00:19:12 2016 Use mojo [de]serialization for SkBitmap property type conversion. Removes this separate [de]serialization pattern. Expands support beyond RGBA 8888. BUG= 666864 TEST=Automated; crash cited in bug no longer repros. R=tsepez@chromium.org,sky@chromium.org TBR=tomhudson@google.com Review-Url: https://codereview.chromium.org/2523433003 Cr-Commit-Position: refs/heads/master@{#433711} [modify] https://crrev.com/e7bfffb17dcf8df18e8ecf78cb7ab5de6fed3853/services/ui/public/cpp/BUILD.gn [modify] https://crrev.com/e7bfffb17dcf8df18e8ecf78cb7ab5de6fed3853/services/ui/public/cpp/DEPS [modify] https://crrev.com/e7bfffb17dcf8df18e8ecf78cb7ab5de6fed3853/services/ui/public/cpp/property_type_converters.cc [modify] https://crrev.com/e7bfffb17dcf8df18e8ecf78cb7ab5de6fed3853/services/ui/public/cpp/property_type_converters.h [modify] https://crrev.com/e7bfffb17dcf8df18e8ecf78cb7ab5de6fed3853/services/ui/public/cpp/tests/property_type_converters_unittest.cc
,
Nov 22 2016
This should be fixed, but I still can't verify (mash crashes on any nav...) James, please let me know if you can verify my fix; thanks!
,
Nov 22 2016
Seems to be fixed. With https://codereview.chromium.org/2513673004/ I can now open the Pulse Secure VPN config dialog without a CHECK failure. Thanks!
,
Mar 4 2017
,
Apr 17 2017
,
May 30 2017
,
Aug 1 2017
,
Oct 14 2017
,
Feb 26 2018
|
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by msw@chromium.org
, Nov 18 2016Owner: msw@chromium.org
Status: Assigned (was: Untriaged)