// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_UTILS_H_ #define CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_UTILS_H_ #include #include #include "chrome/common/content_settings.h" #include "chrome/common/content_settings_pattern.h" #include "chrome/common/content_settings_types.h" namespace base { class Value; } class GURL; class HostContentSettingsMap; namespace content_settings { class ProviderInterface; class RuleIterator; typedef std::pair PatternPair; std::string GetTypeName(ContentSettingsType type); // Converts |Value| to |ContentSetting|. ContentSetting ValueToContentSetting(const base::Value* value); // Converts a |Value| to a |ContentSetting|. Returns true if |value| encodes // a valid content setting, false otherwise. Note that |CONTENT_SETTING_DEFAULT| // is encoded as a NULL value, so it is not allowed as an integer value. bool ParseContentSettingValue(const base::Value* value, ContentSetting* setting); PatternPair ParsePatternString(const std::string& pattern_str); std::string CreatePatternString( const ContentSettingsPattern& item_pattern, const ContentSettingsPattern& top_level_frame_pattern); // Caller takes the ownership of the returned |base::Value*|. base::Value* GetContentSettingValueAndPatterns( RuleIterator* rule_iterator, const GURL& primary_url, const GURL& secondary_url, ContentSettingsPattern* primary_pattern, ContentSettingsPattern* secondary_pattern); base::Value* GetContentSettingValueAndPatterns( const ProviderInterface* provider, const GURL& primary_url, const GURL& secondary_url, ContentSettingsType content_type, const std::string& resource_identifier, bool include_incognito, ContentSettingsPattern* primary_pattern, ContentSettingsPattern* secondary_pattern); base::Value* GetContentSettingValue( const ProviderInterface* provider, const GURL& primary_url, const GURL& secondary_url, ContentSettingsType content_type, const std::string& resource_identifier, bool include_incognito); ContentSetting GetContentSetting( const ProviderInterface* provider, const GURL& primary_url, const GURL& secondary_url, ContentSettingsType content_type, const std::string& resource_identifier, bool include_incognito); // Populates |rules| with content setting rules for content types that are // handled by the renderer. void GetRendererContentSettingRules(const HostContentSettingsMap* map, RendererContentSettingRules* rules); } // namespace content_settings #endif // CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_UTILS_H_