New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 666864 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

mash: Check failure in SkBitmap type converter for extension app window

Project Member Reported by jamescook@chromium.org, Nov 18 2016

Issue description

Repro (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.

 

Comment 1 by msw@chromium.org, Nov 18 2016

Cc: -msw@chromium.org rjkroege@chromium.org yzshen@chromium.org
Owner: msw@chromium.org
Status: Assigned (was: Untriaged)
Good to know! Especially since I was just looking at using the same services/ui/public/cpp/property_type_converters.h SkBitmap converter for aura::PropertyConverter to support gfx::ImageSkia window & app icon properties.

I'll try using the more complete skia/public/interfaces/bitmap.mojom serialization code (+CC yzshen@ for guidance).
Or maybe our Mus team has a better idea (it might help to tackle  Issue 655874 , +CC rjkroege@ for any thoughts).

(I can't repro on my local build at the moment, I get crashes earlier when trying to navigate Chrome)
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.

Comment 3 by msw@chromium.org, 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

Comment 4 by msw@chromium.org, 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.

Comment 6 by msw@chromium.org, Nov 22 2016

Status: Fixed (was: Assigned)
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!
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!

Comment 8 by dchan@google.com, Mar 4 2017

Labels: VerifyIn-58

Comment 9 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59

Comment 10 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 12 by dchan@chromium.org, Oct 14 2017

Status: Archived (was: Fixed)
Components: -MUS Internals>Services>WindowService

Sign in to add a comment