Index: components/content_settings/core/common/content_settings.cc |
diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc |
index 4bee639d58c4ec76e828b0e741793b3c598691ed..c2dcf6707bc239138d649be09ee01ab1b0e77ba9 100644 |
--- a/components/content_settings/core/common/content_settings.cc |
+++ b/components/content_settings/core/common/content_settings.cc |
@@ -9,6 +9,7 @@ |
#include "base/macros.h" |
#include "base/stl_util.h" |
#include "build/build_config.h" |
+#include "components/content_settings/core/common/content_settings_utils.h" |
ContentSetting IntToContentSetting(int content_setting) { |
return ((content_setting < 0) || |
@@ -78,21 +79,43 @@ int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting, |
ContentSettingPatternSource::ContentSettingPatternSource( |
const ContentSettingsPattern& primary_pattern, |
const ContentSettingsPattern& secondary_pattern, |
- ContentSetting setting, |
+ std::unique_ptr<base::Value> setting_value, |
const std::string& source, |
bool incognito) |
: primary_pattern(primary_pattern), |
secondary_pattern(secondary_pattern), |
- setting(setting), |
+ setting_value(std::move(setting_value)), |
source(source), |
incognito(incognito) {} |
-ContentSettingPatternSource::ContentSettingPatternSource() |
- : setting(CONTENT_SETTING_DEFAULT), incognito(false) { |
-} |
+ContentSettingPatternSource::ContentSettingPatternSource() : incognito(false) {} |
ContentSettingPatternSource::ContentSettingPatternSource( |
- const ContentSettingPatternSource& other) = default; |
+ const ContentSettingPatternSource& other) { |
+ primary_pattern = other.primary_pattern; |
+ secondary_pattern = other.secondary_pattern; |
+ if (other.setting_value) |
+ setting_value = base::MakeUnique<base::Value>(*(other.setting_value)); |
+ source = other.source; |
+ incognito = other.incognito; |
raymes
2017/06/28 01:15:43
nit: I think we can reuse code here by just callin
tbansal1
2017/06/28 14:16:40
Done.
|
+} |
+ |
+ContentSettingPatternSource& ContentSettingPatternSource::operator=( |
+ const ContentSettingPatternSource& other) { |
+ primary_pattern = other.primary_pattern; |
+ secondary_pattern = other.secondary_pattern; |
+ if (other.setting_value) |
+ setting_value = base::MakeUnique<base::Value>(*(other.setting_value)); |
+ source = other.source; |
+ incognito = other.incognito; |
+ return *this; |
+} |
+ |
+ContentSettingPatternSource::~ContentSettingPatternSource() {} |
+ |
+ContentSetting ContentSettingPatternSource::GetContentSetting() const { |
+ return content_settings::ValueToContentSetting(setting_value.get()); |
+} |
RendererContentSettingRules::RendererContentSettingRules() {} |