Index: chrome/browser/extensions/api/file_system/consent_provider.h |
diff --git a/chrome/browser/extensions/api/file_system/consent_provider.h b/chrome/browser/extensions/api/file_system/consent_provider.h |
index 3a517b6f68d8296547812c32ab50f57d2c7d023f..b789f87294777c8761c65ad3ab280d213a2d6871 100644 |
--- a/chrome/browser/extensions/api/file_system/consent_provider.h |
+++ b/chrome/browser/extensions/api/file_system/consent_provider.h |
@@ -31,6 +31,10 @@ namespace file_system_api { |
// Interaction with UI and environmental checks (kiosk mode, whitelist) are |
// provided by a delegate: ConsentProviderDelegate. For testing, it is |
// TestingConsentProviderDelegate. |
+// This class may post callbacks given to it, but does not asynchronously call |
+// itself. It is generally safe to use a temporary ConsentProvider. |
+// TODO(michaelpg): Make this easier to use by replacing member functions with |
+// static methods. |
class ConsentProvider { |
public: |
enum Consent { CONSENT_GRANTED, CONSENT_REJECTED, CONSENT_IMPOSSIBLE }; |
@@ -42,6 +46,7 @@ class ConsentProvider { |
public: |
// Shows a dialog for granting permissions. |
virtual void ShowDialog(const Extension& extension, |
+ content::RenderFrameHost* host, |
const base::WeakPtr<file_manager::Volume>& volume, |
bool writable, |
const ShowDialogCallback& callback) = 0; |
@@ -66,6 +71,7 @@ class ConsentProvider { |
// volume by the |extension|. Must be called only if the extension is |
// grantable, which can be checked with IsGrantable(). |
void RequestConsent(const Extension& extension, |
+ content::RenderFrameHost* host, |
const base::WeakPtr<file_manager::Volume>& volume, |
bool writable, |
const ConsentCallback& callback); |
@@ -83,7 +89,7 @@ class ConsentProvider { |
// context of running extensions) for ConsentProvider. |
class ConsentProviderDelegate : public ConsentProvider::DelegateInterface { |
public: |
- ConsentProviderDelegate(Profile* profile, content::RenderFrameHost* host); |
+ explicit ConsentProviderDelegate(Profile* profile); |
~ConsentProviderDelegate(); |
private: |
@@ -95,6 +101,7 @@ class ConsentProviderDelegate : public ConsentProvider::DelegateInterface { |
// ConsentProvider::DelegateInterface overrides: |
void ShowDialog(const Extension& extension, |
+ content::RenderFrameHost* host, |
const base::WeakPtr<file_manager::Volume>& volume, |
bool writable, |
const file_system_api::ConsentProvider::ShowDialogCallback& |
@@ -106,7 +113,6 @@ class ConsentProviderDelegate : public ConsentProvider::DelegateInterface { |
bool IsWhitelistedComponent(const Extension& extension) override; |
Profile* const profile_; |
- content::RenderFrameHost* const host_; |
DISALLOW_COPY_AND_ASSIGN(ConsentProviderDelegate); |
}; |