Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / apps / app_info_dialog / app_info_permissions_tab.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_PERMISSIONS_TAB_H_
6 #define CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_PERMISSIONS_TAB_H_
7
8 #include "chrome/browser/ui/views/apps/app_info_dialog/app_info_tab.h"
9 #include "ui/gfx/native_widget_types.h"
10
11 class Profile;
12
13 namespace extensions {
14 class Extension;
15 class PermissionSet;
16 }
17 namespace views {
18 class ScrollView;
19 }
20
21 // The Permissions tab of the app info dialog, which provides insight and
22 // control over the app's various permissions.
23 class AppInfoPermissionsTab : public AppInfoTab {
24  public:
25   AppInfoPermissionsTab(gfx::NativeWindow parent_window,
26                         Profile* profile,
27                         const extensions::Extension* app,
28                         const base::Closure& close_callback);
29
30   virtual ~AppInfoPermissionsTab();
31
32  private:
33   FRIEND_TEST_ALL_PREFIXES(AppInfoPermissionsTabTest,
34                            NoPermissionsObtainedCorrectly);
35   FRIEND_TEST_ALL_PREFIXES(AppInfoPermissionsTabTest,
36                            RequiredPermissionsObtainedCorrectly);
37   FRIEND_TEST_ALL_PREFIXES(AppInfoPermissionsTabTest,
38                            OptionalPermissionsObtainedCorrectly);
39   FRIEND_TEST_ALL_PREFIXES(AppInfoPermissionsTabTest,
40                            RetainedFilePermissionsObtainedCorrectly);
41
42   // Overridden from views::View:
43   virtual void Layout() OVERRIDE;
44
45   const extensions::PermissionSet* GetRequiredPermissions() const;
46   const std::vector<base::string16> GetRequiredPermissionMessages() const;
47
48   const extensions::PermissionSet* GetOptionalPermissions() const;
49   const std::vector<base::string16> GetOptionalPermissionMessages() const;
50
51   const std::vector<base::FilePath> GetRetainedFilePermissions() const;
52   const std::vector<base::string16> GetRetainedFilePermissionMessages() const;
53
54   views::ScrollView* scroll_view_;
55
56   DISALLOW_COPY_AND_ASSIGN(AppInfoPermissionsTab);
57 };
58
59 #endif  // CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_PERMISSIONS_TAB_H_