content_settings_handler.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_CONTENT_SETTINGS_HANDLER_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CONTENT_SETTINGS_HANDLER_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_change_registrar.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/pepper_flash_settings_manager.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/webui/options/options_ui.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/webui/options/pepper_flash_content_settings_utils.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/content_settings.h" 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "components/content_settings/core/common/content_settings_types.h" 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "content/public/browser/host_zoom_map.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/notification_observer.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/notification_registrar.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HostContentSettingsMap; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ProtocolHandlerRegistry; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace options { 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ContentSettingsHandler : public OptionsPageUIHandler, 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public content::NotificationObserver, 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public PepperFlashSettingsManager::Client { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentSettingsHandler(); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~ContentSettingsHandler(); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // OptionsPageUIHandler implementation. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetLocalizedValues( 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::DictionaryValue* localized_strings) OVERRIDE; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void InitializeHandler() OVERRIDE; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void InitializePage() OVERRIDE; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RegisterMessages() OVERRIDE; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // content::NotificationObserver implementation. 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Observe(int type, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const content::NotificationSource& source, 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const content::NotificationDetails& details) OVERRIDE; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // PepperFlashSettingsManager::Client implementation. 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnGetPermissionSettingsCompleted( 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32 request_id, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool success, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Flash_BrowserOperations_Permission default_permission, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ppapi::FlashSiteSettings& sites) OVERRIDE; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets a string identifier for the group name, for use in HTML. 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static std::string ContentSettingsTypeToGroupName(ContentSettingsType type); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Used to determine whether we should show links to Flash camera and 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // microphone settings. 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct MediaSettingsInfo { 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaSettingsInfo(); 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ~MediaSettingsInfo(); 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Cached Pepper Flash settings. 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ContentSetting flash_default_setting; 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaExceptions flash_exceptions; 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool flash_settings_initialized; 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t last_flash_refresh_request_id; 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Whether the links to Flash settings pages are showed. 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool show_flash_default_link; 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool show_flash_exceptions_link; 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Cached Chrome media settings. 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ContentSetting default_setting; 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool policy_disable_audio; 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool policy_disable_video; 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool default_setting_initialized; 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaExceptions exceptions; 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool exceptions_initialized; 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Used by ShowFlashMediaLink() to specify which link to show/hide. 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) enum LinkType { 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DEFAULT_SETTING = 0, 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXCEPTIONS, 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Functions that call into the page ----------------------------------------- 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Updates the page with the default settings (allow, ask, block, etc.) 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void UpdateSettingDefaultFromModel(ContentSettingsType type); 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Updates the media radio buttons according to the enabled split prefs. 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void UpdateMediaSettingsView(); 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Clobbers and rebuilds the specific content setting type exceptions table. 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void UpdateExceptionsViewFromModel(ContentSettingsType type); 9723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Clobbers and rebuilds the specific content setting type exceptions 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // OTR table. 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void UpdateOTRExceptionsViewFromModel(ContentSettingsType type); 10123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Clobbers and rebuilds all the exceptions tables in the page (both normal 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and OTR tables). 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateAllExceptionsViewsFromModel(); 10523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // As above, but only OTR tables. 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateAllOTRExceptionsViewsFromModel(); 10823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Clobbers and rebuilds just the geolocation exception table. 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateGeolocationExceptionsView(); 11123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Clobbers and rebuilds just the desktop notification exception table. 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateNotificationExceptionsView(); 11423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Clobbers and rebuilds just the Media device exception table. 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void UpdateMediaExceptionsView(); 11723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 118a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // Clobbers and rebuilds just the MIDI SysEx exception table. 119a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) void UpdateMIDISysExExceptionsView(); 12023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 12123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Clobbers and rebuilds just the zoom levels exception table. 12223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) void UpdateZoomLevelsExceptionsView(); 12323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Clobbers and rebuilds an exception table that's managed by the host content 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // settings map. 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateExceptionsViewFromHostContentSettingsMap(ContentSettingsType type); 12723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // As above, but acts on the OTR table for the content setting type. 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateExceptionsViewFromOTRHostContentSettingsMap( 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentSettingsType type); 13123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Updates the radio buttons for enabling / disabling handlers. 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateHandlersEnabledRadios(); 13423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 13523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Removes one geolocation exception. |args| contains the parameters passed to 13623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // RemoveException(). 13723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) void RemoveGeolocationException(const base::ListValue* args); 13823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 13923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Removes one notification exception. |args| contains the parameters passed 14023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // to RemoveException(). 14123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) void RemoveNotificationException(const base::ListValue* args); 14223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 14323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Removes one media camera and microphone exception. |args| contains the 14423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // parameters passed to RemoveException(). 14523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) void RemoveMediaException(const base::ListValue* args); 14623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 14723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Removes one exception of |type| from the host content settings map. |args| 14823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // contains the parameters passed to RemoveException(). 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RemoveExceptionFromHostContentSettingsMap( 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::ListValue* args, 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ContentSettingsType type); 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Removes one zoom level exception. |args| contains the parameters passed to 15423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // RemoveException(). 15523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) void RemoveZoomLevelException(const base::ListValue* args); 15623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Callbacks used by the page ------------------------------------------------ 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sets the default value for a specific content type. |args| includes the 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // content type and a string describing the new default the user has 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // chosen. 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetContentFilter(const base::ListValue* args); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Removes the given row from the table. The first entry in |args| is the 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // content type, and the rest of the arguments depend on the content type 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to be removed. 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RemoveException(const base::ListValue* args); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Changes the value of an exception. Called after the user is done editing an 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // exception. 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetException(const base::ListValue* args); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called to decide whether a given pattern is valid, or if it should be 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // rejected. Called while the user is editing an exception pattern. 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CheckExceptionPatternValidity(const base::ListValue* args); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Utility functions --------------------------------------------------------- 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Applies content settings whitelists to reduce breakage / user confusion. 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ApplyWhitelist(ContentSettingsType content_type, 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentSetting default_setting); 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the HostContentSettingsMap for the normal profile. 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostContentSettingsMap* GetContentSettingsMap(); 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the HostContentSettingsMap for the incognito profile, or NULL if there 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is no active incognito session. 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostContentSettingsMap* GetOTRContentSettingsMap(); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the default setting in string form. If |provider_id| is not NULL, the 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // id of the provider which provided the default setting is assigned to it. 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string GetSettingDefaultFromModel(ContentSettingsType type, 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* provider_id); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the ProtocolHandlerRegistry for the normal profile. 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProtocolHandlerRegistry* GetProtocolHandlerRegistry(); 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void RefreshFlashMediaSettings(); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Fills in |exceptions| with Values for the given |type| from |map|. 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void GetExceptionsFromHostContentSettingsMap( 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const HostContentSettingsMap* map, 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentSettingsType type, 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::ListValue* exceptions); 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnPepperFlashPrefChanged(); 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // content::HostZoomMap subscription. 20923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) void OnZoomLevelChanged(const content::HostZoomMap::ZoomLevelChange& change); 21023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void ShowFlashMediaLink(LinkType link_type, bool show); 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void UpdateFlashMediaLinksVisibility(); 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void UpdateProtectedContentExceptionsButton(); 216a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Member variables --------------------------------------------------------- 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::NotificationRegistrar notification_registrar_; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PrefChangeRegistrar pref_change_registrar_; 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<PepperFlashSettingsManager> flash_settings_manager_; 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaSettingsInfo media_settings_; 22323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) scoped_ptr<content::HostZoomMap::Subscription> host_zoom_map_subscription_; 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ContentSettingsHandler); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace options 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_CONTENT_SETTINGS_HANDLER_H_ 231