| 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 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 if (ShouldShowExtension(*extension)) { | 235 if (ShouldShowExtension(*extension)) { |
| 236 extensions_list->Append(CreateExtensionDetailValue( | 236 extensions_list->Append(CreateExtensionDetailValue( |
| 237 extension_service_, | 237 extension_service_, |
| 238 *extension, | 238 *extension, |
| 239 empty_pages, // Terminated process has no active pages. | 239 empty_pages, // Terminated process has no active pages. |
| 240 false, true)); // enabled, terminated | 240 false, true)); // enabled, terminated |
| 241 } | 241 } |
| 242 } | 242 } |
| 243 results.Set("extensions", extensions_list); | 243 results.Set("extensions", extensions_list); |
| 244 | 244 |
| 245 bool developer_mode = web_ui_->GetProfile()->GetPrefs() | 245 Profile* profile = |
| 246 ->GetBoolean(prefs::kExtensionsUIDeveloperMode); | 246 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()); |
| 247 bool developer_mode = |
| 248 profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode); |
| 247 results.SetBoolean("developerMode", developer_mode); | 249 results.SetBoolean("developerMode", developer_mode); |
| 248 | 250 |
| 249 web_ui_->CallJavascriptFunction("returnExtensionsData", results); | 251 web_ui_->CallJavascriptFunction("returnExtensionsData", results); |
| 250 } | 252 } |
| 251 | 253 |
| 252 void ExtensionsDOMHandler::RegisterForNotifications() { | 254 void ExtensionsDOMHandler::RegisterForNotifications() { |
| 253 // Register for notifications that we need to reload the page. | 255 // Register for notifications that we need to reload the page. |
| 254 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, | 256 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, |
| 255 NotificationService::AllSources()); | 257 NotificationService::AllSources()); |
| 256 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_PROCESS_CREATED, | 258 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_PROCESS_CREATED, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 274 registrar_.Add(this, | 276 registrar_.Add(this, |
| 275 chrome::NOTIFICATION_BACKGROUND_CONTENTS_DELETED, | 277 chrome::NOTIFICATION_BACKGROUND_CONTENTS_DELETED, |
| 276 NotificationService::AllSources()); | 278 NotificationService::AllSources()); |
| 277 registrar_.Add(this, | 279 registrar_.Add(this, |
| 278 chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED, | 280 chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED, |
| 279 NotificationService::AllSources()); | 281 NotificationService::AllSources()); |
| 280 } | 282 } |
| 281 | 283 |
| 282 ExtensionUninstallDialog* ExtensionsDOMHandler::GetExtensionUninstallDialog() { | 284 ExtensionUninstallDialog* ExtensionsDOMHandler::GetExtensionUninstallDialog() { |
| 283 if (!extension_uninstall_dialog_.get()) { | 285 if (!extension_uninstall_dialog_.get()) { |
| 286 Profile* profile = |
| 287 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()); |
| 284 extension_uninstall_dialog_.reset( | 288 extension_uninstall_dialog_.reset( |
| 285 new ExtensionUninstallDialog(web_ui_->GetProfile())); | 289 new ExtensionUninstallDialog(profile)); |
| 286 } | 290 } |
| 287 return extension_uninstall_dialog_.get(); | 291 return extension_uninstall_dialog_.get(); |
| 288 } | 292 } |
| 289 | 293 |
| 290 void ExtensionsDOMHandler::HandleToggleDeveloperMode(const ListValue* args) { | 294 void ExtensionsDOMHandler::HandleToggleDeveloperMode(const ListValue* args) { |
| 291 bool developer_mode = web_ui_->GetProfile()->GetPrefs() | 295 Profile* profile = |
| 292 ->GetBoolean(prefs::kExtensionsUIDeveloperMode); | 296 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()); |
| 293 web_ui_->GetProfile()->GetPrefs()->SetBoolean( | 297 bool developer_mode = |
| 294 prefs::kExtensionsUIDeveloperMode, !developer_mode); | 298 profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode); |
| 299 profile->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode, |
| 300 !developer_mode); |
| 295 } | 301 } |
| 296 | 302 |
| 297 void ExtensionsDOMHandler::HandleInspectMessage(const ListValue* args) { | 303 void ExtensionsDOMHandler::HandleInspectMessage(const ListValue* args) { |
| 298 std::string render_process_id_str; | 304 std::string render_process_id_str; |
| 299 std::string render_view_id_str; | 305 std::string render_view_id_str; |
| 300 int render_process_id; | 306 int render_process_id; |
| 301 int render_view_id; | 307 int render_view_id; |
| 302 CHECK(args->GetSize() == 2); | 308 CHECK(args->GetSize() == 2); |
| 303 CHECK(args->GetString(0, &render_process_id_str)); | 309 CHECK(args->GetString(0, &render_process_id_str)); |
| 304 CHECK(args->GetString(1, &render_view_id_str)); | 310 CHECK(args->GetString(1, &render_view_id_str)); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 330 DCHECK(extension); | 336 DCHECK(extension); |
| 331 if (!Extension::UserMayDisable(extension->location())) { | 337 if (!Extension::UserMayDisable(extension->location())) { |
| 332 LOG(ERROR) << "Attempt to enable an extension that is non-usermanagable was" | 338 LOG(ERROR) << "Attempt to enable an extension that is non-usermanagable was" |
| 333 << "made. Extension id: " << extension->id(); | 339 << "made. Extension id: " << extension->id(); |
| 334 return; | 340 return; |
| 335 } | 341 } |
| 336 | 342 |
| 337 if (enable_str == "true") { | 343 if (enable_str == "true") { |
| 338 ExtensionPrefs* prefs = extension_service_->extension_prefs(); | 344 ExtensionPrefs* prefs = extension_service_->extension_prefs(); |
| 339 if (prefs->DidExtensionEscalatePermissions(extension_id)) { | 345 if (prefs->DidExtensionEscalatePermissions(extension_id)) { |
| 340 ShowExtensionDisabledDialog(extension_service_, | 346 Profile* profile = Profile::FromBrowserContext( |
| 341 web_ui_->GetProfile(), extension); | 347 web_ui_->tab_contents()->browser_context()); |
| 348 ShowExtensionDisabledDialog(extension_service_, profile, extension); |
| 342 } else { | 349 } else { |
| 343 extension_service_->EnableExtension(extension_id); | 350 extension_service_->EnableExtension(extension_id); |
| 344 } | 351 } |
| 345 } else { | 352 } else { |
| 346 extension_service_->DisableExtension(extension_id); | 353 extension_service_->DisableExtension(extension_id); |
| 347 } | 354 } |
| 348 } | 355 } |
| 349 | 356 |
| 350 void ExtensionsDOMHandler::HandleEnableIncognitoMessage(const ListValue* args) { | 357 void ExtensionsDOMHandler::HandleEnableIncognitoMessage(const ListValue* args) { |
| 351 CHECK(args->GetSize() == 2); | 358 CHECK(args->GetSize() == 2); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 } | 450 } |
| 444 | 451 |
| 445 void ExtensionsDOMHandler::ExtensionDialogCanceled() { | 452 void ExtensionsDOMHandler::ExtensionDialogCanceled() { |
| 446 extension_id_prompting_ = ""; | 453 extension_id_prompting_ = ""; |
| 447 } | 454 } |
| 448 | 455 |
| 449 void ExtensionsDOMHandler::HandleOptionsMessage(const ListValue* args) { | 456 void ExtensionsDOMHandler::HandleOptionsMessage(const ListValue* args) { |
| 450 const Extension* extension = GetExtension(args); | 457 const Extension* extension = GetExtension(args); |
| 451 if (!extension || extension->options_url().is_empty()) | 458 if (!extension || extension->options_url().is_empty()) |
| 452 return; | 459 return; |
| 453 web_ui_->GetProfile()->GetExtensionProcessManager()->OpenOptionsPage( | 460 Profile* profile = |
| 454 extension, NULL); | 461 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()); |
| 462 profile->GetExtensionProcessManager()->OpenOptionsPage(extension, NULL); |
| 455 } | 463 } |
| 456 | 464 |
| 457 void ExtensionsDOMHandler::HandleShowButtonMessage(const ListValue* args) { | 465 void ExtensionsDOMHandler::HandleShowButtonMessage(const ListValue* args) { |
| 458 const Extension* extension = GetExtension(args); | 466 const Extension* extension = GetExtension(args); |
| 459 extension_service_->SetBrowserActionVisibility(extension, true); | 467 extension_service_->SetBrowserActionVisibility(extension, true); |
| 460 } | 468 } |
| 461 | 469 |
| 462 void ExtensionsDOMHandler::HandleLoadMessage(const ListValue* args) { | 470 void ExtensionsDOMHandler::HandleLoadMessage(const ListValue* args) { |
| 463 FilePath::StringType string_path; | 471 FilePath::StringType string_path; |
| 464 CHECK(args->GetSize() == 1) << args->GetSize(); | 472 CHECK(args->GetSize() == 1) << args->GetSize(); |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 796 return ResourceBundle::GetSharedInstance(). | 804 return ResourceBundle::GetSharedInstance(). |
| 797 LoadDataResourceBytes(IDR_PLUGIN); | 805 LoadDataResourceBytes(IDR_PLUGIN); |
| 798 } | 806 } |
| 799 | 807 |
| 800 // static | 808 // static |
| 801 void ExtensionsUI::RegisterUserPrefs(PrefService* prefs) { | 809 void ExtensionsUI::RegisterUserPrefs(PrefService* prefs) { |
| 802 prefs->RegisterBooleanPref(prefs::kExtensionsUIDeveloperMode, | 810 prefs->RegisterBooleanPref(prefs::kExtensionsUIDeveloperMode, |
| 803 false, | 811 false, |
| 804 PrefService::SYNCABLE_PREF); | 812 PrefService::SYNCABLE_PREF); |
| 805 } | 813 } |
| OLD | NEW |