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

Side by Side Diff: chrome/browser/ui/webui/options2/content_settings_handler2.cc

Issue 10537099: add "always allow" option to the mediastream infobar and allow user to allow/not allow acces to devi (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use only content settings, added a device controller, addressed all the comments Created 8 years, 6 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/options2/content_settings_handler2.h" 5 #include "chrome/browser/ui/webui/options2/content_settings_handler2.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 {CONTENT_SETTINGS_TYPE_IMAGES, "images"}, 73 {CONTENT_SETTINGS_TYPE_IMAGES, "images"},
74 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript"}, 74 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript"},
75 {CONTENT_SETTINGS_TYPE_PLUGINS, "plugins"}, 75 {CONTENT_SETTINGS_TYPE_PLUGINS, "plugins"},
76 {CONTENT_SETTINGS_TYPE_POPUPS, "popups"}, 76 {CONTENT_SETTINGS_TYPE_POPUPS, "popups"},
77 {CONTENT_SETTINGS_TYPE_GEOLOCATION, "location"}, 77 {CONTENT_SETTINGS_TYPE_GEOLOCATION, "location"},
78 {CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications"}, 78 {CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications"},
79 {CONTENT_SETTINGS_TYPE_INTENTS, "intents"}, 79 {CONTENT_SETTINGS_TYPE_INTENTS, "intents"},
80 {CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, "auto-select-certificate"}, 80 {CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, "auto-select-certificate"},
81 {CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen"}, 81 {CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen"},
82 {CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock"}, 82 {CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock"},
83 {CONTENT_SETTINGS_TYPE_MEDIASTREAM, "mediastream"},
83 }; 84 };
84 COMPILE_ASSERT(arraysize(kContentSettingsTypeGroupNames) == 85 COMPILE_ASSERT(arraysize(kContentSettingsTypeGroupNames) ==
85 CONTENT_SETTINGS_NUM_TYPES, 86 CONTENT_SETTINGS_NUM_TYPES,
86 MISSING_CONTENT_SETTINGS_TYPE); 87 MISSING_CONTENT_SETTINGS_TYPE);
87 88
88 ContentSettingsType ContentSettingsTypeFromGroupName(const std::string& name) { 89 ContentSettingsType ContentSettingsTypeFromGroupName(const std::string& name) {
89 for (size_t i = 0; i < arraysize(kContentSettingsTypeGroupNames); ++i) { 90 for (size_t i = 0; i < arraysize(kContentSettingsTypeGroupNames); ++i) {
90 if (name == kContentSettingsTypeGroupNames[i].name) 91 if (name == kContentSettingsTypeGroupNames[i].name)
91 return kContentSettingsTypeGroupNames[i].type; 92 return kContentSettingsTypeGroupNames[i].type;
92 } 93 }
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 ContentSetting setting, 191 ContentSetting setting,
191 const std::string& provider_name) { 192 const std::string& provider_name) {
192 DictionaryValue* exception = new DictionaryValue(); 193 DictionaryValue* exception = new DictionaryValue();
193 exception->SetString(kDisplayPattern, pattern.ToString()); 194 exception->SetString(kDisplayPattern, pattern.ToString());
194 exception->SetString(kSetting, ContentSettingToString(setting)); 195 exception->SetString(kSetting, ContentSettingToString(setting));
195 exception->SetString(kOrigin, pattern.ToString()); 196 exception->SetString(kOrigin, pattern.ToString());
196 exception->SetString(kSource, provider_name); 197 exception->SetString(kSource, provider_name);
197 return exception; 198 return exception;
198 } 199 }
199 200
201 // Create a DictionaryValue* that will act as a data source for a single row
202 // in the mediastream exceptions table. Ownership of the pointer is
203 // passed to the caller.
204 DictionaryValue* GetMediaStreamExceptionForPage(
205 const ContentSettingsPattern& pattern) {
206 DictionaryValue* exception = new DictionaryValue();
207 exception->SetString(kDisplayPattern, pattern.ToString());
208 exception->SetString(kSetting, ContentSettingToString(CONTENT_SETTING_ALLOW));
209 exception->SetString(kOrigin, pattern.ToString());
210 exception->SetString(kSource, std::string());
211 return exception;
212 }
213
200 // Add an "Allow"-entry to the list of |exceptions| for a |url_pattern| from 214 // Add an "Allow"-entry to the list of |exceptions| for a |url_pattern| from
201 // the web extent of a hosted |app|. 215 // the web extent of a hosted |app|.
202 void AddExceptionForHostedApp(const std::string& url_pattern, 216 void AddExceptionForHostedApp(const std::string& url_pattern,
203 const extensions::Extension& app, ListValue* exceptions) { 217 const extensions::Extension& app, ListValue* exceptions) {
204 DictionaryValue* exception = new DictionaryValue(); 218 DictionaryValue* exception = new DictionaryValue();
205 exception->SetString(kDisplayPattern, url_pattern); 219 exception->SetString(kDisplayPattern, url_pattern);
206 exception->SetString(kSetting, ContentSettingToString(CONTENT_SETTING_ALLOW)); 220 exception->SetString(kSetting, ContentSettingToString(CONTENT_SETTING_ALLOW));
207 exception->SetString(kOrigin, url_pattern); 221 exception->SetString(kOrigin, url_pattern);
208 exception->SetString(kEmbeddingOrigin, url_pattern); 222 exception->SetString(kEmbeddingOrigin, url_pattern);
209 exception->SetString(kSource, "HostedApp"); 223 exception->SetString(kSource, "HostedApp");
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 { "mouselock_header", IDS_MOUSE_LOCK_HEADER }, 341 { "mouselock_header", IDS_MOUSE_LOCK_HEADER },
328 { "mouselock_allow", IDS_MOUSE_LOCK_ALLOW_RADIO }, 342 { "mouselock_allow", IDS_MOUSE_LOCK_ALLOW_RADIO },
329 { "mouselock_ask", IDS_MOUSE_LOCK_ASK_RADIO }, 343 { "mouselock_ask", IDS_MOUSE_LOCK_ASK_RADIO },
330 { "mouselock_block", IDS_MOUSE_LOCK_BLOCK_RADIO }, 344 { "mouselock_block", IDS_MOUSE_LOCK_BLOCK_RADIO },
331 #if defined(OS_CHROMEOS) 345 #if defined(OS_CHROMEOS)
332 // Protected Content filter 346 // Protected Content filter
333 { "protectedContentTabLabel", IDS_PROTECTED_CONTENT_TAB_LABEL }, 347 { "protectedContentTabLabel", IDS_PROTECTED_CONTENT_TAB_LABEL },
334 { "protectedContentInfo", IDS_PROTECTED_CONTENT_INFO }, 348 { "protectedContentInfo", IDS_PROTECTED_CONTENT_INFO },
335 { "protectedContentEnable", IDS_PROTECTED_CONTENT_ENABLE}, 349 { "protectedContentEnable", IDS_PROTECTED_CONTENT_ENABLE},
336 #endif // defined(OS_CHROMEOS) 350 #endif // defined(OS_CHROMEOS)
351 // Media stream capture device filter.
352 { "mediastream_tab_label", IDS_MEDIA_STREAM_TAB_LABEL },
353 { "mediastream_header", IDS_MEDIA_STREAM_HEADER },
354 { "mediastream_ask", IDS_MEDIA_STREAM_ASK_RADIO },
355 { "mediastream_block", IDS_MEDIA_STREAM_BLOCK_RADIO },
337 }; 356 };
338 357
339 RegisterStrings(localized_strings, resources, arraysize(resources)); 358 RegisterStrings(localized_strings, resources, arraysize(resources));
340 RegisterTitle(localized_strings, "contentSettingsPage", 359 RegisterTitle(localized_strings, "contentSettingsPage",
341 IDS_CONTENT_SETTINGS_TITLE); 360 IDS_CONTENT_SETTINGS_TITLE);
342 361
343 // Register titles for each of the individual settings whose exception 362 // Register titles for each of the individual settings whose exception
344 // dialogs will be processed by |ContentSettingsHandler|. 363 // dialogs will be processed by |ContentSettingsHandler|.
345 RegisterTitle(localized_strings, "cookies", 364 RegisterTitle(localized_strings, "cookies",
346 IDS_COOKIES_TAB_LABEL); 365 IDS_COOKIES_TAB_LABEL);
347 RegisterTitle(localized_strings, "images", 366 RegisterTitle(localized_strings, "images",
348 IDS_IMAGES_TAB_LABEL); 367 IDS_IMAGES_TAB_LABEL);
349 RegisterTitle(localized_strings, "javascript", 368 RegisterTitle(localized_strings, "javascript",
350 IDS_JAVASCRIPT_TAB_LABEL); 369 IDS_JAVASCRIPT_TAB_LABEL);
351 RegisterTitle(localized_strings, "plugins", 370 RegisterTitle(localized_strings, "plugins",
352 IDS_PLUGIN_TAB_LABEL); 371 IDS_PLUGIN_TAB_LABEL);
353 RegisterTitle(localized_strings, "popups", 372 RegisterTitle(localized_strings, "popups",
354 IDS_POPUP_TAB_LABEL); 373 IDS_POPUP_TAB_LABEL);
355 RegisterTitle(localized_strings, "location", 374 RegisterTitle(localized_strings, "location",
356 IDS_GEOLOCATION_TAB_LABEL); 375 IDS_GEOLOCATION_TAB_LABEL);
357 RegisterTitle(localized_strings, "notifications", 376 RegisterTitle(localized_strings, "notifications",
358 IDS_NOTIFICATIONS_TAB_LABEL); 377 IDS_NOTIFICATIONS_TAB_LABEL);
359 RegisterTitle(localized_strings, "fullscreen", 378 RegisterTitle(localized_strings, "fullscreen",
360 IDS_FULLSCREEN_TAB_LABEL); 379 IDS_FULLSCREEN_TAB_LABEL);
361 RegisterTitle(localized_strings, "mouselock", 380 RegisterTitle(localized_strings, "mouselock",
362 IDS_MOUSE_LOCK_TAB_LABEL); 381 IDS_MOUSE_LOCK_TAB_LABEL);
382 RegisterTitle(localized_strings, "mediastream",
383 IDS_MEDIA_STREAM_TAB_LABEL);
363 384
364 Profile* profile = Profile::FromWebUI(web_ui()); 385 Profile* profile = Profile::FromWebUI(web_ui());
365 localized_strings->SetBoolean( 386 localized_strings->SetBoolean(
366 "enable_web_intents", 387 "enable_web_intents",
367 web_intents::IsWebIntentsEnabledForProfile(profile)); 388 web_intents::IsWebIntentsEnabledForProfile(profile));
368 // TODO(marja): clean up the options UI after the decision on the session 389 // TODO(marja): clean up the options UI after the decision on the session
369 // restore changes has stabilized. 390 // restore changes has stabilized.
370 localized_strings->SetBoolean( 391 localized_strings->SetBoolean(
371 "enable_restore_session_state", false); 392 "enable_restore_session_state", false);
372 } 393 }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 if (type == CONTENT_SETTINGS_TYPE_INTENTS) 550 if (type == CONTENT_SETTINGS_TYPE_INTENTS)
530 return; 551 return;
531 552
532 switch (type) { 553 switch (type) {
533 case CONTENT_SETTINGS_TYPE_GEOLOCATION: 554 case CONTENT_SETTINGS_TYPE_GEOLOCATION:
534 UpdateGeolocationExceptionsView(); 555 UpdateGeolocationExceptionsView();
535 break; 556 break;
536 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: 557 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
537 UpdateNotificationExceptionsView(); 558 UpdateNotificationExceptionsView();
538 break; 559 break;
560 case CONTENT_SETTINGS_TYPE_MEDIASTREAM:
561 UpdateMediaStreamExceptionsView();
562 break;
539 default: 563 default:
540 UpdateExceptionsViewFromHostContentSettingsMap(type); 564 UpdateExceptionsViewFromHostContentSettingsMap(type);
541 break; 565 break;
542 } 566 }
543 } 567 }
544 568
545 void ContentSettingsHandler::UpdateOTRExceptionsViewFromModel( 569 void ContentSettingsHandler::UpdateOTRExceptionsViewFromModel(
546 ContentSettingsType type) { 570 ContentSettingsType type) {
547 switch (type) { 571 switch (type) {
548 case CONTENT_SETTINGS_TYPE_GEOLOCATION: 572 case CONTENT_SETTINGS_TYPE_GEOLOCATION:
549 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: 573 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
550 case CONTENT_SETTINGS_TYPE_INTENTS: 574 case CONTENT_SETTINGS_TYPE_INTENTS:
551 case CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE: 575 case CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE:
576 case CONTENT_SETTINGS_TYPE_MEDIASTREAM:
577 // TODO(xians): Add MediaStream support to OTRExceptionsView.
552 break; 578 break;
553 default: 579 default:
554 UpdateExceptionsViewFromOTRHostContentSettingsMap(type); 580 UpdateExceptionsViewFromOTRHostContentSettingsMap(type);
555 break; 581 break;
556 } 582 }
557 } 583 }
558 584
559 void ContentSettingsHandler::UpdateGeolocationExceptionsView() { 585 void ContentSettingsHandler::UpdateGeolocationExceptionsView() {
560 Profile* profile = Profile::FromWebUI(web_ui()); 586 Profile* profile = Profile::FromWebUI(web_ui());
561 HostContentSettingsMap* map = profile->GetHostContentSettingsMap(); 587 HostContentSettingsMap* map = profile->GetHostContentSettingsMap();
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 StringValue type_string( 682 StringValue type_string(
657 ContentSettingsTypeToGroupName(CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 683 ContentSettingsTypeToGroupName(CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
658 web_ui()->CallJavascriptFunction("ContentSettings.setExceptions", 684 web_ui()->CallJavascriptFunction("ContentSettings.setExceptions",
659 type_string, exceptions); 685 type_string, exceptions);
660 686
661 // This is mainly here to keep this function ideologically parallel to 687 // This is mainly here to keep this function ideologically parallel to
662 // UpdateExceptionsViewFromHostContentSettingsMap(). 688 // UpdateExceptionsViewFromHostContentSettingsMap().
663 UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 689 UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
664 } 690 }
665 691
692 void ContentSettingsHandler::UpdateMediaStreamExceptionsView() {
693 ContentSettingsForOneType entries;
694 GetContentSettingsMap()->GetSettingsForOneType(
695 CONTENT_SETTINGS_TYPE_MEDIASTREAM, "", &entries);
696
697 ListValue exceptions;
698 for (size_t i = 0; i < entries.size(); ++i) {
699 // Don't add default settings.
700 if (entries[i].primary_pattern == ContentSettingsPattern::Wildcard() &&
701 entries[i].secondary_pattern == ContentSettingsPattern::Wildcard() &&
702 entries[i].source != "preference") {
703 continue;
704 }
705
706 exceptions.Append(
707 GetMediaStreamExceptionForPage(entries[i].primary_pattern));
708 }
709
710 StringValue type_string(ContentSettingsTypeToGroupName(
711 CONTENT_SETTINGS_TYPE_MEDIASTREAM));
712 web_ui()->CallJavascriptFunction("ContentSettings.setExceptions", type_string,
713 exceptions);
714
715 // This is mainly here to keep this function ideologically parallel to
716 // UpdateExceptionsViewFromHostContentSettingsMap().
717 UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_MEDIASTREAM);
718 }
719
666 void ContentSettingsHandler::UpdateExceptionsViewFromHostContentSettingsMap( 720 void ContentSettingsHandler::UpdateExceptionsViewFromHostContentSettingsMap(
667 ContentSettingsType type) { 721 ContentSettingsType type) {
668 ContentSettingsForOneType entries; 722 ContentSettingsForOneType entries;
669 GetContentSettingsMap()->GetSettingsForOneType(type, "", &entries); 723 GetContentSettingsMap()->GetSettingsForOneType(type, "", &entries);
670 724
671 ListValue exceptions; 725 ListValue exceptions;
672 for (size_t i = 0; i < entries.size(); ++i) { 726 for (size_t i = 0; i < entries.size(); ++i) {
673 // Skip default settings from extensions and policy, and the default content 727 // Skip default settings from extensions and policy, and the default content
674 // settings; all of them will affect the default setting UI. 728 // settings; all of them will affect the default setting UI.
675 if (entries[i].primary_pattern == ContentSettingsPattern::Wildcard() && 729 if (entries[i].primary_pattern == ContentSettingsPattern::Wildcard() &&
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 UserMetricsAction("Options_DefaultGeolocationSettingChanged")); 904 UserMetricsAction("Options_DefaultGeolocationSettingChanged"));
851 break; 905 break;
852 case CONTENT_SETTINGS_TYPE_INTENTS: 906 case CONTENT_SETTINGS_TYPE_INTENTS:
853 content::RecordAction( 907 content::RecordAction(
854 UserMetricsAction("Options_DefaultHandlersSettingChanged")); 908 UserMetricsAction("Options_DefaultHandlersSettingChanged"));
855 break; 909 break;
856 case CONTENT_SETTINGS_TYPE_MOUSELOCK: 910 case CONTENT_SETTINGS_TYPE_MOUSELOCK:
857 content::RecordAction( 911 content::RecordAction(
858 UserMetricsAction("Options_DefaultMouseLockSettingChanged")); 912 UserMetricsAction("Options_DefaultMouseLockSettingChanged"));
859 break; 913 break;
914 case CONTENT_SETTINGS_TYPE_MEDIASTREAM:
915 content::RecordAction(
916 UserMetricsAction("Options_DefaultMediaStreamSettingChanged"));
917 break;
860 default: 918 default:
861 break; 919 break;
862 } 920 }
863 } 921 }
864 922
865 void ContentSettingsHandler::RemoveException(const ListValue* args) { 923 void ContentSettingsHandler::RemoveException(const ListValue* args) {
866 size_t arg_i = 0; 924 size_t arg_i = 0;
867 std::string type_string; 925 std::string type_string;
868 CHECK(args->GetString(arg_i++, &type_string)); 926 CHECK(args->GetString(arg_i++, &type_string));
869 927
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 std::string pattern; 962 std::string pattern;
905 rv = args->GetString(arg_i++, &pattern); 963 rv = args->GetString(arg_i++, &pattern);
906 DCHECK(rv); 964 DCHECK(rv);
907 965
908 HostContentSettingsMap* settings_map = 966 HostContentSettingsMap* settings_map =
909 mode == "normal" ? GetContentSettingsMap() : 967 mode == "normal" ? GetContentSettingsMap() :
910 GetOTRContentSettingsMap(); 968 GetOTRContentSettingsMap();
911 // The settings map could be null if the mode was OTR but the OTR profile 969 // The settings map could be null if the mode was OTR but the OTR profile
912 // got destroyed before we received this message. 970 // got destroyed before we received this message.
913 if (settings_map) { 971 if (settings_map) {
914 settings_map->SetContentSetting( 972 // MediaStream is using compound value, so we need to use
915 ContentSettingsPattern::FromString(pattern), 973 // SetWebsiteSetting instead of SetContentSetting.
916 ContentSettingsPattern::Wildcard(), 974 if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM) {
917 ContentSettingsTypeFromGroupName(type_string), 975 settings_map->SetWebsiteSetting(
918 "", 976 ContentSettingsPattern::FromString(pattern),
919 CONTENT_SETTING_DEFAULT); 977 ContentSettingsPattern::Wildcard(),
978 ContentSettingsTypeFromGroupName(type_string),
979 "",
980 NULL);
981 } else {
982 settings_map->SetContentSetting(
983 ContentSettingsPattern::FromString(pattern),
984 ContentSettingsPattern::Wildcard(),
985 ContentSettingsTypeFromGroupName(type_string),
986 "",
987 CONTENT_SETTING_DEFAULT);
988 }
920 } 989 }
921 } 990 }
922 } 991 }
923 992
924 void ContentSettingsHandler::SetException(const ListValue* args) { 993 void ContentSettingsHandler::SetException(const ListValue* args) {
925 size_t arg_i = 0; 994 size_t arg_i = 0;
926 std::string type_string; 995 std::string type_string;
927 CHECK(args->GetString(arg_i++, &type_string)); 996 CHECK(args->GetString(arg_i++, &type_string));
928 std::string mode; 997 std::string mode;
929 CHECK(args->GetString(arg_i++, &mode)); 998 CHECK(args->GetString(arg_i++, &mode));
930 std::string pattern; 999 std::string pattern;
931 CHECK(args->GetString(arg_i++, &pattern)); 1000 CHECK(args->GetString(arg_i++, &pattern));
932 std::string setting; 1001 std::string setting;
933 CHECK(args->GetString(arg_i++, &setting)); 1002 CHECK(args->GetString(arg_i++, &setting));
934 1003
935 ContentSettingsType type = ContentSettingsTypeFromGroupName(type_string); 1004 ContentSettingsType type = ContentSettingsTypeFromGroupName(type_string);
936 if (type == CONTENT_SETTINGS_TYPE_GEOLOCATION || 1005 if (type == CONTENT_SETTINGS_TYPE_GEOLOCATION ||
937 type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) { 1006 type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS ||
1007 type == CONTENT_SETTINGS_TYPE_MEDIASTREAM) {
938 NOTREACHED(); 1008 NOTREACHED();
939 return; 1009 return;
940 } 1010 }
941 1011
942 HostContentSettingsMap* settings_map = 1012 HostContentSettingsMap* settings_map =
943 mode == "normal" ? GetContentSettingsMap() : 1013 mode == "normal" ? GetContentSettingsMap() :
944 GetOTRContentSettingsMap(); 1014 GetOTRContentSettingsMap();
945 1015
946 // The settings map could be null if the mode was OTR but the OTR profile 1016 // The settings map could be null if the mode was OTR but the OTR profile
947 // got destroyed before we received this message. 1017 // got destroyed before we received this message.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 1071
1002 HostContentSettingsMap* 1072 HostContentSettingsMap*
1003 ContentSettingsHandler::GetOTRContentSettingsMap() { 1073 ContentSettingsHandler::GetOTRContentSettingsMap() {
1004 Profile* profile = Profile::FromWebUI(web_ui()); 1074 Profile* profile = Profile::FromWebUI(web_ui());
1005 if (profile->HasOffTheRecordProfile()) 1075 if (profile->HasOffTheRecordProfile())
1006 return profile->GetOffTheRecordProfile()->GetHostContentSettingsMap(); 1076 return profile->GetOffTheRecordProfile()->GetHostContentSettingsMap();
1007 return NULL; 1077 return NULL;
1008 } 1078 }
1009 1079
1010 } // namespace options2 1080 } // namespace options2
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698