Chromium Code Reviews| Index: third_party/WebKit/public/platform/ReferrerPolicyEnumTraits.h |
| diff --git a/third_party/WebKit/public/platform/ReferrerPolicyEnumTraits.h b/third_party/WebKit/public/platform/ReferrerPolicyEnumTraits.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5b0327072a573247f8cd2dbadf5495fe9fdc5e7a |
| --- /dev/null |
| +++ b/third_party/WebKit/public/platform/ReferrerPolicyEnumTraits.h |
| @@ -0,0 +1,73 @@ |
| +// 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 ReferrerPolicyEnumTraits_h |
| +#define ReferrerPolicyEnumTraits_h |
| + |
| +#include "base/logging.h" |
| +#include "mojo/public/cpp/bindings/enum_traits.h" |
| +#include "third_party/WebKit/public/platform/WebReferrerPolicy.h" |
| +#include "third_party/WebKit/public/platform/referrer.mojom-shared.h" |
| + |
| +namespace mojo { |
| + |
| +template <> |
| +struct EnumTraits<::blink::mojom::ReferrerPolicy, ::blink::WebReferrerPolicy> { |
|
dcheng
2016/09/27 23:09:42
Is it possible to place this in namespace blink an
Ken Rockot(use gerrit already)
2016/09/28 00:20:05
I'm not sure I understand what you mean. Do you me
dcheng
2016/09/28 00:30:51
Sorry, to clarify, can we do:
namespace blink {
Ken Rockot(use gerrit already)
2016/09/28 01:15:24
As discussed off thread, this is a no-go since ADL
|
| + static ::blink::mojom::ReferrerPolicy ToMojom(::blink::WebReferrerPolicy policy) |
| + { |
| + switch (policy) { |
| + case ::blink::WebReferrerPolicyAlways: |
| + return ::blink::mojom::ReferrerPolicy::ALWAYS; |
| + case ::blink::WebReferrerPolicyDefault: |
| + return ::blink::mojom::ReferrerPolicy::DEFAULT; |
| + case ::blink::WebReferrerPolicyNoReferrerWhenDowngrade: |
| + return ::blink::mojom::ReferrerPolicy::NO_REFERRER_WHEN_DOWNGRADE; |
| + case ::blink::WebReferrerPolicyNever: |
| + return ::blink::mojom::ReferrerPolicy::NEVER; |
| + case ::blink::WebReferrerPolicyOrigin: |
| + return ::blink::mojom::ReferrerPolicy::ORIGIN; |
| + case ::blink::WebReferrerPolicyOriginWhenCrossOrigin: |
| + return ::blink::mojom::ReferrerPolicy::ORIGIN_WHEN_CROSS_ORIGIN; |
| + case ::blink::WebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin: |
| + return ::blink::mojom::ReferrerPolicy::NO_REFERRER_WHEN_DOWNGRADE_ORIGIN_WHEN_CROSS_ORIGIN; |
| + default: |
| + NOTREACHED(); |
| + return ::blink::mojom::ReferrerPolicy::DEFAULT; |
| + } |
| + } |
| + |
| + static bool FromMojom(::blink::mojom::ReferrerPolicy policy, ::blink::WebReferrerPolicy* out) |
| + { |
| + switch (policy) { |
| + case ::blink::mojom::ReferrerPolicy::ALWAYS: |
| + *out = ::blink::WebReferrerPolicyAlways; |
| + return true; |
| + case ::blink::mojom::ReferrerPolicy::DEFAULT: |
| + *out = ::blink::WebReferrerPolicyDefault; |
| + return true; |
| + case ::blink::mojom::ReferrerPolicy::NO_REFERRER_WHEN_DOWNGRADE: |
| + *out = ::blink::WebReferrerPolicyNoReferrerWhenDowngrade; |
| + return true; |
| + case ::blink::mojom::ReferrerPolicy::NEVER: |
| + *out = ::blink::WebReferrerPolicyNever; |
| + return true; |
| + case ::blink::mojom::ReferrerPolicy::ORIGIN: |
| + *out = ::blink::WebReferrerPolicyOrigin; |
| + return true; |
| + case ::blink::mojom::ReferrerPolicy::ORIGIN_WHEN_CROSS_ORIGIN: |
| + *out = ::blink::WebReferrerPolicyOriginWhenCrossOrigin; |
| + return true; |
| + case ::blink::mojom::ReferrerPolicy::NO_REFERRER_WHEN_DOWNGRADE_ORIGIN_WHEN_CROSS_ORIGIN: |
| + *out = ::blink::WebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin; |
| + return true; |
| + default: |
| + NOTREACHED(); |
| + return false; |
| + } |
| + } |
| +}; |
| + |
| +} // namespace mojo |
| + |
| +#endif |