New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 682258 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug


Sign in to add a comment

Implement a general mechanism for iframe attributes to control Feature Policy

Project Member Reported by iclell...@chromium.org, Jan 18 2017

Issue description

From the latest rounds of spec discussion, and to match the explainer doc, Feature Policy should be handling several different iframe attributes:

allowfullscreen
allowpaymentrequest
allowusermedia
allow
allowvr?
featurepolicy?

All of these eventually translate into a set of declared whitelists, which should replace the declared whitelists in the parent document, for the appropriate features, for the purpose of calculating the inherited policy for the nested frame.

This task is to create the mechanism to do that replacement. Subtasks will be created for the individual attributes.
 
Blocking: 682256
Blocking: 682280
Blocking: 682282
Blocking: 682284

Comment 5 by lunalu@chromium.org, Jan 18 2017

Cc: lunalu@chromium.org
Project Member

Comment 6 by bugdroid1@chromium.org, Feb 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/de94fd8361c6d3c0af5e4cdf757594f80340f789

commit de94fd8361c6d3c0af5e4cdf757594f80340f789
Author: iclelland <iclelland@chromium.org>
Date: Wed Feb 22 05:39:50 2017

Feature policy: Add basic algorithm for supporting frame policies.

This allows a parsed policy from an iframe element to be used to influence
the policy inherited by the framed document.

BUG= 682258 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2655023004
Cr-Commit-Position: refs/heads/master@{#451887}

[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/content/common/feature_policy/feature_policy.cc
[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/content/common/feature_policy/feature_policy.h
[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/content/common/feature_policy/feature_policy_unittest.cc
[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/third_party/WebKit/Source/core/dom/SecurityContext.cpp
[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/third_party/WebKit/Source/core/frame/FeaturePolicyInFrameTest.cpp
[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/third_party/WebKit/Source/platform/feature_policy/FeaturePolicy.cpp
[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/third_party/WebKit/Source/platform/feature_policy/FeaturePolicy.h
[modify] https://crrev.com/de94fd8361c6d3c0af5e4cdf757594f80340f789/third_party/WebKit/Source/platform/feature_policy/FeaturePolicyTest.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/92f8c0b3ff53422eb761b53793bac0b424ec45df

commit 92f8c0b3ff53422eb761b53793bac0b424ec45df
Author: iclelland <iclelland@chromium.org>
Date: Wed Apr 19 12:43:05 2017

Replicate feature policy container policies.

This CL adds a persistent parsed container policy to
HTMLFrameOwnerElement, and replicates it alongside of sandbox attributes
to remote frames. In most cases, the sandbox and FP attributes should be
processed at the same time, so the IPC and methods for them have been
combined. The combination of sandbox and FP is referred to as the "frame
policies".

BUG= 682258 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2797813002
Cr-Commit-Position: refs/heads/master@{#465563}

[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/components/printing/renderer/print_web_view_helper.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/frame_tree.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/frame_tree.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/frame_tree_node.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/frame_tree_node.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/frame_tree_node_blame_context_unittest.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/frame_tree_unittest.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/navigation_controller_impl_unittest.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/render_frame_host_manager.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/render_frame_host_manager.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/render_frame_host_manager_unittest.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/frame_host/render_frame_message_filter.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/common/feature_policy/feature_policy.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/common/feature_policy/feature_policy.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/common/frame_messages.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/common/frame_replication_state.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/renderer/render_frame_impl.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/renderer/render_frame_proxy.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/renderer/render_frame_proxy.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/content/test/test_render_frame_host.cc
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/frame/FrameOwner.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/frame/LocalFrameClient.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/html/HTMLFrameElementBase.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/html/HTMLFrameElementBase.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/html/HTMLIFrameElementTest.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/LocalFrameClientImpl.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/RemoteFrameOwner.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/RemoteFrameOwner.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/WebFrame.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/WebRemoteFrameImpl.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/tests/FrameTestHelpers.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/Source/web/tests/WebViewTest.cpp
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/public/web/WebFrame.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/public/web/WebFrameClient.h
[modify] https://crrev.com/92f8c0b3ff53422eb761b53793bac0b424ec45df/third_party/WebKit/public/web/WebRemoteFrame.h

Status: Fixed (was: Started)

Sign in to add a comment