1 // Copyright (c) 2014 Intel Corporation. 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.
5 #ifndef XWALK_APPLICATION_COMMON_SECURITY_POLICY_H_
6 #define XWALK_APPLICATION_COMMON_SECURITY_POLICY_H_
13 namespace application {
17 // FIXME(Mikhail): Move to application/browser folder.
18 // Rename to ApplicationSecurityPolicy.
19 class SecurityPolicy {
27 explicit SecurityPolicy(Application* app);
28 virtual ~SecurityPolicy();
30 bool IsAccessAllowed(const GURL& url) const;
32 virtual void Enforce() = 0;
35 struct WhitelistEntry {
36 WhitelistEntry(const GURL& url, bool subdomains);
40 bool operator==(const WhitelistEntry& o) const {
41 return o.url == url && o.subdomains == subdomains;
45 void AddWhitelistEntry(const GURL& url, bool subdomains);
47 std::vector<WhitelistEntry> whitelist_entries_;
52 class SecurityPolicyWARP : public SecurityPolicy {
54 explicit SecurityPolicyWARP(Application* app);
55 virtual ~SecurityPolicyWARP();
57 virtual void Enforce() OVERRIDE;
60 class SecurityPolicyCSP : public SecurityPolicy {
62 explicit SecurityPolicyCSP(Application* app);
63 virtual ~SecurityPolicyCSP();
65 virtual void Enforce() OVERRIDE;
68 } // namespace application
71 #endif // XWALK_APPLICATION_COMMON_SECURITY_POLICY_H_