commit | ebff0440cc1ada42a20446c0f6d9ddf0619f64df | [log] [tgz] |
---|---|---|
author | Andrey Lushnikov <lushnikov@chromium.org> | Thu Jul 12 20:02:58 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Jul 12 20:02:58 2018 |
tree | 71f1ec2f303966bcd5d7a3ea74c93cf4fc797b4b | |
parent | 2784a2c6630a8de538a7b2bf6d993823d321a489 [diff] |
Make content::PermissionManager a delegate of PermissionController One-pager describing this refactoring: https://goo.gl/24gkCb Today, `content/` layer provides `permission_manager.h` interface that is supposed to be implemented by embedders and simultaneously used as API in `content/` layer. This leaves us with no place in content/ layer where we can put DevTools instrumentation. This patch separates content API from embedder interface. With this patch, `content/` layer provides 2 interfaces: - content::PermissionController - content-level API to manage permissions - content::PermissionManager - interface to be implemented by embedders. This is a delegate for content::PermissionController. This design enables DevTools to handle and override content permissions through DevTools protocol. The functionality will be encapsulated in PermissionController class. There's exactly one PermissionController for each BrowserContext. If embedder doesn't implement PermissionManager, then PermissionController rejects all permission requests. In a follow-up: - rename `content::PermissionManager` into `content::PermissionControllerDelegate`. - rename `BrowserContext::GetPermissionManager()` into `BrowserContext::GetPermissionControllerDelegate()`. - rename `TestBrowserContext::SetPermissionManager()` into `TestBrowserContext::SetPermissionControllerDelegate()`. R=dgozman TBR=sdefresne, tobiasjs, slan, thakis BUG=631464 Change-Id: I5f6f1ea5b28e284c462a5055d9b072f12f30ce19 Reviewed-on: https://chromium-review.googlesource.com/1111340 Commit-Queue: Andrey Lushnikov <lushnikov@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Reviewed-by: Peter Beverloo <peter@chromium.org> Cr-Commit-Position: refs/heads/master@{#574691}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .