mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	- Remove |accept_lang| parameter from CefJSDialogHandler::OnJSDialog and CefFormatUrlForSecurityDisplay (see https://crbug.com/336973#c36). - Remove remaining NPAPI-related code including functions from cef_web_plugin.h (see https://crbug.com/493212#c55). - Mac: 10.7+ deployment target is now required for client applications. - Mac: Remove CefBrowserHost::SetWindowVisibility (issue #1375). No replacement is required for windowed rendering. Use WasHidden for off-screen rendering. - Windows: Visual Studio 2015 Update 2 is now required when building CEF/Chromium.
		
			
				
	
	
		
			99 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2012 The Chromium Embedded Framework Authors.
 | |
| // Portions 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 CEF_LIBCEF_BROWSER_FILE_DIALOG_MANAGER_H_
 | |
| #define CEF_LIBCEF_BROWSER_FILE_DIALOG_MANAGER_H_
 | |
| #pragma once
 | |
| 
 | |
| #include "include/cef_browser.h"
 | |
| #include "libcef/browser/file_dialog_runner.h"
 | |
| 
 | |
| #include "base/compiler_specific.h"
 | |
| #include "base/memory/weak_ptr.h"
 | |
| #include "content/public/browser/web_contents_observer.h"
 | |
| 
 | |
| namespace content {
 | |
| class WebContents;
 | |
| }
 | |
| 
 | |
| namespace net {
 | |
| class DirectoryLister;
 | |
| }
 | |
| 
 | |
| class CefBrowserHostImpl;
 | |
| 
 | |
| class CefFileDialogManager : public content::WebContentsObserver {
 | |
|  public:
 | |
|   // |runner| may be NULL if the platform doesn't implement dialogs.
 | |
|   CefFileDialogManager(
 | |
|       CefBrowserHostImpl* browser,
 | |
|       std::unique_ptr<CefFileDialogRunner> runner);
 | |
|   ~CefFileDialogManager() override;
 | |
| 
 | |
|   // Delete the runner to free any platform constructs.
 | |
|   void Destroy();
 | |
| 
 | |
|   // Called from CefBrowserHostImpl::RunFileChooser.
 | |
|   // See CefBrowserHost::RunFileDialog documentation.
 | |
|   void RunFileDialog(
 | |
|       cef_file_dialog_mode_t mode,
 | |
|       const CefString& title,
 | |
|       const CefString& default_file_path,
 | |
|       const std::vector<CefString>& accept_filters,
 | |
|       int selected_accept_filter,
 | |
|       CefRefPtr<CefRunFileDialogCallback> callback);
 | |
| 
 | |
|   // Called from CefBrowserHostImpl::RunFileChooser.
 | |
|   // See WebContentsDelegate::RunFileChooser documentation.
 | |
|   void RunFileChooser(
 | |
|     content::WebContents* web_contents,
 | |
|     const content::FileChooserParams& params);
 | |
| 
 | |
|   // Run the file chooser dialog specified by |params|. Only a single dialog may
 | |
|   // be pending at any given time. |callback| will be executed asynchronously
 | |
|   // after the dialog is dismissed or if another dialog is already pending.
 | |
|   void RunFileChooser(
 | |
|       const CefFileDialogRunner::FileChooserParams& params,
 | |
|       const CefFileDialogRunner::RunFileChooserCallback& callback);
 | |
| 
 | |
|  private:
 | |
|   // Used with RunFileChooser to clear the |file_chooser_pending_| flag.
 | |
|   void OnRunFileChooserCallback(
 | |
|       const CefFileDialogRunner::RunFileChooserCallback& callback,
 | |
|       int selected_accept_filter,
 | |
|       const std::vector<base::FilePath>& file_paths);
 | |
| 
 | |
|   // Used with WebContentsDelegate::RunFileChooser when mode is
 | |
|   // content::FileChooserParams::UploadFolder.
 | |
|   void OnRunFileChooserUploadFolderDelegateCallback(
 | |
|       const content::FileChooserParams::Mode mode,
 | |
|       int selected_accept_filter,
 | |
|       const std::vector<base::FilePath>& file_paths);
 | |
| 
 | |
|   // Used with WebContentsDelegate::RunFileChooser to notify the WebContents.
 | |
|   void OnRunFileChooserDelegateCallback(
 | |
|       content::FileChooserParams::Mode mode,
 | |
|       int selected_accept_filter,
 | |
|       const std::vector<base::FilePath>& file_paths);
 | |
| 
 | |
|   // CefBrowserHostImpl pointer is guaranteed to outlive this object.
 | |
|   CefBrowserHostImpl* browser_;
 | |
| 
 | |
|   std::unique_ptr<CefFileDialogRunner> runner_;
 | |
| 
 | |
|   // True if a file chooser is currently pending.
 | |
|   bool file_chooser_pending_;
 | |
| 
 | |
|   // Used for asynchronously listing directory contents.
 | |
|   std::unique_ptr<net::DirectoryLister> lister_;
 | |
| 
 | |
|   // Must be the last member.
 | |
|   base::WeakPtrFactory<CefFileDialogManager> weak_ptr_factory_;
 | |
| 
 | |
|   DISALLOW_COPY_AND_ASSIGN(CefFileDialogManager);
 | |
| };
 | |
| 
 | |
| #endif  // CEF_LIBCEF_BROWSER_JAVASCRIPT_DIALOG_MANAGER_H_
 |