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

Side by Side Diff: third_party/WebKit/Source/core/dom/SecurityContext.cpp

Issue 1685003002: Plumb the correct owner document through DocumentInit::m_owner. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All Rights Reserved. 2 * Copyright (C) 2011 Google Inc. All Rights Reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 14 matching lines...) Expand all
25 */ 25 */
26 26
27 #include "core/dom/SecurityContext.h" 27 #include "core/dom/SecurityContext.h"
28 28
29 #include "core/frame/csp/ContentSecurityPolicy.h" 29 #include "core/frame/csp/ContentSecurityPolicy.h"
30 #include "platform/weborigin/SecurityOrigin.h" 30 #include "platform/weborigin/SecurityOrigin.h"
31 31
32 namespace blink { 32 namespace blink {
33 33
34 SecurityContext::SecurityContext() 34 SecurityContext::SecurityContext()
35 : m_haveInitializedSecurityOrigin(false) 35 : m_sandboxFlags(SandboxNone)
36 , m_sandboxFlags(SandboxNone)
37 , m_hostedInReservedIPRange(false) 36 , m_hostedInReservedIPRange(false)
38 , m_insecureRequestsPolicy(InsecureRequestsDoNotUpgrade) 37 , m_insecureRequestsPolicy(InsecureRequestsDoNotUpgrade)
39 , m_enforceStrictMixedContentChecking(false) 38 , m_enforceStrictMixedContentChecking(false)
40 { 39 {
41 } 40 }
42 41
43 SecurityContext::~SecurityContext() 42 SecurityContext::~SecurityContext()
44 { 43 {
45 } 44 }
46 45
47 DEFINE_TRACE(SecurityContext) 46 DEFINE_TRACE(SecurityContext)
48 { 47 {
49 visitor->trace(m_contentSecurityPolicy); 48 visitor->trace(m_contentSecurityPolicy);
50 } 49 }
51 50
52 void SecurityContext::setSecurityOrigin(PassRefPtr<SecurityOrigin> securityOrigi n) 51 void SecurityContext::setSecurityOrigin(PassRefPtr<SecurityOrigin> securityOrigi n)
53 { 52 {
54 m_securityOrigin = securityOrigin; 53 m_securityOrigin = securityOrigin;
55 m_haveInitializedSecurityOrigin = true;
56 } 54 }
57 55
58 void SecurityContext::setContentSecurityPolicy(PassRefPtrWillBeRawPtr<ContentSec urityPolicy> contentSecurityPolicy) 56 void SecurityContext::setContentSecurityPolicy(PassRefPtrWillBeRawPtr<ContentSec urityPolicy> contentSecurityPolicy)
59 { 57 {
60 m_contentSecurityPolicy = contentSecurityPolicy; 58 m_contentSecurityPolicy = contentSecurityPolicy;
61 } 59 }
62 60
63 bool SecurityContext::isSecureTransitionTo(const KURL& url) const
64 {
65 // If we haven't initialized our security origin by now, this is probably
66 // a new window created via the API (i.e., that lacks an origin and lacks
67 // a place to inherit the origin from).
68 if (!haveInitializedSecurityOrigin())
69 return true;
70
71 RefPtr<SecurityOrigin> other = SecurityOrigin::create(url);
72 return securityOrigin()->canAccess(other.get());
73 }
74
75 void SecurityContext::enforceSandboxFlags(SandboxFlags mask) 61 void SecurityContext::enforceSandboxFlags(SandboxFlags mask)
76 { 62 {
77 m_sandboxFlags |= mask; 63 m_sandboxFlags |= mask;
78 64
79 if (isSandboxed(SandboxOrigin) && securityOrigin() && !securityOrigin()->isU nique()) { 65 if (isSandboxed(SandboxOrigin) && securityOrigin() && !securityOrigin()->isU nique()) {
80 setSecurityOrigin(SecurityOrigin::createUnique()); 66 setSecurityOrigin(SecurityOrigin::createUnique());
81 didUpdateSecurityOrigin(); 67 didUpdateSecurityOrigin();
82 } 68 }
83 } 69 }
84 70
85 } // namespace blink 71 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698