1 // Copyright (c) 2014 Intel Corporation. All rights reserved.
2 // Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
6 #ifndef XWALK_APPLICATION_BROWSER_APPLICATION_SECURITY_POLICY_H_
7 #define XWALK_APPLICATION_BROWSER_APPLICATION_SECURITY_POLICY_H_
14 namespace application {
18 class ApplicationSecurityPolicy {
26 explicit ApplicationSecurityPolicy(Application* app);
27 virtual ~ApplicationSecurityPolicy();
29 bool IsAccessAllowed(const GURL& url) const;
31 virtual void Enforce() = 0;
34 struct WhitelistEntry {
35 WhitelistEntry(const GURL& url, bool subdomains);
39 bool operator==(const WhitelistEntry& o) const {
40 return o.url == url && o.subdomains == subdomains;
44 void AddWhitelistEntry(const GURL& url, bool subdomains);
46 std::vector<WhitelistEntry> whitelist_entries_;
51 class ApplicationSecurityPolicyWARP : public ApplicationSecurityPolicy {
53 explicit ApplicationSecurityPolicyWARP(Application* app);
54 virtual ~ApplicationSecurityPolicyWARP();
56 void Enforce() override;
59 class ApplicationSecurityPolicyCSP : public ApplicationSecurityPolicy {
61 explicit ApplicationSecurityPolicyCSP(Application* app);
62 virtual ~ApplicationSecurityPolicyCSP();
64 void Enforce() override;
67 } // namespace application
70 #endif // XWALK_APPLICATION_BROWSER_APPLICATION_SECURITY_POLICY_H_