Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: chrome/browser/ui/webui/extensions/extension_settings_handler.cc

Issue 12288052: Add managed user lock/unlock button for the extensions page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/webui/extensions/extension_settings_handler.h" 5 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/base64.h" 8 #include "base/base64.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 source->AddString("extensionSettingsCrashMessage", 338 source->AddString("extensionSettingsCrashMessage",
339 l10n_util::GetStringUTF16(IDS_EXTENSIONS_CRASHED_EXTENSION)); 339 l10n_util::GetStringUTF16(IDS_EXTENSIONS_CRASHED_EXTENSION));
340 source->AddString("extensionSettingsInDevelopment", 340 source->AddString("extensionSettingsInDevelopment",
341 l10n_util::GetStringUTF16(IDS_EXTENSIONS_IN_DEVELOPMENT)); 341 l10n_util::GetStringUTF16(IDS_EXTENSIONS_IN_DEVELOPMENT));
342 source->AddString("extensionSettingsWarningsTitle", 342 source->AddString("extensionSettingsWarningsTitle",
343 l10n_util::GetStringUTF16(IDS_EXTENSION_WARNINGS_TITLE)); 343 l10n_util::GetStringUTF16(IDS_EXTENSION_WARNINGS_TITLE));
344 source->AddString("extensionSettingsShowDetails", 344 source->AddString("extensionSettingsShowDetails",
345 l10n_util::GetStringUTF16(IDS_EXTENSIONS_SHOW_DETAILS)); 345 l10n_util::GetStringUTF16(IDS_EXTENSIONS_SHOW_DETAILS));
346 source->AddString("extensionSettingsHideDetails", 346 source->AddString("extensionSettingsHideDetails",
347 l10n_util::GetStringUTF16(IDS_EXTENSIONS_HIDE_DETAILS)); 347 l10n_util::GetStringUTF16(IDS_EXTENSIONS_HIDE_DETAILS));
348 source->AddString("unlockButton",
349 l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNLOCK_BUTTON));
350 source->AddString("lockButton",
351 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOCK_BUTTON));
348 352
349 // TODO(estade): comb through the above strings to find ones no longer used in 353 // TODO(estade): comb through the above strings to find ones no longer used in
350 // uber extensions. 354 // uber extensions.
351 source->AddString("extensionUninstall", 355 source->AddString("extensionUninstall",
352 l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL)); 356 l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL));
353 } 357 }
354 358
355 void ExtensionSettingsHandler::NavigateToPendingEntry(const GURL& url, 359 void ExtensionSettingsHandler::NavigateToPendingEntry(const GURL& url,
356 content::NavigationController::ReloadType reload_type) { 360 content::NavigationController::ReloadType reload_type) {
357 if (reload_type != content::NavigationController::NO_RELOAD) 361 if (reload_type != content::NavigationController::NO_RELOAD)
358 ReloadUnpackedExtensions(); 362 ReloadUnpackedExtensions();
359 } 363 }
360 364
361 void ExtensionSettingsHandler::RegisterMessages() { 365 void ExtensionSettingsHandler::RegisterMessages() {
362 // Don't override an |extension_service_| or |management_policy_| injected 366 // Don't override an |extension_service_| or |management_policy_| injected
363 // for testing. 367 // for testing.
364 if (!extension_service_) { 368 if (!extension_service_) {
365 extension_service_ = Profile::FromWebUI(web_ui())->GetOriginalProfile()-> 369 extension_service_ = Profile::FromWebUI(web_ui())->GetOriginalProfile()->
366 GetExtensionService(); 370 GetExtensionService();
367 } 371 }
368 if (!management_policy_) { 372 if (!management_policy_) {
369 management_policy_ = extensions::ExtensionSystem::Get( 373 management_policy_ = extensions::ExtensionSystem::Get(
370 extension_service_->profile())->management_policy(); 374 extension_service_->profile())->management_policy();
371 } 375 }
372 376
377 web_ui()->RegisterMessageCallback("authenticate",
378 base::Bind(&ExtensionSettingsHandler::DoAuthenticate,
379 base::Unretained(this)));
380 web_ui()->RegisterMessageCallback("endAuthentication",
381 base::Bind(&ExtensionSettingsHandler::EndAuthentication,
382 base::Unretained(this)));
373 web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData", 383 web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData",
374 base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData, 384 base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData,
375 base::Unretained(this))); 385 base::Unretained(this)));
376 web_ui()->RegisterMessageCallback("extensionSettingsToggleDeveloperMode", 386 web_ui()->RegisterMessageCallback("extensionSettingsToggleDeveloperMode",
377 base::Bind(&ExtensionSettingsHandler::HandleToggleDeveloperMode, 387 base::Bind(&ExtensionSettingsHandler::HandleToggleDeveloperMode,
378 base::Unretained(this))); 388 base::Unretained(this)));
379 web_ui()->RegisterMessageCallback("extensionSettingsInspect", 389 web_ui()->RegisterMessageCallback("extensionSettingsInspect",
380 base::Bind(&ExtensionSettingsHandler::HandleInspectMessage, 390 base::Bind(&ExtensionSettingsHandler::HandleInspectMessage,
381 base::Unretained(this))); 391 base::Unretained(this)));
382 web_ui()->RegisterMessageCallback("extensionSettingsLaunch", 392 web_ui()->RegisterMessageCallback("extensionSettingsLaunch",
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 if ((*extension)->location() == Manifest::LOAD) 540 if ((*extension)->location() == Manifest::LOAD)
531 unpacked_extensions.push_back(*extension); 541 unpacked_extensions.push_back(*extension);
532 } 542 }
533 543
534 for (std::vector<const Extension*>::iterator iter = 544 for (std::vector<const Extension*>::iterator iter =
535 unpacked_extensions.begin(); iter != unpacked_extensions.end(); ++iter) { 545 unpacked_extensions.begin(); iter != unpacked_extensions.end(); ++iter) {
536 extension_service_->ReloadExtension((*iter)->id()); 546 extension_service_->ReloadExtension((*iter)->id());
537 } 547 }
538 } 548 }
539 549
550 void ExtensionSettingsHandler::DoAuthenticate(const ListValue* args) {
551 ManagedUserService* service = ManagedUserServiceFactory::GetForProfile(
552 Profile::FromWebUI(web_ui()));
553 // TODO(akuegel): Show the managed user passphrase dialog for authentication.
554 service->SetElevated(true);
555 HandleRequestExtensionsData(NULL);
556 }
557
558 void ExtensionSettingsHandler::EndAuthentication(const ListValue* args) {
559 ManagedUserService* service = ManagedUserServiceFactory::GetForProfile(
560 Profile::FromWebUI(web_ui()));
561 service->SetElevated(false);
562 HandleRequestExtensionsData(NULL);
563 }
564
540 void ExtensionSettingsHandler::HandleRequestExtensionsData( 565 void ExtensionSettingsHandler::HandleRequestExtensionsData(
541 const ListValue* args) { 566 const ListValue* args) {
542 DictionaryValue results; 567 DictionaryValue results;
543 568
544 Profile* profile = Profile::FromWebUI(web_ui()); 569 Profile* profile = Profile::FromWebUI(web_ui());
545 570
546 // Add the extensions to the results structure. 571 // Add the extensions to the results structure.
547 ListValue *extensions_list = new ListValue(); 572 ListValue *extensions_list = new ListValue();
548 573
549 extensions::ExtensionWarningService* warnings = 574 extensions::ExtensionWarningService* warnings =
(...skipping 25 matching lines...) Expand all
575 extension != extensions->end(); ++extension) { 600 extension != extensions->end(); ++extension) {
576 if ((*extension)->ShouldDisplayInExtensionSettings()) { 601 if ((*extension)->ShouldDisplayInExtensionSettings()) {
577 extensions_list->Append(CreateExtensionDetailValue( 602 extensions_list->Append(CreateExtensionDetailValue(
578 *extension, 603 *extension,
579 empty_pages, // Terminated process has no active pages. 604 empty_pages, // Terminated process has no active pages.
580 warnings)); 605 warnings));
581 } 606 }
582 } 607 }
583 results.Set("extensions", extensions_list); 608 results.Set("extensions", extensions_list);
584 609
585 bool is_managed = 610 ManagedUserService* service =
586 ManagedUserServiceFactory::GetForProfile(profile)->ProfileIsManaged(); 611 ManagedUserServiceFactory::GetForProfile(profile);
612
613 bool is_managed = service->ProfileIsManaged();
614 bool is_elevated = service->IsElevated();
587 bool developer_mode = 615 bool developer_mode =
588 !is_managed && 616 (!is_managed || is_elevated) &&
589 profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode); 617 profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode);
590 results.SetBoolean("profileIsManaged", is_managed); 618 results.SetBoolean("profileIsManaged", is_managed);
619 results.SetBoolean("profileIsElevated", service->IsElevated());
591 results.SetBoolean("developerMode", developer_mode); 620 results.SetBoolean("developerMode", developer_mode);
592 621
593 // Check to see if we have any wiped out extensions. 622 // Check to see if we have any wiped out extensions.
594 ExtensionService* extension_service = 623 ExtensionService* extension_service =
595 extensions::ExtensionSystem::Get(profile)->extension_service(); 624 extensions::ExtensionSystem::Get(profile)->extension_service();
596 scoped_ptr<const ExtensionSet> wiped_out( 625 scoped_ptr<const ExtensionSet> wiped_out(
597 extension_service->GetWipedOutExtensions()); 626 extension_service->GetWipedOutExtensions());
598 results.SetBoolean("showDisabledExtensionsWarning", wiped_out->size() > 0); 627 results.SetBoolean("showDisabledExtensionsWarning", wiped_out->size() > 0);
599 628
600 bool load_unpacked_disabled = 629 bool load_unpacked_disabled =
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 std::vector<std::string> requirement_errors) { 1063 std::vector<std::string> requirement_errors) {
1035 if (requirement_errors.empty()) { 1064 if (requirement_errors.empty()) {
1036 extension_service_->EnableExtension(extension_id); 1065 extension_service_->EnableExtension(extension_id);
1037 } else { 1066 } else {
1038 ExtensionErrorReporter::GetInstance()->ReportError( 1067 ExtensionErrorReporter::GetInstance()->ReportError(
1039 UTF8ToUTF16(JoinString(requirement_errors, ' ')), 1068 UTF8ToUTF16(JoinString(requirement_errors, ' ')),
1040 true /* be noisy */); 1069 true /* be noisy */);
1041 } 1070 }
1042 requirements_checker_.reset(); 1071 requirements_checker_.reset();
1043 } 1072 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698