// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_CHROME_SELECT_FILE_POLICY_H_ #define CHROME_BROWSER_UI_CHROME_SELECT_FILE_POLICY_H_ #include "base/basictypes.h" #include "base/callback_forward.h" #include "base/compiler_specific.h" #include "ui/shell_dialogs/select_file_policy.h" namespace content { class WebContents; } // A chrome specific SelectFilePolicy that checks local_state(), and will // display an infobar on the weakly owned |source_contents|. class ChromeSelectFilePolicy : public ui::SelectFilePolicy { public: explicit ChromeSelectFilePolicy(content::WebContents* source_contents); virtual ~ChromeSelectFilePolicy(); // Overridden from ui::SelectFilePolicy: virtual bool CanOpenSelectFileDialog() OVERRIDE; virtual void SelectFileDenied() OVERRIDE; // Returns true if local state allows showing file pickers. static bool FileSelectDialogsAllowed(); private: content::WebContents* source_contents_; DISALLOW_COPY_AND_ASSIGN(ChromeSelectFilePolicy); }; #endif // CHROME_BROWSER_UI_CHROME_SELECT_FILE_POLICY_H_