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

Unified Diff: components/content_settings/core/common/content_settings_struct_traits.h

Issue 2582203003: Convert SetContentSettingRules to use mojo, part 1/2. (Closed)
Patch Set: Convert SetContentSettingRules to use mojo, part 1/2. Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: components/content_settings/core/common/content_settings_struct_traits.h
diff --git a/components/content_settings/core/common/content_settings_struct_traits.h b/components/content_settings/core/common/content_settings_struct_traits.h
new file mode 100644
index 0000000000000000000000000000000000000000..10c78efeafd5152271019e57a6742e9adc1332be
--- /dev/null
+++ b/components/content_settings/core/common/content_settings_struct_traits.h
@@ -0,0 +1,142 @@
+// Copyright 2016 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 COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_STRUCT_TRAITS_H
+#define COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_STRUCT_TRAITS_H
+
+#include <string>
+
+#include "components/content_settings/core/common/content_settings.h"
+#include "components/content_settings/core/common/content_settings.mojom.h"
+#include "mojo/public/cpp/bindings/enum_traits.h"
+#include "mojo/public/cpp/bindings/struct_traits.h"
+
+namespace mojo {
+
+template <>
+struct StructTraits<content_settings::mojom::PatternPartsDataView,
+ ContentSettingsPattern::PatternParts> {
+ static const std::string& scheme(
+ const ContentSettingsPattern::PatternParts& r) {
+ return r.scheme;
+ }
+
+ static bool is_scheme_wildcard(
+ const ContentSettingsPattern::PatternParts& r) {
+ return r.is_scheme_wildcard;
+ }
+
+ static const std::string& host(
+ const ContentSettingsPattern::PatternParts& r) {
+ return r.host;
+ }
+
+ static bool has_domain_wildcard(
+ const ContentSettingsPattern::PatternParts& r) {
+ return r.has_domain_wildcard;
+ }
+
+ static const std::string& port(
+ const ContentSettingsPattern::PatternParts& r) {
+ return r.port;
+ }
+
+ static bool is_port_wildcard(const ContentSettingsPattern::PatternParts& r) {
+ return r.is_port_wildcard;
+ }
+
+ static const std::string& path(
+ const ContentSettingsPattern::PatternParts& r) {
+ return r.path;
+ }
+
+ static bool is_path_wildcard(const ContentSettingsPattern::PatternParts& r) {
+ return r.is_path_wildcard;
+ }
+
+ static bool Read(content_settings::mojom::PatternPartsDataView data,
+ ContentSettingsPattern::PatternParts* out);
+};
+
+template <>
+struct StructTraits<content_settings::mojom::ContentSettingsPatternDataView,
+ ContentSettingsPattern> {
+ static const ContentSettingsPattern::PatternParts& parts(
+ const ContentSettingsPattern& r) {
+ return r.parts_;
+ }
+
+ static bool is_valid(const ContentSettingsPattern& r) { return r.is_valid_; }
+
+ static bool Read(content_settings::mojom::ContentSettingsPatternDataView data,
+ ContentSettingsPattern* out);
+};
+
+template <>
+struct EnumTraits<content_settings::mojom::ContentSetting, ContentSetting> {
+ static content_settings::mojom::ContentSetting ToMojom(
+ ContentSetting setting);
+
+ static bool FromMojom(content_settings::mojom::ContentSetting setting,
+ ContentSetting* out);
+};
+
+template <>
+struct StructTraits<
+ content_settings::mojom::ContentSettingPatternSourceDataView,
+ ContentSettingPatternSource> {
+ static const ContentSettingsPattern& primary_pattern(
+ const ContentSettingPatternSource& r) {
+ return r.primary_pattern;
+ }
+
+ static const ContentSettingsPattern& secondary_pattern(
+ const ContentSettingPatternSource& r) {
+ return r.secondary_pattern;
+ }
+
+ static ContentSetting setting(const ContentSettingPatternSource& r) {
+ return r.setting;
+ }
+
+ static const std::string& source(const ContentSettingPatternSource& r) {
+ return r.source;
+ }
+
+ static bool incognito(const ContentSettingPatternSource& r) {
+ return r.incognito;
+ }
+
+ static bool Read(
+ content_settings::mojom::ContentSettingPatternSourceDataView data,
+ ContentSettingPatternSource* out);
+};
+
+template <>
+struct StructTraits<
+ content_settings::mojom::RendererContentSettingRulesDataView,
+ RendererContentSettingRules> {
+ static const std::vector<ContentSettingPatternSource>& image_rules(
+ const RendererContentSettingRules& r) {
+ return r.image_rules;
+ }
+
+ static const std::vector<ContentSettingPatternSource>& script_rules(
+ const RendererContentSettingRules& r) {
+ return r.script_rules;
+ }
+
+ static const std::vector<ContentSettingPatternSource>& autoplay_rules(
+ const RendererContentSettingRules& r) {
+ return r.autoplay_rules;
+ }
+
+ static bool Read(
+ content_settings::mojom::RendererContentSettingRulesDataView data,
+ RendererContentSettingRules* out);
+};
+
+} // namespace mojo
+
+#endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_STRUCT_TRAITS_H

Powered by Google App Engine
This is Rietveld 408576698