• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_COMMON_CONTENT_SETTINGS_H_
6 #define CHROME_COMMON_CONTENT_SETTINGS_H_
7 #pragma once
8 
9 #include "chrome/common/content_settings_types.h"
10 
11 // Different settings that can be assigned for a particular content type.  We
12 // give the user the ability to set these on a global and per-host basis.
13 enum ContentSetting {
14   CONTENT_SETTING_DEFAULT = 0,
15   CONTENT_SETTING_ALLOW,
16   CONTENT_SETTING_BLOCK,
17   CONTENT_SETTING_ASK,
18   CONTENT_SETTING_SESSION_ONLY,
19   CONTENT_SETTING_NUM_SETTINGS
20 };
21 
22 // Range-checked conversion of an int to a ContentSetting, for use when reading
23 // prefs off disk.
24 ContentSetting IntToContentSetting(int content_setting);
25 
26 // Aggregates the permissions for the different content types.
27 struct ContentSettings {
ContentSettingsContentSettings28   ContentSettings() {
29     for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i)
30       settings[i] = CONTENT_SETTING_DEFAULT;
31   }
32 
ContentSettingsContentSettings33   explicit ContentSettings(ContentSetting default_setting) {
34     for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i)
35       settings[i] = default_setting;
36   }
37 
38   ContentSetting settings[CONTENT_SETTINGS_NUM_TYPES];
39 };
40 
41 #endif  // CHROME_COMMON_CONTENT_SETTINGS_H_
42