Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4750)

Unified Diff: chrome/browser/permissions/grouped_permission_infobar_delegate_android.h

Issue 2319443002: Add InfoBarIdentifier to GroupedPermissionInfoBarDelegate (Closed)
Patch Set: minor change in comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/permissions/grouped_permission_infobar_delegate_android.h
diff --git a/chrome/browser/permissions/grouped_permission_infobar_delegate.h b/chrome/browser/permissions/grouped_permission_infobar_delegate_android.h
similarity index 56%
rename from chrome/browser/permissions/grouped_permission_infobar_delegate.h
rename to chrome/browser/permissions/grouped_permission_infobar_delegate_android.h
index 70dc48d5dbf3c514d40cca8242c8411a79097512..7e48c6c77705da0f942c444cf509f64c377a01eb 100644
--- a/chrome/browser/permissions/grouped_permission_infobar_delegate.h
+++ b/chrome/browser/permissions/grouped_permission_infobar_delegate_android.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_PERMISSIONS_GROUPED_PERMISSION_INFOBAR_DELEGATE_H_
-#define CHROME_BROWSER_PERMISSIONS_GROUPED_PERMISSION_INFOBAR_DELEGATE_H_
+#ifndef CHROME_BROWSER_PERMISSIONS_GROUPED_PERMISSION_INFOBAR_DELEGATE_ANDROID_H_
+#define CHROME_BROWSER_PERMISSIONS_GROUPED_PERMISSION_INFOBAR_DELEGATE_ANDROID_H_
#include <memory>
@@ -14,56 +14,60 @@
class GURL;
class InfoBarService;
-namespace infobars {
-class InfoBarManager;
-}
-
-// Configures an InfoBar to display a group of permission requests, each of
-// which can be allowed or blocked independently.
+// An InfoBar that displays a group of permission requests, each of which can be
+// allowed or blocked independently.
// TODO(tsergeant): Expand this class so it can be used without subclassing.
class GroupedPermissionInfoBarDelegate : public ConfirmInfoBarDelegate {
public:
- // Implementation is in platform-specific infobar file.
- static std::unique_ptr<infobars::InfoBar> CreateInfoBar(
- infobars::InfoBarManager* infobar_manager,
- std::unique_ptr<GroupedPermissionInfoBarDelegate> delegate);
+ // Public so we can have std::unique_ptr<GroupedPermissionInfoBarDelegate>.
+ ~GroupedPermissionInfoBarDelegate() override;
- GroupedPermissionInfoBarDelegate(
+ static infobars::InfoBar* Create(
+ InfoBarService* infobar_service,
const GURL& requesting_origin,
const std::vector<ContentSettingsType>& types);
- ~GroupedPermissionInfoBarDelegate() override;
- bool ShouldShowPersistenceToggle() const;
bool persist() const { return persist_; }
void set_persist(bool persist) { persist_ = persist; }
+ size_t permission_count() const { return types_.size(); }
- base::string16 GetMessageText() const override;
+ // Returns true if the infobar should display a toggle to allow users to
+ // opt-out of persisting their accept/deny decision.
+ bool ShouldShowPersistenceToggle() const;
+
+ ContentSettingsType GetContentSettingType(size_t position) const;
+ int GetIconIdForPermission(size_t position) const;
- int GetPermissionCount() const;
- ContentSettingsType GetContentSettingType(int index) const;
- int GetIconIdForPermission(int index) const;
- // Message text to display for an individual permission at |index|.
- base::string16 GetMessageTextFragment(int index) const;
+ // Message text to display for an individual permission at |position|.
+ base::string16 GetMessageTextFragment(size_t position) const;
- void ToggleAccept(int position, bool new_value);
+ // Toggle accept value for an individual permission at |position|.
+ void ToggleAccept(size_t position, bool new_value);
+
+ // ConfirmInfoBarDelegate:
+ base::string16 GetMessageText() const override;
protected:
- bool GetAcceptState(int position);
+ bool GetAcceptState(size_t position);
private:
- // ConfirmInfoBarDelegate:
- base::string16 GetButtonLabel(InfoBarButton button) const override;
- int GetButtons() const override;
+ GroupedPermissionInfoBarDelegate(
+ const GURL& requesting_origin,
+ const std::vector<ContentSettingsType>& types);
- // InfoBarDelegate:
+ // ConfirmInfoBarDelegate:
+ InfoBarIdentifier GetIdentifier() const override;
Type GetInfoBarType() const override;
+ int GetButtons() const override;
+ base::string16 GetButtonLabel(InfoBarButton button) const override;
const GURL requesting_origin_;
const std::vector<ContentSettingsType> types_;
std::vector<bool> accept_states_;
+ // Whether the accept/deny decision is persisted.
bool persist_;
DISALLOW_COPY_AND_ASSIGN(GroupedPermissionInfoBarDelegate);
};
-#endif // CHROME_BROWSER_PERMISSIONS_GROUPED_PERMISSION_INFOBAR_DELEGATE_H_
+#endif // CHROME_BROWSER_PERMISSIONS_GROUPED_PERMISSION_INFOBAR_DELEGATE_ANDROID_H_

Powered by Google App Engine
This is Rietveld 408576698