mash: Wallpaper picker fails: 'Chrome cannot access the image' |
|||||||||
Issue descriptionmash: Wallpaper picker fails: 'Chrome cannot access the image' 1) Run chrome --mash 2) Right click the app launcher, select 'Set wallpaper...' and 'Choose File'. 3) Choose a file. Expected: Thumbnail appears, wallpaper can be set. Actual: "Chrome cannot access the image." (IDS_WALLPAPER_MANAGER_ACCESS_FILE_FAILURE / accessFileFailure) This error comes from WallpaperManager.prototype.onFileSystemError_: https://cs.chromium.org/chromium/src/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js?rcl=0&l=702
,
Oct 3 2016
afaict, it seems like the first error handler hit is for setCustomWallpaper here: https://cs.chromium.org/chromium/src/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js?rcl=0&l=915 It's called here because chrome.runtime.lastError.message is "Chrome cannot set wallpaper." https://cs.chromium.org/chromium/src/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js?rcl=0&l=985 It seems like that's called via WallpaperFunctionBase::UnsafeWallpaperDecoder::OnDecodeImageFailed: https://cs.chromium.org/chromium/src/chrome/browser/chromeos/extensions/wallpaper_function_base.cc?rcl=0&l=89 This is triggered via the call to ImageDecoder::FailAllRequests() from ImageDecoder::OnProcessCrashed, called with exit_code 9: https://cs.chromium.org/chromium/src/chrome/browser/image_decoder.cc?rcl=1475522397&l=249 UtilityProcessHostImpl::OnProcessCrashed is called via BrowserChildProcessHostImpl::OnChildDisconnected() with status == 5: https://cs.chromium.org/chromium/src/content/browser/browser_child_process_host_impl.cc?rcl=1475522397&l=432 afaict, that value means base::TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM... I'm not sure why the image decoding utility process would be killed by the cros oom, if that is the case... This comment says that "// On ChromeOS, only way a process gets kill by SIGKILL is by oom-killer.": https://cs.chromium.org/chromium/src/base/process/kill_posix.cc?rcl=0&l=60 Perhaps that's not true when running in mash? +CC some folks that might have some insight into mash processes.
,
Oct 4 2016
OnChildDisconnected is called via mojo::Connector::OnHandleReadyInternal() with result == 9 (MOJO_RESULT_FAILED_PRECONDITION). Here's the stack trace for OnChildDisconnected: #0 0x7fea4d3109be base::debug::StackTrace::StackTrace() #1 0x7fea475d0008 content::BrowserChildProcessHostImpl::OnChildDisconnected() #2 0x7fea46d8bf7c content::ChildProcessHostImpl::OnChannelError() #3 0x7fea45a11904 IPC::ChannelMojo::OnPipeError() #4 0x7fea45a47fa0 IPC::internal::MessagePipeReader::OnPipeError() #5 0x7fea45a4a8e4 _ZN4base8internal13FunctorTraitsIMN3IPC8internal17MessagePipeReaderEFvjEvE6InvokeIPS4_JRKjEEEvS6_OT_DpOT0_ #6 0x7fea45a4a7a6 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN3IPC8internal17MessagePipeReaderEFvjEJPS6_RKjEEEvOT_DpOT0_ #7 0x7fea45a4a733 _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC8internal17MessagePipeReaderEFvjEJNS0_17UnretainedWrapperIS5_EEjEEEFvvEE7RunImplIRKS7_RKSt5tupleIJS9_jEEJLm0ELm1EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE #8 0x7fea45a4a64c _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC8internal17MessagePipeReaderEFvjEJNS0_17UnretainedWrapperIS5_EEjEEEFvvEE3RunEPNS0_13BindStateBaseE #9 0x7fea4dab8b3b base::internal::RunMixin<>::Run() #10 0x7fea4dac5b87 mojo::InterfaceEndpointClient::NotifyError() #11 0x7fea45a5e66e IPC::(anonymous namespace)::ChannelAssociatedGroupController::NotifyEndpointOfError() #12 0x7fea45a61f55 IPC::(anonymous namespace)::ChannelAssociatedGroupController::OnPipeError() #13 0x7fea45a64749 _ZN4base8internal13FunctorTraitsIMN3IPC12_GLOBAL__N_132ChannelAssociatedGroupControllerEFvvEvE6InvokeIPS4_JEEEvS6_OT_DpOT0_ #14 0x7fea45a64661 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN3IPC12_GLOBAL__N_132ChannelAssociatedGroupControllerEFvvEJPS6_EEEvOT_DpOT0_ #15 0x7fea45a64607 _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12_GLOBAL__N_132ChannelAssociatedGroupControllerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE7RunImplIRKS7_RKSt5tupleIJS9_EEJLm0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE #16 0x7fea45a6454c _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12_GLOBAL__N_132ChannelAssociatedGroupControllerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE3RunEPNS0_13BindStateBaseE #17 0x7fea4dab8b3b base::internal::RunMixin<>::Run() #18 0x7fea4dab6c2c mojo::Connector::HandleError() #19 0x7fea4dab7a40 mojo::Connector::OnHandleReadyInternal() #20 0x7fea4dab792b mojo::Connector::OnWatcherHandleReady() #21 0x7fea4dab9be4 _ZN4base8internal13FunctorTraitsIMN4mojo9ConnectorEFvjEvE6InvokeIPS3_JjEEEvS5_OT_DpOT0_ #22 0x7fea4dab9af6 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo9ConnectorEFvjEJPS5_jEEEvOT_DpOT0_ #23 0x7fea4dab9a87 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE7RunImplIRKS6_RKSt5tupleIJS8_EEJLm0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEEOj #24 0x7fea4dab998c _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE3RunEPNS0_13BindStateBaseEOj #25 0x7fea4da7776f base::internal::RunMixin<>::Run() #26 0x7fea4da770d4 mojo::Watcher::OnHandleReady() #27 0x7fea4da76ec0 mojo::Watcher::CallOnHandleReady() #28 0x7fea3e3619bf mojo::edk::(anonymous namespace)::CallWatchCallback() #29 0x7fea3e369957 _ZN4base8internal13FunctorTraitsIPFvPFvmj22MojoHandleSignalsStatejEmjRKN4mojo3edk18HandleSignalsStateEjEvE6InvokeIJRKS4_RKmjS9_jEEEvSB_DpOT_ #30 0x7fea3e36984c _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvPFvmj22MojoHandleSignalsStatejEmjRKN4mojo3edk18HandleSignalsStateEjEJRKS6_RKmjSB_jEEEvOT_DpOT0_ #31 0x7fea3e3697b2 _ZN4base8internal7InvokerINS0_9BindStateIPFvPFvmj22MojoHandleSignalsStatejEmjRKN4mojo3edk18HandleSignalsStateEjEJS5_mEEEFvjSA_jEE7RunImplIRKSC_RKSt5tupleIJS5_mEEJLm0ELm1EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEEOjSA_ST_ #32 0x7fea3e369693 _ZN4base8internal7InvokerINS0_9BindStateIPFvPFvmj22MojoHandleSignalsStatejEmjRKN4mojo3edk18HandleSignalsStateEjEJS5_mEEEFvjSA_jEE3RunEPNS0_13BindStateBaseEOjSA_SI_ #33 0x7fea3e3c044e base::internal::RunMixin<>::Run() #34 0x7fea3e3c01ad mojo::edk::Watcher::MaybeInvokeCallback() #35 0x7fea3e3adf76 mojo::edk::RequestContext::~RequestContext() #36 0x7fea3e3867c8 mojo::edk::NodeChannel::OnChannelMessage() #37 0x7fea3e35474b mojo::edk::Channel::OnReadComplete() #38 0x7fea3e35a361 mojo::edk::(anonymous namespace)::ChannelPosix::OnFileCanReadWithoutBlocking() #39 0x7fea4d3b1cb1 base::MessagePumpLibevent::FileDescriptorWatcher::OnFileCanReadWithoutBlocking() #40 0x7fea4d3b2fcf base::MessagePumpLibevent::OnLibeventNotification() #41 0x7fea4d5c894e event_process_active #42 0x7fea4d5c7f97 event_base_loop #43 0x7fea4d3b3096 base::MessagePumpLibevent::Run() #44 0x7fea4d39cb51 base::MessageLoop::RunHandler() #45 0x7fea4d4356a4 base::RunLoop::Run() #46 0x7fea4d4d2b89 base::Thread::Run() #47 0x7fea47606908 content::BrowserThreadImpl::IOThreadRun() #48 0x7fea47606ba1 content::BrowserThreadImpl::Run() #49 0x7fea4d4d33c1 base::Thread::ThreadMain() #50 0x7fea4d4bc17a base::(anonymous namespace)::ThreadFunc() #51 0x7fea4d718184 start_thread #52 0x7fea39da437d clone I think I need help finding the root cause of these errors.
,
Oct 4 2016
After some investigation, the problem appears to be that these utility processes are never having their IPC Channel connected.
,
Oct 5 2016
This is a manifestation of two problems: 1. "exe:chrome" != "exe:content_browser" In a mash environemnt, the browser process is "exe:chrome", but because of the complexity of content layering + service manager identity, everything else calls it "exe:content_browser". Child processes don't allow anyone to connect to their IPC Channel unless they're named "exe:content_browser". 2. Mash doesn't use an embedded ServiceManager Content relies on its embedder providing a manifest overlay to expose additional capabilities. Chrome provides such an overlay, and the mojom::ImageDecoder interface is exposed by it. Overlays only work with content's embedded ServiceManager, but mash (and mojo_runner for developers) uses a standalone ServiceManager. I've kicked around a few ideas for solving these problems, but I'm not happy with any of them yet.
,
Oct 7 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3216b12377127f215e8c57a4b835bc6564506119 commit 3216b12377127f215e8c57a4b835bc6564506119 Author: rockot <rockot@chromium.org> Date: Fri Oct 07 06:02:24 2016 Mash: Replaces "exe:chrome" with "service:content_browser" No more references to exe:chrome, instead anyone wanting browser interfaces connects to service:content_browser, which is consistent with the rest of the universe. ServiceManager and Catalog have some control interfaces added to override path resolution for executables and manifests. MashRunner uses this to direct resolution of "exe:chrome_mash" and "service:content_browser" accordingly, as well as to resolve content process manifests to chrome's/mash's overlayed versions on disk. Also changes the service_manifest GN template to support overlays. This makes it easy to reuse the existing overlay metadata with standalone ServiceManager, as well as to layer multiple overlays (e.g. content_browser + chrome_content_browser + chrome_mash_content_browser). Adds a browser manifest overlay specifically for Mash, which is applied on top of Chrome's own overlay. BUG= 646077 TEST=chrome --mash seems to "work", can set wallpaper, browse cat photos, run task_viewer, etc Review-Url: https://codereview.chromium.org/2389133008 Cr-Commit-Position: refs/heads/master@{#423803} [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/ash/common/system/tray/system_tray_controller.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/ash/mus/app_list_presenter_mus.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/ash/mus/keyboard_ui_mus.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/ash/mus/manifest.json [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/ash/mus/wallpaper_delegate_mus.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/BUILD.gn [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/app/BUILD.gn [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/app/mash/BUILD.gn [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/app/mash/DEPS [add] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/app/mash/chrome_mash_content_browser_manifest_overlay.json [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/app/mash/chrome_mash_manifest.json [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/app/mash/mash_runner.cc [delete] https://crrev.com/b69d3d2ec0d8bd333157dc33f5e1da1eaf76e5fb/chrome/app/mojo/OWNERS [delete] https://crrev.com/b69d3d2ec0d8bd333157dc33f5e1da1eaf76e5fb/chrome/app/mojo/chrome_manifest.json [delete] https://crrev.com/b69d3d2ec0d8bd333157dc33f5e1da1eaf76e5fb/chrome/app/mojo/chrome_renderer_manifest.json [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/browser/browser_resources.grd [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/browser/chrome_content_browser_client.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/browser/chrome_content_browser_manifest_overlay.json [add] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/browser/chrome_content_renderer_manifest_overlay.json [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/test/BUILD.gn [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/chrome/test/base/mojo_test_connector.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/mash/app_driver/app_driver.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/mash/session/session.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/catalog/catalog.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/catalog/catalog.h [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/catalog/manifest.json [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/catalog/public/interfaces/BUILD.gn [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/catalog/public/interfaces/catalog.mojom [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/catalog/reader.cc [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/catalog/reader.h [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/shell/manifest.json [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/shell/public/service_manifest.gni [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/shell/public/tools/manifest/manifest_collator.py [modify] https://crrev.com/3216b12377127f215e8c57a4b835bc6564506119/services/shell/service_manager.cc
,
Oct 7 2016
,
Jan 21 2017
,
Mar 4 2017
,
Mar 29 2017
,
Apr 17 2017
,
May 11 2017
|
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by msw@chromium.org
, Oct 3 2016The error I see now is "Chrome cannot set wallpaper. Learn more" and in the terminal, I see: [9151:9151:1003/152313:INFO:CONSOLE(0)] "Error in response to wallpaperPrivate.setCustomWallpaper: TypeError: Cannot read property 'code' of undefined at WallpaperManager.onFileSystemError_ (chrome-extension://obklkkbkpaoaejdabbfldmcfplpdgolj/js/main_scripts.js:9748:14) at chrome-extension://obklkkbkpaoaejdabbfldmcfplpdgolj/js/main_scripts.js:9959:19 at Object.onFinished [as callback] (chrome-extension://obklkkbkpaoaejdabbfldmcfplpdgolj/js/main_scripts.js:10029:9) at WallpaperManager.setCustomWallpaper (chrome-extension://obklkkbkpaoaejdabbfldmcfplpdgolj/js/main_scripts.js:10035:29) at FileReader.<anonymous> (chrome-extension://obklkkbkpaoaejdabbfldmcfplpdgolj/js/main_scripts.js:9953:22)", source: chrome-extension://obklkkbkpaoaejdabbfldmcfplpdgolj/main.html (0) [9151:9151:1003/152313:INFO:CONSOLE(9749)] "Uncaught ReferenceError: FileError is not defined", source: chrome-extension://obklkkbkpaoaejdabbfldmcfplpdgolj/js/main_scripts.js (9749)