5
5
6
6
#include " brave/components/skus/renderer/skus_utils.h"
7
7
8
+ #include < algorithm>
9
+ #include < string>
8
10
#include < vector>
9
11
10
12
#include " base/no_destructor.h"
11
13
#include " third_party/blink/public/platform/web_security_origin.h"
12
14
#include " third_party/blink/public/platform/web_url.h"
13
15
#include " url/gurl.h"
14
16
15
- namespace skus {
17
+ namespace {
18
+ // NOTE: please open a security review when appending to this list.
19
+ std::vector<std::string> safe_origins_string{
20
+ " https://account.brave.com" , " https://account.bravesoftware.com" ,
21
+ " https://account.brave.software" };
16
22
17
- bool IsSafeOrigin (const blink::WebSecurityOrigin& origin) {
18
- // NOTE: please open a security review when appending to this list.
19
- static base::NoDestructor<std::vector<blink::WebSecurityOrigin>> safe_origins{
20
- {{blink::WebSecurityOrigin::Create (GURL (" https://account.brave.com" ))},
21
- {blink::WebSecurityOrigin::Create (
22
- GURL (" https://account.bravesoftware.com" ))},
23
- {blink::WebSecurityOrigin::Create (
24
- GURL (" https://account.brave.software" ))}}};
23
+ base::NoDestructor<std::vector<blink::WebSecurityOrigin>>
24
+ WebSecurityOriginList () {
25
+ std::vector<blink::WebSecurityOrigin> list (safe_origins_string.size ());
26
+ std::transform (safe_origins_string.begin (), safe_origins_string.end (),
27
+ list.begin (), [](auto & origin_string) {
28
+ return blink::WebSecurityOrigin::Create (GURL (origin_string));
29
+ });
30
+ return base::NoDestructor (list);
31
+ }
32
+
33
+ } // namespace
25
34
35
+ namespace skus {
36
+ bool IsSafeOrigin (const blink::WebSecurityOrigin& origin) {
37
+ static base::NoDestructor<std::vector<blink::WebSecurityOrigin>>
38
+ safe_origins = WebSecurityOriginList ();
26
39
for (const blink::WebSecurityOrigin& safe_origin : *safe_origins) {
27
40
if (safe_origin.IsSameOriginWith (origin)) {
28
41
return true ;
@@ -31,4 +44,14 @@ bool IsSafeOrigin(const blink::WebSecurityOrigin& origin) {
31
44
return false ;
32
45
}
33
46
47
+ bool IsSafeOrigin (const GURL& origin) {
48
+ for (const std::string& safe_origin_string : safe_origins_string) {
49
+ auto safe_origin = url::Origin::Create (GURL (safe_origin_string));
50
+ if (safe_origin.IsSameOriginWith (origin)) {
51
+ return true ;
52
+ }
53
+ }
54
+ return false ;
55
+ }
56
+
34
57
} // namespace skus
0 commit comments