Index: chrome/browser/extensions/api/developer_private/developer_private_api.cc |
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc |
index 1b5c918c7de4f04e1a83f52ad77529c7b9dc84f9..d867db97020b169eddb84f914908269728a135b6 100644 |
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc |
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc |
@@ -446,8 +446,46 @@ bool DeveloperPrivateReloadFunction::RunImpl() { |
return true; |
} |
+bool DeveloperPrivateShowPermissionsDialogFunction::RunImpl() { |
+ std::string extension_id; |
+ EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &extension_id)); |
+ ExtensionService* service = profile()->GetExtensionService(); |
+ CHECK(!extension_id.empty()); |
+ ShellWindowRegistry* registry = ShellWindowRegistry::Get(profile()); |
+ DCHECK(registry); |
+ ShellWindow* shell_window = registry->GetShellWindowForRenderViewHost( |
+ render_view_host()); |
+ prompt_.reset(new ExtensionInstallPrompt(shell_window->web_contents())); |
+ const Extension* extension = service->GetInstalledExtension(extension_id); |
+ |
+ if (!extension) |
+ return false; |
+ |
+ // Released by InstallUIAbort. |
+ AddRef(); |
+ prompt_->ReviewPermissions(this, extension); |
+ return true; |
+} |
+ |
DeveloperPrivateReloadFunction::~DeveloperPrivateReloadFunction() {} |
+void DeveloperPrivateShowPermissionsDialogFunction::InstallUIProceed() { |
+ // The permissions dialog only contains a close button. |
+ NOTREACHED(); |
+} |
+ |
+void DeveloperPrivateShowPermissionsDialogFunction::InstallUIAbort( |
+ bool user_initiated) { |
+ SendResponse(true); |
+ Release(); |
+} |
+ |
+DeveloperPrivateShowPermissionsDialogFunction:: |
+ DeveloperPrivateShowPermissionsDialogFunction() {} |
+ |
+DeveloperPrivateShowPermissionsDialogFunction:: |
+ ~DeveloperPrivateShowPermissionsDialogFunction() {} |
+ |
bool DeveloperPrivateRestartFunction::RunImpl() { |
scoped_ptr<Restart::Params> params(Restart::Params::Create(*args_)); |
EXTENSION_FUNCTION_VALIDATE(params.get()); |