diff options
author | alexmos <alexmos@chromium.org> | 2014-12-05 17:38:09 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-12-06 01:38:30 +0000 |
commit | bc7eafaba8bde63d70a270ee71a901545d9769f9 (patch) | |
tree | 92736a74cdde00158dbd0d754835ba5c73799caf /content/renderer/render_frame_impl.h | |
parent | 00df169a990ea09d488f1c13ec0293fc11d7992e (diff) | |
download | chromium_src-bc7eafaba8bde63d70a270ee71a901545d9769f9.zip chromium_src-bc7eafaba8bde63d70a270ee71a901545d9769f9.tar.gz chromium_src-bc7eafaba8bde63d70a270ee71a901545d9769f9.tar.bz2 |
Pass origin information for remote frame creation.
This is the first step towards making origin information available for RemoteFrames in Blink. This CL ensures that we pass origin information whenever we create a RemoteFrame, which is currently three cases:
1. New view
2. As part of SwapOut
3. NewFrameProxy message
The origins are tracked on FrameTreeNodes in the browser process and updated when frame navigations commit (in NavigatorImpl::DidNavigate).
This CL doesn't yet address these issues, to be fixed in later CLs:
- situations that will require an explicit "origin update" message, including document.domain changes and certain frame navigations.
- iframe sandbox flags
- RenderFrameProxies aren't created in all cases (crbug.com/423587)
- for now, the origin on the browser side is a url::Origin which doesn't support calls like canAccess. Eventually, we may need to use a richer origin class (like WebSecurityOrigin from Blink).
More information: https://docs.google.com/a/chromium.org/document/d/1Y0s76YK0ziiL8hddiFlNUyAF4hqRAGpZM8cfnnLsZPg/edit#heading=h.lrzgurbjttfm
The Blink-side of this CL is: https://codereview.chromium.org/520213002/
BUG=426512
Review URL: https://codereview.chromium.org/692973005
Cr-Commit-Position: refs/heads/master@{#307138}
Diffstat (limited to 'content/renderer/render_frame_impl.h')
-rw-r--r-- | content/renderer/render_frame_impl.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index 6c7ecca..7be406d 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h @@ -90,6 +90,7 @@ class UserMediaClientImpl; struct CommitNavigationParams; struct CommonNavigationParams; struct CustomContextMenuContext; +struct FrameReplicationState; struct RequestNavigationParams; struct ResourceResponseHead; @@ -513,6 +514,7 @@ class CONTENT_EXPORT RenderFrameImpl OnExtendSelectionAndDelete); FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ReloadWhileSwappedOut); FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SendSwapOutACK); + FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OriginReplicationForSwapOut); FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SetEditableSelectionAndComposition); FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, @@ -536,7 +538,8 @@ class CONTENT_EXPORT RenderFrameImpl // The documentation for these functions should be in // content/common/*_messages.h for the message that the function is handling. void OnBeforeUnload(); - void OnSwapOut(int proxy_routing_id); + void OnSwapOut(int proxy_routing_id, + const FrameReplicationState& replicated_frame_state); void OnStop(); void OnShowContextMenu(const gfx::Point& location); void OnContextMenuClosed(const CustomContextMenuContext& custom_context); |