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

Side by Side Diff: Source/bindings/v8/BindingSecurity.cpp

Issue 334283004: Rename DOMWindow to LocalDOMWindow (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 16 matching lines...) Expand all
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "config.h" 31 #include "config.h"
32 #include "bindings/v8/BindingSecurity.h" 32 #include "bindings/v8/BindingSecurity.h"
33 33
34 #include "bindings/v8/V8Binding.h" 34 #include "bindings/v8/V8Binding.h"
35 #include "core/dom/Document.h" 35 #include "core/dom/Document.h"
36 #include "core/html/HTMLFrameElementBase.h" 36 #include "core/html/HTMLFrameElementBase.h"
37 #include "core/frame/DOMWindow.h" 37 #include "core/frame/LocalDOMWindow.h"
38 #include "core/frame/LocalFrame.h" 38 #include "core/frame/LocalFrame.h"
39 #include "core/frame/Settings.h" 39 #include "core/frame/Settings.h"
40 #include "platform/weborigin/SecurityOrigin.h" 40 #include "platform/weborigin/SecurityOrigin.h"
41 41
42 namespace WebCore { 42 namespace WebCore {
43 43
44 static bool isDocumentAccessibleFromDOMWindow(Document* targetDocument, DOMWindo w* callingWindow) 44 static bool isDocumentAccessibleFromDOMWindow(Document* targetDocument, LocalDOM Window* callingWindow)
45 { 45 {
46 if (!targetDocument) 46 if (!targetDocument)
47 return false; 47 return false;
48 48
49 if (!callingWindow) 49 if (!callingWindow)
50 return false; 50 return false;
51 51
52 if (callingWindow->document()->securityOrigin()->canAccess(targetDocument->s ecurityOrigin())) 52 if (callingWindow->document()->securityOrigin()->canAccess(targetDocument->s ecurityOrigin()))
53 return true; 53 return true;
54 54
55 return false; 55 return false;
56 } 56 }
57 57
58 static bool canAccessDocument(v8::Isolate* isolate, Document* targetDocument, Ex ceptionState& exceptionState) 58 static bool canAccessDocument(v8::Isolate* isolate, Document* targetDocument, Ex ceptionState& exceptionState)
59 { 59 {
60 DOMWindow* callingWindow = callingDOMWindow(isolate); 60 LocalDOMWindow* callingWindow = callingDOMWindow(isolate);
61 if (isDocumentAccessibleFromDOMWindow(targetDocument, callingWindow)) 61 if (isDocumentAccessibleFromDOMWindow(targetDocument, callingWindow))
62 return true; 62 return true;
63 63
64 if (targetDocument->domWindow()) 64 if (targetDocument->domWindow())
65 exceptionState.throwSecurityError(targetDocument->domWindow()->sanitized CrossDomainAccessErrorMessage(callingWindow), targetDocument->domWindow()->cross DomainAccessErrorMessage(callingWindow)); 65 exceptionState.throwSecurityError(targetDocument->domWindow()->sanitized CrossDomainAccessErrorMessage(callingWindow), targetDocument->domWindow()->cross DomainAccessErrorMessage(callingWindow));
66 return false; 66 return false;
67 } 67 }
68 68
69 static bool canAccessDocument(v8::Isolate* isolate, Document* targetDocument, Se curityReportingOption reportingOption = ReportSecurityError) 69 static bool canAccessDocument(v8::Isolate* isolate, Document* targetDocument, Se curityReportingOption reportingOption = ReportSecurityError)
70 { 70 {
71 DOMWindow* callingWindow = callingDOMWindow(isolate); 71 LocalDOMWindow* callingWindow = callingDOMWindow(isolate);
72 if (isDocumentAccessibleFromDOMWindow(targetDocument, callingWindow)) 72 if (isDocumentAccessibleFromDOMWindow(targetDocument, callingWindow))
73 return true; 73 return true;
74 74
75 if (reportingOption == ReportSecurityError && targetDocument->domWindow()) { 75 if (reportingOption == ReportSecurityError && targetDocument->domWindow()) {
76 if (LocalFrame* frame = targetDocument->frame()) 76 if (LocalFrame* frame = targetDocument->frame())
77 frame->domWindow()->printErrorMessage(targetDocument->domWindow()->c rossDomainAccessErrorMessage(callingWindow)); 77 frame->domWindow()->printErrorMessage(targetDocument->domWindow()->c rossDomainAccessErrorMessage(callingWindow));
78 } 78 }
79 79
80 return false; 80 return false;
81 } 81 }
(...skipping 11 matching lines...) Expand all
93 return false; 93 return false;
94 return canAccessDocument(isolate, toLocalFrame(target)->document(), exceptio nState); 94 return canAccessDocument(isolate, toLocalFrame(target)->document(), exceptio nState);
95 } 95 }
96 96
97 bool BindingSecurity::shouldAllowAccessToNode(v8::Isolate* isolate, Node* target , ExceptionState& exceptionState) 97 bool BindingSecurity::shouldAllowAccessToNode(v8::Isolate* isolate, Node* target , ExceptionState& exceptionState)
98 { 98 {
99 return target && canAccessDocument(isolate, &target->document(), exceptionSt ate); 99 return target && canAccessDocument(isolate, &target->document(), exceptionSt ate);
100 } 100 }
101 101
102 } 102 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698