OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ | 5 #ifndef CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ |
6 #define CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ | 6 #define CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
11 #include <string> | 11 #include <string> |
12 #include <vector> | 12 #include <vector> |
13 | 13 |
14 #include "base/macros.h" | 14 #include "base/macros.h" |
15 #include "base/memory/ref_counted.h" | 15 #include "base/memory/ref_counted.h" |
16 #include "content/browser/frame_host/frame_tree_node_blame_context.h" | 16 #include "content/browser/frame_host/frame_tree_node_blame_context.h" |
17 #include "content/browser/frame_host/render_frame_host_impl.h" | 17 #include "content/browser/frame_host/render_frame_host_impl.h" |
18 #include "content/browser/frame_host/render_frame_host_manager.h" | 18 #include "content/browser/frame_host/render_frame_host_manager.h" |
19 #include "content/common/content_export.h" | 19 #include "content/common/content_export.h" |
20 #include "content/common/frame_owner_properties.h" | 20 #include "content/common/frame_owner_properties.h" |
21 #include "content/common/frame_replication_state.h" | 21 #include "content/common/frame_replication_state.h" |
22 #include "third_party/WebKit/public/platform/WebInsecureRequestPolicy.h" | 22 #include "third_party/WebKit/public/platform/WebInsecureRequestPolicy.h" |
23 #include "url/gurl.h" | 23 #include "url/gurl.h" |
24 #include "url/origin.h" | 24 #include "url/origin.h" |
25 | 25 |
26 namespace content { | 26 namespace content { |
27 | 27 |
28 class FeaturePolicy; | |
28 class FrameTree; | 29 class FrameTree; |
29 class NavigationRequest; | 30 class NavigationRequest; |
30 class Navigator; | 31 class Navigator; |
31 class RenderFrameHostImpl; | 32 class RenderFrameHostImpl; |
32 struct ContentSecurityPolicyHeader; | 33 struct ContentSecurityPolicyHeader; |
33 | 34 |
34 // When a page contains iframes, its renderer process maintains a tree structure | 35 // When a page contains iframes, its renderer process maintains a tree structure |
35 // of those frames. We are mirroring this tree in the browser process. This | 36 // of those frames. We are mirroring this tree in the browser process. This |
36 // class represents a node in this tree and is a wrapper for all objects that | 37 // class represents a node in this tree and is a wrapper for all objects that |
37 // are frame-specific (as opposed to page-specific). | 38 // are frame-specific (as opposed to page-specific). |
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
345 std::vector<std::unique_ptr<FrameTreeNode>> children_; | 346 std::vector<std::unique_ptr<FrameTreeNode>> children_; |
346 | 347 |
347 // Whether this frame has committed any real load, replacing its initial | 348 // Whether this frame has committed any real load, replacing its initial |
348 // about:blank page. | 349 // about:blank page. |
349 bool has_committed_real_load_; | 350 bool has_committed_real_load_; |
350 | 351 |
351 // Track information that needs to be replicated to processes that have | 352 // Track information that needs to be replicated to processes that have |
352 // proxies for this frame. | 353 // proxies for this frame. |
353 FrameReplicationState replication_state_; | 354 FrameReplicationState replication_state_; |
354 | 355 |
356 std::unique_ptr<FeaturePolicy> feature_policy_; | |
pfeldman
2017/02/03 18:04:26
I'd talk to someone from the site isolation team o
iclelland
2017/02/03 19:26:37
Thanks -- alexmos, do you have any idea whether th
alexmos
2017/02/03 22:37:16
I think it might make more sense to put this on th
iclelland
2017/02/06 18:32:33
Thanks, Alex, I appreciate the insight. I've moved
alexmos
2017/02/07 00:21:35
Yes, that sounds good to me.
| |
357 | |
355 // Track the pending sandbox flags for this frame. When a parent frame | 358 // Track the pending sandbox flags for this frame. When a parent frame |
356 // dynamically updates sandbox flags in the <iframe> element for a child | 359 // dynamically updates sandbox flags in the <iframe> element for a child |
357 // frame, these updated flags are stored here and are transferred into | 360 // frame, these updated flags are stored here and are transferred into |
358 // replication_state_.sandbox_flags when they take effect on the next frame | 361 // replication_state_.sandbox_flags when they take effect on the next frame |
359 // navigation. | 362 // navigation. |
360 blink::WebSandboxFlags pending_sandbox_flags_; | 363 blink::WebSandboxFlags pending_sandbox_flags_; |
361 | 364 |
362 // Tracks the scrolling and margin properties for this frame. These | 365 // Tracks the scrolling and margin properties for this frame. These |
363 // properties affect the child renderer but are stored on its parent's | 366 // properties affect the child renderer but are stored on its parent's |
364 // frame element. When this frame's parent dynamically updates these | 367 // frame element. When this frame's parent dynamically updates these |
(...skipping 19 matching lines...) Expand all Loading... | |
384 // browser process activities to this node (when possible). It is unrelated | 387 // browser process activities to this node (when possible). It is unrelated |
385 // to the core logic of FrameTreeNode. | 388 // to the core logic of FrameTreeNode. |
386 FrameTreeNodeBlameContext blame_context_; | 389 FrameTreeNodeBlameContext blame_context_; |
387 | 390 |
388 DISALLOW_COPY_AND_ASSIGN(FrameTreeNode); | 391 DISALLOW_COPY_AND_ASSIGN(FrameTreeNode); |
389 }; | 392 }; |
390 | 393 |
391 } // namespace content | 394 } // namespace content |
392 | 395 |
393 #endif // CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ | 396 #endif // CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ |
OLD | NEW |