ericmckean / chromedriver

Automatically exported from code.google.com/p/chromedriver
0 stars 0 forks source link

cant install extensions with plugins #646

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Occurs at least on Linux.

There are two problems with this:
1) plugins force an extension install prompt
2) --load-extension with plugin extension hits a CHECK(storage_.get()) in 
Image::GetRepresentation:
#0  base::debug::(anonymous namespace)::DebugBreak () at 
../../base/debug/debugger_posix.cc:244
#1  0x00007ffff5317b58 in base::debug::BreakDebugger () at 
../../base/debug/debugger_posix.cc:257
#2  0x00007ffff5365d6f in logging::LogMessage::~LogMessage 
(this=0x7fffffffa010, __in_chrg=<optimized out>) at ../../base/logging.cc:651
#3  0x00007ffff41895aa in gfx::Image::GetRepresentation (this=0x2a3c0f91d388, 
rep_type=gfx::Image::kImageRepSkia, must_exist=false) at 
../../ui/gfx/image/image.cc:941
#4  0x00007ffff41885ea in gfx::Image::ToImageSkia (this=0x2a3c0f91d388) at 
../../ui/gfx/image/image.cc:616
#5  0x00007ffff41885b2 in gfx::Image::ToSkBitmap (this=0x2a3c0f91d388) at 
../../ui/gfx/image/image.cc:612
#6  0x0000555557c4d602 in 
chrome::ExtensionInstallDialog::ExtensionInstallDialog (this=0x2a3c0fde9500, 
show_params=..., delegate=0x2a3c0fd53f80, prompt=...) at 
../../chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc:249
#7  0x0000555557c4e457 in (anonymous namespace)::ShowExtensionInstallDialogImpl 
(show_params=..., delegate=0x2a3c0fd53f80, prompt=...) at 
../../chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc:431
#8  0x0000555557c4e73c in base::internal::RunnableAdapter<void 
(*)(ExtensionInstallPrompt::ShowParams const&, 
ExtensionInstallPrompt::Delegate*, ExtensionInstallPrompt::Prompt const&)>::Run 
(this=0x7fffffffab50, a1=..., a2=@0x2a3c0f91d2c0: 0x2a3c0fd53f80, a3=...) at 
../../base/bind_internal.h:289
#9  0x0000555557c4e6d8 in base::internal::InvokeHelper<false, void, 
base::internal::RunnableAdapter<void (*)(ExtensionInstallPrompt::ShowParams 
const&, ExtensionInstallPrompt::Delegate*, ExtensionInstallPrompt::Prompt 
const&)>, void (ExtensionInstallPrompt::ShowParams const&, 
ExtensionInstallPrompt::Delegate* const&, ExtensionInstallPrompt::Prompt 
const&)>::MakeItSo(base::internal::RunnableAdapter<void 
(*)(ExtensionInstallPrompt::ShowParams const&, 
ExtensionInstallPrompt::Delegate*, ExtensionInstallPrompt:
:Prompt const&)>, ExtensionInstallPrompt::ShowParams const&, 
ExtensionInstallPrompt::Delegate* const&, ExtensionInstallPrompt::Prompt 
const&) (runnable=..., a1=..., a2=@0x2a3c0f91d2c0: 0x2a3c0fd53f80, a3=...) at 
../../base/bind_internal.h:927
#10 0x0000555557c4e675 in base::internal::Invoker<0, 
base::internal::BindState<base::internal::RunnableAdapter<void 
(*)(ExtensionInstallPrompt::ShowParams const&, 
ExtensionInstallPrompt::Delegate*, ExtensionInstallPrompt::Prompt const&)>, 
void (ExtensionInstallPrompt::ShowParams const&, 
ExtensionInstallPrompt::Delegate*, ExtensionInstallPrompt::Prompt const&), void 
()>, void (ExtensionInstallPrompt::ShowParams const&, 
ExtensionInstallPrompt::Delegate*, ExtensionInstallPrompt::Prompt 
const&)>::Run(base::int
ernal::BindStateBase*, ExtensionInstallPrompt::ShowParams const&, 
ExtensionInstallPrompt::Delegate* const&, ExtensionInstallPrompt::Prompt 
const&) (base=0x2a3c0fe2b3e0, x1=..., x2=@0x2a3c0f91d2c0: 0x2a3c0fd53f80, 
x3=...) at ../../base/bind_internal.h:1284
#11 0x00005555573104e7 in base::Callback<void 
(ExtensionInstallPrompt::ShowParams const&, ExtensionInstallPrompt::Delegate*, 
ExtensionInstallPrompt::Prompt const&)>::Run(ExtensionInstallPrompt::ShowParams 
const&, ExtensionInstallPrompt::Delegate* const&, 
ExtensionInstallPrompt::Prompt const&) const (this=0x2a3c0f91d3d0, a1=..., 
a2=@0x2a3c0f91d2c0: 0x2a3c0fd53f80, a3=...) at ../../base/callback.h:525
#12 0x000055555730fa35 in ExtensionInstallPrompt::ShowConfirmation 
(this=0x2a3c0f91d220) at 
../../chrome/browser/extensions/extension_install_prompt.cc:825
#13 0x000055555730f290 in ExtensionInstallPrompt::LoadImageIfNeeded 
(this=0x2a3c0f91d220) at 
../../chrome/browser/extensions/extension_install_prompt.cc:722
#14 0x000055555730e9b8 in 
ExtensionInstallPrompt::ConfirmInstall(ExtensionInstallPrompt::Delegate*, 
extensions::Extension const*, base::Callback<void 
(ExtensionInstallPrompt::ShowParams const&, ExtensionInstallPrompt::Delegate*, 
ExtensionInstallPrompt::Prompt const&)> const&) (this=0x2a3c0f91d220, 
delegate=0x2a3c0fd53f80, extension=0x2a3c0fe223a0, show_dialog_callback=...) at 
../../chrome/browser/extensions/extension_install_prompt.cc:617
#15 0x000055555739e9c2 in (anonymous 
namespace)::SimpleExtensionLoadPrompt::ShowPrompt (this=0x2a3c0fd53f80) at 
../../chrome/browser/extensions/unpacked_installer.cc:72
#16 0x000055555739f52d in extensions::UnpackedInstaller::ShowInstallPrompt 
(this=0x2a3c0fac5770) at 
../../chrome/browser/extensions/unpacked_installer.cc:168
#17 0x000055555739f204 in extensions::UnpackedInstaller::LoadFromCommandLine 
(this=0x2a3c0fac5770, path_in=..., extension_id=0x7fffffffb840) at 
../../chrome/browser/extensions/unpacked_installer.cc:148
#18 0x000055555735332d in extensions::ExtensionSystemImpl::Shared::Init 
(this=0x2a3c0f65bec0, extensions_enabled=true) at 
../../chrome/browser/extensions/extension_system.cc:252
#19 0x00005555573538cd in 
extensions::ExtensionSystemImpl::InitForRegularProfile (this=0x2a3c0fbbbe60, 
extensions_enabled=true, defer_background_creation=false) at 
../../chrome/browser/extensions/extension_system.cc:355
#20 0x0000555555ce44fe in ProfileManager::DoFinalInitForServices 
(this=0x2a3c0f87d320, profile=0x2a3c0f8ce020, go_off_the_record=false) at 
../../chrome/browser/profiles/profile_manager.cc:805
#21 0x0000555555ce426b in ProfileManager::DoFinalInit (this=0x2a3c0f87d320, 
profile=0x2a3c0f8ce020, go_off_the_record=false) at 
../../chrome/browser/profiles/profile_manager.cc:761
#22 0x0000555555ce32b1 in ProfileManager::AddProfile (this=0x2a3c0f87d320, 
profile=0x2a3c0f8ce020) at ../../chrome/browser/profiles/profile_manager.cc:566
#23 0x0000555555ce2baf in ProfileManager::GetProfile (this=0x2a3c0f87d320, 
profile_dir=...) at ../../chrome/browser/profiles/profile_manager.cc:489
#24 0x00005555562cf88b in (anonymous namespace)::CreateProfile (parameters=..., 
user_data_dir=..., parsed_command_line=...) at 
../../chrome/browser/chrome_browser_main.cc:355
#25 0x00005555562d470a in ChromeBrowserMainParts::PreMainMessageLoopRunImpl 
(this=0x7fffdf419c80) at ../../chrome/browser/chrome_browser_main.cc:1281
#26 0x00005555562d36c4 in ChromeBrowserMainParts::PreMainMessageLoopRun 
(this=0x7fffdf419c80) at ../../chrome/browser/chrome_browser_main.cc:1033
#27 0x00007fffef9e816c in content::BrowserMainLoop::PreMainMessageLoopRun 
(this=0x7fffdf53f3e0) at ../../content/browser/browser_main_loop.cc:711
#28 0x00007fffef9ef290 in base::internal::RunnableAdapter<int 
(content::BrowserMainLoop::*)()>::Run (this=0x7fffffffd250, 
object=0x7fffdf53f3e0) at ../../base/bind_internal.h:134
#29 0x00007fffef9ef046 in base::internal::InvokeHelper<false, int, 
base::internal::RunnableAdapter<int (content::BrowserMainLoop::*)()>, void 
(content::BrowserMainLoop*)>::MakeItSo(base::internal::RunnableAdapter<int 
(content::BrowserMainLoop::*)()>, content::BrowserMainLoop*) (runnable=..., 
a1=0x7fffdf53f3e0) at ../../base/bind_internal.h:863
#30 0x00007fffef9eeaeb in base::internal::Invoker<1, 
base::internal::BindState<base::internal::RunnableAdapter<int 
(content::BrowserMainLoop::*)()>, int (content::BrowserMainLoop*), void 
(base::internal::UnretainedWrapper<content::BrowserMainLoop>)>, int 
(content::BrowserMainLoop*)>::Run(base::internal::BindStateBase*) 
(base=0x2a3c0f79db60) at ../../base/bind_internal.h:1169
#31 0x00007fffefc9f9db in base::Callback<int ()>::Run() const 
(this=0x2a3c0f79dbd0) at ../../base/callback.h:396
#32 0x00007fffefe6654f in content::StartupTaskRunner::RunAllTasksNow 
(this=0x2a3c0f5cada0) at ../../content/browser/startup_task_runner.cc:45
#33 0x00007fffef9e795a in content::BrowserMainLoop::CreateStartupTasks 
(this=0x7fffdf53f3e0) at ../../content/browser/browser_main_loop.cc:613
#34 0x00007fffef9efb26 in content::BrowserMainRunnerImpl::Initialize 
(this=0x7fffdf431380, parameters=...) at 
../../content/browser/browser_main_runner.cc:110
#35 0x00007fffef9e4362 in content::BrowserMain (parameters=...) at 
../../content/browser/browser_main.cc:22
#36 0x00007fffef9b1a17 in content::RunNamedProcessTypeMain (process_type="", 
main_function_params=..., delegate=0x7fffffffdb00) at 
../../content/app/content_main_runner.cc:458
#37 0x00007fffef9b2c1e in content::ContentMainRunnerImpl::Run 
(this=0x7fffdf3a6520) at ../../content/app/content_main_runner.cc:777
#38 0x00007fffef9b0ea7 in content::ContentMain (argc=3, argv=0x7fffffffdc68, 
delegate=0x7fffffffdb00) at ../../content/app/content_main.cc:35
#39 0x0000555555b41dc1 in ChromeMain (argc=3, argv=0x7fffffffdc68) at 
../../chrome/app/chrome_main.cc:39
#40 0x0000555555b41d81 in main (argc=3, argv=0x7fffffffdc68) at 
../../chrome/app/chrome_exe_main_gtk.cc:45

To fix, I can imagine a couple solutions:
-change --load-extension to never cause a prompt
-register extension through Preferences and possibly by placing into correct 
place in user data dir
-install extensions through devtools

Original issue reported on code.google.com by kkania@chromium.org on 3 Dec 2013 at 10:04

GoogleCodeExporter commented 9 years ago
Have you reported this upstream in Chromium?

Original comment by bauerb@chromium.org on 10 Mar 2014 at 10:45

GoogleCodeExporter commented 9 years ago
What needs to happen to fix this bug? It's blocking http://crbug.com/350512 , 
and I'm getting nag emails to remove the --load-plugin switch :).

Original comment by mpcomplete@chromium.org on 22 Jul 2014 at 11:58

GoogleCodeExporter commented 9 years ago

Original comment by samu...@chromium.org on 21 Feb 2015 at 12:19