OLD | NEW |
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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 class WebRemoteFrame; | 57 class WebRemoteFrame; |
58 class WebSecurityOrigin; | 58 class WebSecurityOrigin; |
59 class WebString; | 59 class WebString; |
60 class WebURL; | 60 class WebURL; |
61 class WebURLRequest; | 61 class WebURLRequest; |
62 class WebView; | 62 class WebView; |
63 enum class WebSandboxFlags; | 63 enum class WebSandboxFlags; |
64 struct WebFrameOwnerProperties; | 64 struct WebFrameOwnerProperties; |
65 struct WebPrintParams; | 65 struct WebPrintParams; |
66 struct WebRect; | 66 struct WebRect; |
67 struct WebScriptSource; | |
68 struct WebSize; | 67 struct WebSize; |
69 | 68 |
70 template <typename T> | |
71 class WebVector; | |
72 | |
73 // Frames may be rendered in process ('local') or out of process ('remote'). | 69 // Frames may be rendered in process ('local') or out of process ('remote'). |
74 // A remote frame is always cross-site; a local frame may be either same-site or | 70 // A remote frame is always cross-site; a local frame may be either same-site or |
75 // cross-site. | 71 // cross-site. |
76 // WebFrame is the base class for both WebLocalFrame and WebRemoteFrame and | 72 // WebFrame is the base class for both WebLocalFrame and WebRemoteFrame and |
77 // contains methods that are valid on both local and remote frames, such as | 73 // contains methods that are valid on both local and remote frames, such as |
78 // getting a frame's parent or its opener. | 74 // getting a frame's parent or its opener. |
79 class BLINK_EXPORT WebFrame { | 75 class BLINK_EXPORT WebFrame { |
80 public: | 76 public: |
81 // FIXME: We already have blink::TextGranularity. For now we support only | 77 // FIXME: We already have blink::TextGranularity. For now we support only |
82 // a part of blink::TextGranularity. | 78 // a part of blink::TextGranularity. |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 // Closing ------------------------------------------------------------- | 204 // Closing ------------------------------------------------------------- |
209 | 205 |
210 // Runs unload handlers for this frame. | 206 // Runs unload handlers for this frame. |
211 virtual void DispatchUnloadEvent() = 0; | 207 virtual void DispatchUnloadEvent() = 0; |
212 | 208 |
213 // Scripting ---------------------------------------------------------- | 209 // Scripting ---------------------------------------------------------- |
214 | 210 |
215 // Returns the global proxy object. | 211 // Returns the global proxy object. |
216 virtual v8::Local<v8::Object> GlobalProxy() const = 0; | 212 virtual v8::Local<v8::Object> GlobalProxy() const = 0; |
217 | 213 |
218 // Executes JavaScript in a new world associated with the web frame. | |
219 // The script gets its own global scope and its own prototypes for | |
220 // intrinsic JavaScript objects (String, Array, and so-on). It also | |
221 // gets its own wrappers for all DOM nodes and DOM constructors. | |
222 // | |
223 // worldID must be > 0 (as 0 represents the main world). | |
224 // worldID must be < EmbedderWorldIdLimit, high number used internally. | |
225 virtual void ExecuteScriptInIsolatedWorld(int world_id, | |
226 const WebScriptSource* sources, | |
227 unsigned num_sources) = 0; | |
228 | |
229 // Associates an isolated world (see above for description) with a security | |
230 // origin. XMLHttpRequest instances used in that world will be considered | |
231 // to come from that origin, not the frame's. | |
232 virtual void SetIsolatedWorldSecurityOrigin(int world_id, | |
233 const WebSecurityOrigin&) = 0; | |
234 | |
235 // Associates a content security policy with an isolated world. This policy | |
236 // should be used when evaluating script in the isolated world, and should | |
237 // also replace a protected resource's CSP when evaluating resources | |
238 // injected into the DOM. | |
239 // | |
240 // FIXME: Setting this simply bypasses the protected resource's CSP. It | |
241 // doesn't yet restrict the isolated world to the provided policy. | |
242 virtual void SetIsolatedWorldContentSecurityPolicy(int world_id, | |
243 const WebString&) = 0; | |
244 | |
245 // Calls window.gc() if it is defined. | |
246 virtual void CollectGarbage() = 0; | |
247 | |
248 // Executes script in the context of the current page and returns the value | |
249 // that the script evaluated to. | |
250 // DEPRECATED: Use WebLocalFrame::requestExecuteScriptAndReturnValue. | |
251 virtual v8::Local<v8::Value> ExecuteScriptAndReturnValue( | |
252 const WebScriptSource&) = 0; | |
253 | |
254 // worldID must be > 0 (as 0 represents the main world). | |
255 // worldID must be < EmbedderWorldIdLimit, high number used internally. | |
256 // DEPRECATED: Use WebLocalFrame::requestExecuteScriptInIsolatedWorld. | |
257 virtual void ExecuteScriptInIsolatedWorld( | |
258 int world_id, | |
259 const WebScriptSource* sources_in, | |
260 unsigned num_sources, | |
261 WebVector<v8::Local<v8::Value>>* results) = 0; | |
262 | |
263 // Call the function with the given receiver and arguments, bypassing | |
264 // canExecute(). | |
265 virtual v8::Local<v8::Value> CallFunctionEvenIfScriptDisabled( | |
266 v8::Local<v8::Function>, | |
267 v8::Local<v8::Value>, | |
268 int argc, | |
269 v8::Local<v8::Value> argv[]) = 0; | |
270 | |
271 // Returns true if the WebFrame currently executing JavaScript has access | 214 // Returns true if the WebFrame currently executing JavaScript has access |
272 // to the given WebFrame, or false otherwise. | 215 // to the given WebFrame, or false otherwise. |
273 static bool ScriptCanAccess(WebFrame*); | 216 static bool ScriptCanAccess(WebFrame*); |
274 | 217 |
275 // Navigation ---------------------------------------------------------- | 218 // Navigation ---------------------------------------------------------- |
276 // TODO(clamy): Remove the reload, reloadWithOverrideURL, and loadRequest | 219 // TODO(clamy): Remove the reload, reloadWithOverrideURL, and loadRequest |
277 // functions once RenderFrame only calls WebLoadFrame::load. | 220 // functions once RenderFrame only calls WebLoadFrame::load. |
278 | 221 |
279 // Reload the current document. | 222 // Reload the current document. |
280 // Note: reload() and reloadWithOverrideURL() will be deprecated. | 223 // Note: reload() and reloadWithOverrideURL() will be deprecated. |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 WebFrame* first_child_; | 358 WebFrame* first_child_; |
416 WebFrame* last_child_; | 359 WebFrame* last_child_; |
417 | 360 |
418 WebFrame* opener_; | 361 WebFrame* opener_; |
419 std::unique_ptr<OpenedFrameTracker> opened_frame_tracker_; | 362 std::unique_ptr<OpenedFrameTracker> opened_frame_tracker_; |
420 }; | 363 }; |
421 | 364 |
422 } // namespace blink | 365 } // namespace blink |
423 | 366 |
424 #endif | 367 #endif |
OLD | NEW |