Draft spec at: https://noncombatant.github.io/permission-delegation-api/
Issue 513866 has been merged into this issue.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/76dd6b4c688ae32a7a240dcb9da09678472a9e09 commit 76dd6b4c688ae32a7a240dcb9da09678472a9e09 Author: raymes <raymes@chromium.org> Date: Wed Jun 29 07:40:06 2016 Add an iframe permissions= attribute for implementing permission delegation This adds a permissions= attribute to the iframe element. The delegation information is parsed and then plumbed down to the WebFrameOwnerProperties which will be replicated to the browser process. BUG= 614608 Review-Url: https://codereview.chromium.org/2011763006 Cr-Commit-Position: refs/heads/master@{#402751} [add] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/LayoutTests/virtual/stable/webexposed/permissions-attribute-expected.txt [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [add] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/LayoutTests/webexposed/permissions-attribute-expected.txt [add] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/LayoutTests/webexposed/permissions-attribute.html [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/core.gypi [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/frame/FrameOwner.h [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLAttributeNames.in [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLFrameElementBase.h [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElement.h [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElement.idl [add] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissions.cpp [add] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissions.h [add] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissionsTest.cpp [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElementSandbox.cpp [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElementSandbox.h [add] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/core/html/HTMLIFrameElementTest.cpp [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/web/RemoteFrameOwner.h [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/web/WebFrame.cpp [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp [modify] https://crrev.com/76dd6b4c688ae32a7a240dcb9da09678472a9e09/third_party/WebKit/public/web/WebFrameOwnerProperties.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bba82b368739017314eac8bed4ae8c5533975bf5 commit bba82b368739017314eac8bed4ae8c5533975bf5 Author: raymes <raymes@chromium.org> Date: Tue Jul 19 00:41:38 2016 Create a content::FrameOwnerProperties struct for IPC transport of WebFrameOwnerProperties blink::WebFrameOwnerProperties can't be sent over IPC because one of its members is a WebVector which doesn't have ParamTraits defined. We introduce a new struct in content to transfer the data. BUG= 614608 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2146803004 Cr-Commit-Position: refs/heads/master@{#406163} [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/browser/frame_host/render_frame_host_impl.h [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/browser/frame_host/render_frame_host_manager.cc [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/browser/frame_host/render_frame_message_filter.cc [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/browser/frame_host/render_frame_proxy_host.cc [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/common/DEPS [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/common/frame_messages.h [add] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/common/frame_owner_properties.cc [add] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/common/frame_owner_properties.h [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/content_common.gypi [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/renderer/render_frame_impl.cc [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/renderer/render_frame_impl.h [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/renderer/render_frame_proxy.cc [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/renderer/render_frame_proxy.h [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/content/renderer/render_thread_impl.cc [modify] https://crrev.com/bba82b368739017314eac8bed4ae8c5533975bf5/third_party/WebKit/public/platform/modules/permissions/WebPermissionType.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3145780a24db76c6fc4131cfdaea6dcd21131c22 commit 3145780a24db76c6fc4131cfdaea6dcd21131c22 Author: raymes <raymes@chromium.org> Date: Wed Jul 20 06:08:09 2016 Use content::FrameOwnerProperties instead of blink::WebFrameOwnerProperties in content/ In https://codereview.chromium.org/2146803004 we introduced content::FrameOwnerProperties which was used to transport blink::WebFrameOwnerProperties over IPC. This CL changes content/ to use this new struct wherever possible to avoid converting back and forth between the two structs as much. BUG= 614608 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2156883002 Cr-Commit-Position: refs/heads/master@{#406504} [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/DEPS [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/frame_tree.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/frame_tree.h [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/frame_tree_node.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/frame_tree_node.h [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/frame_tree_node_blame_context_unittest.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/frame_tree_unittest.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/navigation_controller_impl_unittest.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/render_frame_host_impl.h [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/render_frame_host_manager.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/render_frame_host_manager.h [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/render_frame_host_manager_unittest.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/render_frame_message_filter.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/render_frame_message_filter.h [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/frame_host/render_frame_proxy_host.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/browser/site_per_process_browsertest.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/common/frame_owner_properties.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/common/frame_owner_properties.h [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/public/test/mock_render_thread.h [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/renderer/render_frame_impl.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/renderer/render_frame_impl.h [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/renderer/render_frame_impl_browsertest.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/renderer/render_thread_impl.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/renderer/render_view_browsertest.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/content/test/test_render_frame_host.cc [modify] https://crrev.com/3145780a24db76c6fc4131cfdaea6dcd21131c22/third_party/WebKit/public/web/WebFrameOwnerProperties.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c94140a3b3e85c7fb622a75338ec4c60e3425dd9 commit c94140a3b3e85c7fb622a75338ec4c60e3425dd9 Author: raymes <raymes@chromium.org> Date: Thu Jul 28 01:21:02 2016 Ensure the permissions DOMTokenList is initialized before access The permissions DOMTokenList in the HTMLIFrameElement is lazily initialized but we weren't initializing it before it was accessed through its accessor. This caused the code not to work correctly in cases where the attribute is initially accessed via JS. BUG= 614608 Review-Url: https://codereview.chromium.org/2191443002 Cr-Commit-Position: refs/heads/master@{#408305} [modify] https://crrev.com/c94140a3b3e85c7fb622a75338ec4c60e3425dd9/third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp [modify] https://crrev.com/c94140a3b3e85c7fb622a75338ec4c60e3425dd9/third_party/WebKit/Source/core/html/HTMLIFrameElementTest.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e777c2aebf305f494ca8186328b03532a78f35d8 commit e777c2aebf305f494ca8186328b03532a78f35d8 Author: rijubrata.bhaumik <rijubrata.bhaumik@intel.com> Date: Fri Feb 10 10:01:06 2017 Make delegated permissions use mojo generated -permissions. Remove the WebPermissionType as the only feature which used it was delegated permissions. BUG= 614608 Review-Url: https://codereview.chromium.org/2682953002 Cr-Commit-Position: refs/heads/master@{#449573} [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/content/common/DEPS [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/content/common/frame_messages.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/content/common/frame_owner_properties.cc [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/content/common/frame_owner_properties.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/core/frame/FrameOwner.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/core/html/HTMLIFrameElement.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissions.cpp [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissions.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissionsTest.cpp [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/modules/permissions/PermissionStatus.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/Source/web/RemoteFrameOwner.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/public/BUILD.gn [delete] https://crrev.com/6ac19e1710b6bdf828bc721d56c1f7ba8e48ff73/third_party/WebKit/public/platform/modules/permissions/WebPermissionType.h [modify] https://crrev.com/e777c2aebf305f494ca8186328b03532a78f35d8/third_party/WebKit/public/web/WebFrameOwnerProperties.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a commit 168b507a6d9c69a833e5ab1ce9ff59d15ebf309a Author: timloh <timloh@chromium.org> Date: Thu Mar 16 02:21:53 2017 Remove old permission delegation prototype This patch removes the permission delegation prototype code, as we've decided to support this capability via Feature Policy instead and so the delegation logic will be implemented differently. BUG= 614608 Review-Url: https://codereview.chromium.org/2733823004 Cr-Commit-Position: refs/heads/master@{#457317} [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/chrome/browser/BUILD.gn [delete] https://crrev.com/ef8ab61bac3cd1a4d714fbc4c1b9e5a042df3422/chrome/browser/permissions/delegation_tracker.cc [delete] https://crrev.com/ef8ab61bac3cd1a4d714fbc4c1b9e5a042df3422/chrome/browser/permissions/delegation_tracker.h [delete] https://crrev.com/ef8ab61bac3cd1a4d714fbc4c1b9e5a042df3422/chrome/browser/permissions/delegation_tracker_unittest.cc [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/chrome/test/BUILD.gn [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/content/common/frame_owner_properties.cc [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/content/common/frame_owner_properties.h [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/content/renderer/frame_owner_properties.cc [delete] https://crrev.com/ef8ab61bac3cd1a4d714fbc4c1b9e5a042df3422/third_party/WebKit/LayoutTests/virtual/stable/webexposed/permissions-attribute-expected.txt [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/LayoutTests/webexposed/permissions-attribute-expected.txt [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/BUILD.gn [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/frame/FrameOwner.h [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/html/BUILD.gn [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/html/HTMLAttributeNames.json5 [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/html/HTMLIFrameElement.h [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/html/HTMLIFrameElement.idl [delete] https://crrev.com/ef8ab61bac3cd1a4d714fbc4c1b9e5a042df3422/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissions.cpp [delete] https://crrev.com/ef8ab61bac3cd1a4d714fbc4c1b9e5a042df3422/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissions.h [delete] https://crrev.com/ef8ab61bac3cd1a4d714fbc4c1b9e5a042df3422/third_party/WebKit/Source/core/html/HTMLIFrameElementPermissionsTest.cpp [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/core/html/HTMLIFrameElementTest.cpp [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/web/RemoteFrameOwner.h [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/web/WebFrame.cpp [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp [modify] https://crrev.com/168b507a6d9c69a833e5ab1ce9ff59d15ebf309a/third_party/WebKit/public/web/WebFrameOwnerProperties.h
We're now using Feature policy as the mechanism for delegation. Marking WontFix
Comment 1 by raymes@chromium.org
, May 25 2016