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

Side by Side Diff: chrome/browser/ui/webui/plugins_ui.cc

Issue 10095029: Disable "always allowed" checkbox in chrome://plugins for disabled plug-ins. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 8 years, 8 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
« no previous file with comments | « chrome/browser/resources/plugins.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/plugins_ui.h" 5 #include "chrome/browser/ui/webui/plugins_ui.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 PluginService::GetInstance()->GetPluginGroups( 335 PluginService::GetInstance()->GetPluginGroups(
336 base::Bind(&PluginsDOMHandler::PluginsLoaded, 336 base::Bind(&PluginsDOMHandler::PluginsLoaded,
337 weak_ptr_factory_.GetWeakPtr(), plugin_finder)); 337 weak_ptr_factory_.GetWeakPtr(), plugin_finder));
338 } 338 }
339 339
340 void PluginsDOMHandler::PluginsLoaded(PluginFinder* plugin_finder, 340 void PluginsDOMHandler::PluginsLoaded(PluginFinder* plugin_finder,
341 const std::vector<PluginGroup>& groups) { 341 const std::vector<PluginGroup>& groups) {
342 Profile* profile = Profile::FromWebUI(web_ui()); 342 Profile* profile = Profile::FromWebUI(web_ui());
343 PluginPrefs* plugin_prefs = PluginPrefs::GetForProfile(profile); 343 PluginPrefs* plugin_prefs = PluginPrefs::GetForProfile(profile);
344 344
345 HostContentSettingsMap* map = profile->GetHostContentSettingsMap();
346 ContentSettingsPattern wildcard = ContentSettingsPattern::Wildcard(); 345 ContentSettingsPattern wildcard = ContentSettingsPattern::Wildcard();
347 346
348 // Construct DictionaryValues to return to the UI 347 // Construct DictionaryValues to return to the UI
349 ListValue* plugin_groups_data = new ListValue(); 348 ListValue* plugin_groups_data = new ListValue();
350 for (size_t i = 0; i < groups.size(); ++i) { 349 for (size_t i = 0; i < groups.size(); ++i) {
351 const PluginGroup& group = groups[i]; 350 const PluginGroup& group = groups[i];
352 if (group.IsEmpty()) 351 if (group.IsEmpty())
353 continue; 352 continue;
354 ListValue* plugin_files = new ListValue(); 353 ListValue* plugin_files = new ListValue();
355 string16 group_name = group.GetGroupName(); 354 string16 group_name = group.GetGroupName();
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 enabled_mode = "enabledByPolicy"; 440 enabled_mode = "enabledByPolicy";
442 } else if (all_plugins_disabled_by_policy) { 441 } else if (all_plugins_disabled_by_policy) {
443 enabled_mode = "disabledByPolicy"; 442 enabled_mode = "disabledByPolicy";
444 } else if (group_enabled) { 443 } else if (group_enabled) {
445 enabled_mode = "enabledByUser"; 444 enabled_mode = "enabledByUser";
446 } else { 445 } else {
447 enabled_mode = "disabledByUser"; 446 enabled_mode = "disabledByUser";
448 } 447 }
449 group_data->SetString("enabledMode", enabled_mode); 448 group_data->SetString("enabledMode", enabled_mode);
450 449
451 // TODO(bauerb): We should have a method on HostContentSettingsMap for this.
452 bool always_allowed = false; 450 bool always_allowed = false;
453 ContentSettingsForOneType settings; 451 if (group_enabled) {
454 map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_PLUGINS, 452 const DictionaryValue* whitelist = profile->GetPrefs()->GetDictionary(
455 group.identifier(), &settings); 453 prefs::kContentSettingsPluginWhitelist);
456 for (ContentSettingsForOneType::const_iterator it = settings.begin(); 454 whitelist->GetBoolean(group.identifier(), &always_allowed);
457 it != settings.end(); ++it) {
458 if (it->primary_pattern == wildcard &&
459 it->secondary_pattern == wildcard &&
460 it->setting == CONTENT_SETTING_ALLOW) {
461 always_allowed = true;
462 break;
463 }
464 } 455 }
465 group_data->SetBoolean("alwaysAllowed", always_allowed); 456 group_data->SetBoolean("alwaysAllowed", always_allowed);
466 457
467 plugin_groups_data->Append(group_data); 458 plugin_groups_data->Append(group_data);
468 } 459 }
469 DictionaryValue results; 460 DictionaryValue results;
470 results.Set("plugins", plugin_groups_data); 461 results.Set("plugins", plugin_groups_data);
471 web_ui()->CallJavascriptFunction("returnPluginsData", results); 462 web_ui()->CallJavascriptFunction("returnPluginsData", results);
472 } 463 }
473 464
(...skipping 24 matching lines...) Expand all
498 void PluginsUI::RegisterUserPrefs(PrefService* prefs) { 489 void PluginsUI::RegisterUserPrefs(PrefService* prefs) {
499 prefs->RegisterBooleanPref(prefs::kPluginsShowDetails, 490 prefs->RegisterBooleanPref(prefs::kPluginsShowDetails,
500 false, 491 false,
501 PrefService::UNSYNCABLE_PREF); 492 PrefService::UNSYNCABLE_PREF);
502 prefs->RegisterBooleanPref(prefs::kPluginsShowSetReaderDefaultInfobar, 493 prefs->RegisterBooleanPref(prefs::kPluginsShowSetReaderDefaultInfobar,
503 true, 494 true,
504 PrefService::UNSYNCABLE_PREF); 495 PrefService::UNSYNCABLE_PREF);
505 prefs->RegisterDictionaryPref(prefs::kContentSettingsPluginWhitelist, 496 prefs->RegisterDictionaryPref(prefs::kContentSettingsPluginWhitelist,
506 PrefService::SYNCABLE_PREF); 497 PrefService::SYNCABLE_PREF);
507 } 498 }
OLDNEW
« no previous file with comments | « chrome/browser/resources/plugins.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698