mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add DevTools save dialog support (issue #1614)
This commit is contained in:
81
libcef/browser/devtools/devtools_file_manager.h
Normal file
81
libcef/browser/devtools/devtools_file_manager.h
Normal file
@@ -0,0 +1,81 @@
|
||||
// Copyright 2019 The Chromium Embedded Framework Authors. Portions copyright
|
||||
// 2013 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_DEVTOOLS_DEVTOOLS_FILE_MANAGER_H_
|
||||
#define CEF_LIBCEF_BROWSER_DEVTOOLS_DEVTOOLS_FILE_MANAGER_H_
|
||||
|
||||
#include "base/callback_forward.h"
|
||||
#include "base/macros.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace base {
|
||||
class FilePath;
|
||||
class SequencedTaskRunner;
|
||||
class Value;
|
||||
} // namespace base
|
||||
|
||||
class CefBrowserHostImpl;
|
||||
class PrefService;
|
||||
|
||||
// File management helper for DevTools.
|
||||
// Based on chrome/browser/devtools/devtools_ui_bindings.cc and
|
||||
// chrome/browser/devtools/devtools_file_helper.cc.
|
||||
class CefDevToolsFileManager {
|
||||
public:
|
||||
CefDevToolsFileManager(CefBrowserHostImpl* browser_impl, PrefService* prefs);
|
||||
|
||||
void SaveToFile(const std::string& url,
|
||||
const std::string& content,
|
||||
bool save_as);
|
||||
void AppendToFile(const std::string& url, const std::string& content);
|
||||
|
||||
private:
|
||||
// SaveToFile implementation:
|
||||
typedef base::Callback<void(const std::string&)> SaveCallback;
|
||||
typedef base::Callback<void()> CancelCallback;
|
||||
void Save(const std::string& url,
|
||||
const std::string& content,
|
||||
bool save_as,
|
||||
const SaveCallback& saveCallback,
|
||||
const CancelCallback& cancelCallback);
|
||||
void SaveAsDialogDismissed(const std::string& url,
|
||||
const std::string& content,
|
||||
const SaveCallback& saveCallback,
|
||||
const CancelCallback& cancelCallback,
|
||||
int selected_accept_filter,
|
||||
const std::vector<base::FilePath>& file_paths);
|
||||
void SaveAsFileSelected(const std::string& url,
|
||||
const std::string& content,
|
||||
const SaveCallback& callback,
|
||||
const base::FilePath& path);
|
||||
void FileSavedAs(const std::string& url, const std::string& file_system_path);
|
||||
void CanceledFileSaveAs(const std::string& url);
|
||||
|
||||
// AppendToFile implementation:
|
||||
typedef base::Callback<void(void)> AppendCallback;
|
||||
void Append(const std::string& url,
|
||||
const std::string& content,
|
||||
const AppendCallback& callback);
|
||||
void AppendedTo(const std::string& url);
|
||||
|
||||
void CallClientFunction(const std::string& function_name,
|
||||
const base::Value* arg1,
|
||||
const base::Value* arg2,
|
||||
const base::Value* arg3);
|
||||
|
||||
// Guaranteed to outlive this object.
|
||||
CefBrowserHostImpl* browser_impl_;
|
||||
PrefService* prefs_;
|
||||
|
||||
typedef std::map<std::string, base::FilePath> PathsMap;
|
||||
PathsMap saved_files_;
|
||||
scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
|
||||
base::WeakPtrFactory<CefDevToolsFileManager> weak_factory_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(CefDevToolsFileManager);
|
||||
};
|
||||
|
||||
#endif // CEF_LIBCEF_BROWSER_DEVTOOLS_DEVTOOLS_FILE_MANAGER_H_
|
Reference in New Issue
Block a user