mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-04 16:46:08 +00:00
FileSystemAccessServer: Manage concurrent file requests
Before this patch, when you called FileSystemAccessServer::Client::try_* twice, the second call used the same variable to store the promise. This "race condition" is now solved using a HashMap, to store multiple parallel requests.
This commit is contained in:
parent
e432a284d7
commit
9521952f36
Notes:
sideshowbarker
2024-07-17 18:38:54 +09:00
Author: https://github.com/LucasChollet
Commit: 9521952f36
Pull-request: https://github.com/SerenityOS/serenity/pull/13870
Issue: https://github.com/SerenityOS/serenity/issues/5259
Reviewed-by: https://github.com/Dexesttp
Reviewed-by: https://github.com/linusg
Reviewed-by: https://github.com/petelliott
6 changed files with 88 additions and 61 deletions
|
@ -27,19 +27,19 @@ public:
|
|||
private:
|
||||
explicit ConnectionFromClient(NonnullOwnPtr<Core::Stream::LocalSocket>);
|
||||
|
||||
virtual void request_file_read_only_approved(i32, i32, String const&) override;
|
||||
virtual void request_file(i32, i32, String const&, Core::OpenMode const&) override;
|
||||
virtual void prompt_open_file(i32, i32, String const&, String const&, Core::OpenMode const&) override;
|
||||
virtual void prompt_save_file(i32, i32, String const&, String const&, String const&, Core::OpenMode const&) override;
|
||||
virtual void request_file_read_only_approved(i32, i32, i32, String const&) override;
|
||||
virtual void request_file(i32, i32, i32, String const&, Core::OpenMode const&) override;
|
||||
virtual void prompt_open_file(i32, i32, i32, String const&, String const&, Core::OpenMode const&) override;
|
||||
virtual void prompt_save_file(i32, i32, i32, String const&, String const&, String const&, Core::OpenMode const&) override;
|
||||
|
||||
void prompt_helper(Optional<String> const&, Core::OpenMode const&);
|
||||
void prompt_helper(i32, Optional<String> const&, Core::OpenMode const&);
|
||||
RefPtr<GUI::Window> create_dummy_child_window(i32, i32);
|
||||
|
||||
enum class ShouldPrompt {
|
||||
No,
|
||||
Yes
|
||||
};
|
||||
void request_file_handler(i32, i32, String const&, Core::OpenMode const&, ShouldPrompt);
|
||||
void request_file_handler(i32, i32, i32, String const&, Core::OpenMode const&, ShouldPrompt);
|
||||
|
||||
virtual Messages::FileSystemAccessServer::ExposeWindowServerClientIdResponse expose_window_server_client_id() override;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue