Home | History | Annotate | Download | only in ui
      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_
     38