Index: chrome/browser/permissions/permission_infobar_delegate.h |
diff --git a/chrome/browser/permissions/permission_infobar_delegate.h b/chrome/browser/permissions/permission_infobar_delegate.h |
index 53dd55aa18248006a181ac614a222328a10293c8..2b8527b3008763aa51530decf9e3b34f28785e7a 100644 |
--- a/chrome/browser/permissions/permission_infobar_delegate.h |
+++ b/chrome/browser/permissions/permission_infobar_delegate.h |
@@ -12,69 +12,44 @@ |
#include "chrome/browser/permissions/permission_util.h" |
#include "components/content_settings/core/common/content_settings_types.h" |
#include "components/infobars/core/confirm_infobar_delegate.h" |
-#include "content/public/browser/permission_type.h" |
- |
-class NavigationDetails; |
-class Profile; |
- |
-// Base class for permission infobars, it implements the default behavior |
-// so that the accept/deny buttons grant/deny the relevant permission. |
-// A basic implementor only needs to implement the methods that |
-// provide an icon and a message text to the infobar. |
-class PermissionInfobarDelegate : public ConfirmInfoBarDelegate { |
+#include "url/gurl.h" |
+// Base class for permission infobars. |
raymes
2016/08/17 03:20:43
nit: fill 80chars or new paragraph
dominickn
2016/08/17 03:29:38
Done.
|
+// Implementors should inherit from SinglePermissionInfoBarDelegate or |
+// GroupedPermissionInfobarDelegate. |
+class PermissionInfoBarDelegate : public ConfirmInfoBarDelegate { |
public: |
using PermissionSetCallback = base::Callback<void(bool, PermissionAction)>; |
- |
- ~PermissionInfobarDelegate() override; |
- ContentSettingsType content_setting() const { return content_settings_type_; } |
+ ~PermissionInfoBarDelegate() override; |
+ virtual ContentSettingsType GetContentSettingType(int index) const = 0; |
raymes
2016/08/17 03:20:43
It seems like we only ever need the first content
dominickn
2016/08/17 03:29:38
The GroupedPermissionInfobarDelegate uses the inde
raymes
2016/08/17 03:44:41
Hmm it's unclear whether the one callsite which cu
|
// Returns true if the infobar should display a toggle to allow users to |
// opt-out of persisting their accept/deny decision. |
- bool ShouldShowPersistenceToggle() const; |
+ virtual bool ShouldShowPersistenceToggle() const; |
// Sets whether or not a decided permission should be persisted to content |
// settings. |
void set_persist(bool persist) { persist_ = persist; } |
- // ConfirmInfoBarDelegate: |
- base::string16 GetMessageText() const override; |
- |
protected: |
- PermissionInfobarDelegate(const GURL& requesting_origin, |
- content::PermissionType permission_type, |
- ContentSettingsType content_settings_type, |
- bool user_gesture, |
- Profile* profile, |
- const PermissionSetCallback& callback); |
+ explicit PermissionInfoBarDelegate(const GURL& requesting_origin); |
- virtual int GetMessageResourceId() const = 0; |
+ const GURL& requesting_origin() const { return requesting_origin_; } |
+ bool persist() const { return persist_; } |
private: |
// ConfirmInfoBarDelegate: |
Type GetInfoBarType() const override; |
- void InfoBarDismissed() override; |
- PermissionInfobarDelegate* AsPermissionInfobarDelegate() override; |
- base::string16 GetButtonLabel(InfoBarButton button) const override; |
- bool Accept() override; |
- bool Cancel() override; |
- |
- void SetPermission(bool update_content_setting, PermissionAction decision); |
+ PermissionInfoBarDelegate* AsPermissionInfoBarDelegate() override; |
GURL requesting_origin_; |
- content::PermissionType permission_type_; |
- ContentSettingsType content_settings_type_; |
- Profile* const profile_; |
- const PermissionSetCallback callback_; |
- bool action_taken_; |
- bool user_gesture_; |
bool persist_; |
- DISALLOW_COPY_AND_ASSIGN(PermissionInfobarDelegate); |
+ DISALLOW_COPY_AND_ASSIGN(PermissionInfoBarDelegate); |
}; |
// Implemented in platform-specific code. |
std::unique_ptr<infobars::InfoBar> CreatePermissionInfoBar( |
- std::unique_ptr<PermissionInfobarDelegate> delegate); |
+ std::unique_ptr<PermissionInfoBarDelegate> delegate); |
#endif // CHROME_BROWSER_PERMISSIONS_PERMISSION_INFOBAR_DELEGATE_H_ |