| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/extensions_ui.h" | 5 #include "chrome/browser/extensions/extensions_ui.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 chrome::NOTIFICATION_BACKGROUND_CONTENTS_NAVIGATED, | 272 chrome::NOTIFICATION_BACKGROUND_CONTENTS_NAVIGATED, |
| 273 NotificationService::AllSources()); | 273 NotificationService::AllSources()); |
| 274 registrar_.Add(this, | 274 registrar_.Add(this, |
| 275 chrome::NOTIFICATION_BACKGROUND_CONTENTS_DELETED, | 275 chrome::NOTIFICATION_BACKGROUND_CONTENTS_DELETED, |
| 276 NotificationService::AllSources()); | 276 NotificationService::AllSources()); |
| 277 registrar_.Add(this, | 277 registrar_.Add(this, |
| 278 chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED, | 278 chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED, |
| 279 NotificationService::AllSources()); | 279 NotificationService::AllSources()); |
| 280 } | 280 } |
| 281 | 281 |
| 282 ExtensionUninstallDialog* ExtensionsDOMHandler::GetExtensionUninstallDialog() { | 282 ExtensionUninstallUI* ExtensionsDOMHandler::GetExtensionUninstallUI() { |
| 283 if (!extension_uninstall_dialog_.get()) { | 283 if (!extension_uninstall_ui_.get()) { |
| 284 extension_uninstall_dialog_.reset( | 284 extension_uninstall_ui_.reset( |
| 285 new ExtensionUninstallDialog(Profile::FromWebUI(web_ui_))); | 285 new ExtensionUninstallUI(Profile::FromWebUI(web_ui_))); |
| 286 } | 286 } |
| 287 return extension_uninstall_dialog_.get(); | 287 return extension_uninstall_ui_.get(); |
| 288 } | 288 } |
| 289 | 289 |
| 290 void ExtensionsDOMHandler::HandleToggleDeveloperMode(const ListValue* args) { | 290 void ExtensionsDOMHandler::HandleToggleDeveloperMode(const ListValue* args) { |
| 291 Profile* profile = Profile::FromWebUI(web_ui_); | 291 Profile* profile = Profile::FromWebUI(web_ui_); |
| 292 bool developer_mode = | 292 bool developer_mode = |
| 293 profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode); | 293 profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode); |
| 294 profile->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode, | 294 profile->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode, |
| 295 !developer_mode); | 295 !developer_mode); |
| 296 } | 296 } |
| 297 | 297 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 406 LOG(ERROR) << "Attempt to uninstall an extension that is non-usermanagable " | 406 LOG(ERROR) << "Attempt to uninstall an extension that is non-usermanagable " |
| 407 << "was made. Extension id : " << extension->id(); | 407 << "was made. Extension id : " << extension->id(); |
| 408 return; | 408 return; |
| 409 } | 409 } |
| 410 | 410 |
| 411 if (!extension_id_prompting_.empty()) | 411 if (!extension_id_prompting_.empty()) |
| 412 return; // Only one prompt at a time. | 412 return; // Only one prompt at a time. |
| 413 | 413 |
| 414 extension_id_prompting_ = extension_id; | 414 extension_id_prompting_ = extension_id; |
| 415 | 415 |
| 416 GetExtensionUninstallDialog()->ConfirmUninstall(this, extension); | 416 GetExtensionUninstallUI()->ConfirmUninstall(this, extension); |
| 417 } | 417 } |
| 418 | 418 |
| 419 void ExtensionsDOMHandler::ExtensionDialogAccepted() { | 419 void ExtensionsDOMHandler::ExtensionUninstallAccepted() { |
| 420 DCHECK(!extension_id_prompting_.empty()); | 420 DCHECK(!extension_id_prompting_.empty()); |
| 421 | 421 |
| 422 bool was_terminated = false; | 422 bool was_terminated = false; |
| 423 | 423 |
| 424 // The extension can be uninstalled in another window while the UI was | 424 // The extension can be uninstalled in another window while the UI was |
| 425 // showing. Do nothing in that case. | 425 // showing. Do nothing in that case. |
| 426 const Extension* extension = | 426 const Extension* extension = |
| 427 extension_service_->GetExtensionById(extension_id_prompting_, true); | 427 extension_service_->GetExtensionById(extension_id_prompting_, true); |
| 428 if (!extension) { | 428 if (!extension) { |
| 429 extension = extension_service_->GetTerminatedExtension( | 429 extension = extension_service_->GetTerminatedExtension( |
| 430 extension_id_prompting_); | 430 extension_id_prompting_); |
| 431 was_terminated = true; | 431 was_terminated = true; |
| 432 } | 432 } |
| 433 if (!extension) | 433 if (!extension) |
| 434 return; | 434 return; |
| 435 | 435 |
| 436 extension_service_->UninstallExtension(extension_id_prompting_, | 436 extension_service_->UninstallExtension(extension_id_prompting_, |
| 437 false /* external_uninstall */, NULL); | 437 false /* external_uninstall */, NULL); |
| 438 extension_id_prompting_ = ""; | 438 extension_id_prompting_ = ""; |
| 439 | 439 |
| 440 // There will be no EXTENSION_UNLOADED notification for terminated | 440 // There will be no EXTENSION_UNLOADED notification for terminated |
| 441 // extensions as they were already unloaded. | 441 // extensions as they were already unloaded. |
| 442 if (was_terminated) | 442 if (was_terminated) |
| 443 HandleRequestExtensionsData(NULL); | 443 HandleRequestExtensionsData(NULL); |
| 444 } | 444 } |
| 445 | 445 |
| 446 void ExtensionsDOMHandler::ExtensionDialogCanceled() { | 446 void ExtensionsDOMHandler::ExtensionUninstallCanceled() { |
| 447 extension_id_prompting_ = ""; | 447 extension_id_prompting_ = ""; |
| 448 } | 448 } |
| 449 | 449 |
| 450 void ExtensionsDOMHandler::HandleOptionsMessage(const ListValue* args) { | 450 void ExtensionsDOMHandler::HandleOptionsMessage(const ListValue* args) { |
| 451 const Extension* extension = GetExtension(args); | 451 const Extension* extension = GetExtension(args); |
| 452 if (!extension || extension->options_url().is_empty()) | 452 if (!extension || extension->options_url().is_empty()) |
| 453 return; | 453 return; |
| 454 Profile::FromWebUI(web_ui_)->GetExtensionProcessManager()->OpenOptionsPage( | 454 Profile::FromWebUI(web_ui_)->GetExtensionProcessManager()->OpenOptionsPage( |
| 455 extension, NULL); | 455 extension, NULL); |
| 456 } | 456 } |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 797 return ResourceBundle::GetSharedInstance(). | 797 return ResourceBundle::GetSharedInstance(). |
| 798 LoadDataResourceBytes(IDR_PLUGIN); | 798 LoadDataResourceBytes(IDR_PLUGIN); |
| 799 } | 799 } |
| 800 | 800 |
| 801 // static | 801 // static |
| 802 void ExtensionsUI::RegisterUserPrefs(PrefService* prefs) { | 802 void ExtensionsUI::RegisterUserPrefs(PrefService* prefs) { |
| 803 prefs->RegisterBooleanPref(prefs::kExtensionsUIDeveloperMode, | 803 prefs->RegisterBooleanPref(prefs::kExtensionsUIDeveloperMode, |
| 804 false, | 804 false, |
| 805 PrefService::SYNCABLE_PREF); | 805 PrefService::SYNCABLE_PREF); |
| 806 } | 806 } |
| OLD | NEW |