mirror of
https://github.com/RGBCube/serenity
synced 2025-05-19 17:05:06 +00:00
FileSystemAccessServer: Allow read-only access without prompting
This commit adds a new request to the FileSystemAccessServer endpoint, allowing the clients to get read-only access to a file without getting a Dialog-box prompting the user for access. This is only meant to be used in cases where the user has asked specifically to open a file through the command-line arguments. In those cases, I believe it makes sense for the read-only access to be implicit. Always prompting the user gets a bit annoying, especially if you just quickly want to open a file through the CLI. The new request name has been made extremely specific to make sure that it's only used when appropriate.
This commit is contained in:
parent
b37211a615
commit
2a968e92f0
5 changed files with 43 additions and 4 deletions
|
@ -22,6 +22,23 @@ Client& Client::the()
|
|||
return *s_the;
|
||||
}
|
||||
|
||||
Result Client::request_file_read_only_approved(i32 parent_window_id, String const& path)
|
||||
{
|
||||
m_promise = Core::Promise<Result>::construct();
|
||||
auto parent_window_server_client_id = GUI::WindowServerConnection::the().expose_client_id();
|
||||
auto child_window_server_client_id = expose_window_server_client_id();
|
||||
|
||||
GUI::WindowServerConnection::the().async_add_window_stealing_for_client(child_window_server_client_id, parent_window_id);
|
||||
|
||||
ScopeGuard guard([parent_window_id, child_window_server_client_id] {
|
||||
GUI::WindowServerConnection::the().async_remove_window_stealing_for_client(child_window_server_client_id, parent_window_id);
|
||||
});
|
||||
|
||||
async_request_file_read_only_approved(parent_window_server_client_id, parent_window_id, path);
|
||||
|
||||
return m_promise->await();
|
||||
}
|
||||
|
||||
Result Client::request_file(i32 parent_window_id, String const& path, Core::OpenMode mode)
|
||||
{
|
||||
m_promise = Core::Promise<Result>::construct();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue