- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / chrome_select_file_policy.h
1 // Copyright (c) 2012 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_CHROME_SELECT_FILE_POLICY_H_
6 #define CHROME_BROWSER_UI_CHROME_SELECT_FILE_POLICY_H_
7
8 #include "base/basictypes.h"
9 #include "base/callback_forward.h"
10 #include "base/compiler_specific.h"
11 #include "ui/shell_dialogs/select_file_policy.h"
12
13 namespace content {
14 class WebContents;
15 }
16
17 // A chrome specific SelectFilePolicy that checks local_state(), and will
18 // display an infobar on the weakly owned |source_contents|.
19 class ChromeSelectFilePolicy : public ui::SelectFilePolicy {
20  public:
21   explicit ChromeSelectFilePolicy(content::WebContents* source_contents);
22   virtual ~ChromeSelectFilePolicy();
23
24   // Overridden from ui::SelectFilePolicy:
25   virtual bool CanOpenSelectFileDialog() OVERRIDE;
26   virtual void SelectFileDenied() OVERRIDE;
27
28   // Returns true if local state allows showing file pickers.
29   static bool FileSelectDialogsAllowed();
30
31  private:
32   content::WebContents* source_contents_;
33
34   DISALLOW_COPY_AND_ASSIGN(ChromeSelectFilePolicy);
35 };
36
37 #endif  // CHROME_BROWSER_UI_CHROME_SELECT_FILE_POLICY_H_