| Index: chrome/browser/ui/views/website_settings/permission_selector_row.h
|
| diff --git a/chrome/browser/ui/views/website_settings/permission_selector_row.h b/chrome/browser/ui/views/website_settings/permission_selector_row.h
|
| index 28310c39feca93582f9dc6f9e09b8f8ee3889036..51a9b628645660e0eb8347abcbe8f3a0ce34f61e 100644
|
| --- a/chrome/browser/ui/views/website_settings/permission_selector_row.h
|
| +++ b/chrome/browser/ui/views/website_settings/permission_selector_row.h
|
| @@ -10,14 +10,12 @@
|
| #include "base/compiler_specific.h"
|
| #include "base/macros.h"
|
| #include "base/observer_list.h"
|
| -#include "base/strings/string16.h"
|
| #include "chrome/browser/ui/views/website_settings/permission_selector_row_observer.h"
|
| #include "chrome/browser/ui/website_settings/permission_menu_model.h"
|
| #include "chrome/browser/ui/website_settings/website_settings_ui.h"
|
| #include "components/content_settings/core/common/content_settings.h"
|
| #include "components/content_settings/core/common/content_settings_types.h"
|
| #include "ui/views/controls/button/menu_button_listener.h"
|
| -#include "ui/views/view.h"
|
|
|
| class Profile;
|
|
|
| @@ -27,30 +25,37 @@ class PermissionCombobox;
|
| class PermissionMenuButton;
|
| }
|
|
|
| +namespace test {
|
| +class WebsiteSettingsPopupViewTestApi;
|
| +}
|
| +
|
| namespace views {
|
| class GridLayout;
|
| class ImageView;
|
| +class Label;
|
| +class View;
|
| }
|
|
|
| -// A PermissionSelectorRow is a row in the Page Info bubble that shows a
|
| +// A |PermissionSelectorRow| is a row in the Page Info bubble that shows a
|
| // permission that a site can have ambient access to, and allows the user to
|
| -// control whether that access is granted.
|
| -class PermissionSelectorRow : public views::View {
|
| +// control whether that access is granted. A |PermissionSelectorRow| is not
|
| +// itself a |View|, but creates some |View|s, which end up owned by the |View|
|
| +// hierarchy.
|
| +class PermissionSelectorRow {
|
| public:
|
| + // The |PermissionSelectorRow|'s constituent views are added to |layout|.
|
| PermissionSelectorRow(Profile* profile,
|
| const GURL& url,
|
| - const WebsiteSettingsUI::PermissionInfo& permission);
|
| + const WebsiteSettingsUI::PermissionInfo& permission,
|
| + views::GridLayout* layout);
|
| + virtual ~PermissionSelectorRow();
|
|
|
| void AddObserver(PermissionSelectorRowObserver* observer);
|
|
|
| void PermissionChanged(const WebsiteSettingsUI::PermissionInfo& permission);
|
|
|
| - protected:
|
| - // Overridden from views::View.
|
| - void ChildPreferredSizeChanged(View* child) override;
|
| -
|
| private:
|
| - ~PermissionSelectorRow() override;
|
| + friend class test::WebsiteSettingsPopupViewTestApi;
|
|
|
| void InitializeMenuButtonView(
|
| views::GridLayout* layout,
|
| @@ -59,15 +64,21 @@ class PermissionSelectorRow : public views::View {
|
| views::GridLayout* layout,
|
| const WebsiteSettingsUI::PermissionInfo& permission);
|
|
|
| + // Returns the "button" for this row, which is the control used to change the
|
| + // permission's value. This is either a |MenuButton| or a |Combobox|.
|
| + views::View* button();
|
| +
|
| Profile* profile_;
|
|
|
| // Model for the permission's menu.
|
| std::unique_ptr<PermissionMenuModel> menu_model_;
|
| std::unique_ptr<internal::ComboboxModelAdapter> combobox_model_adapter_;
|
|
|
| - views::ImageView* icon_; // Owned by the views hierachy.
|
| - internal::PermissionMenuButton* menu_button_; // Owned by the views hierachy.
|
| - internal::PermissionCombobox* combobox_; // Owned by the views hierarchy.
|
| + // These are all owned by the views hierarchy:
|
| + views::ImageView* icon_;
|
| + views::Label* label_;
|
| + internal::PermissionMenuButton* menu_button_;
|
| + internal::PermissionCombobox* combobox_;
|
|
|
| base::ObserverList<PermissionSelectorRowObserver, false> observer_list_;
|
|
|
|
|