mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 06:07:44 +00:00
LibWeb+WebContent: Plumb ability for WebContent process to hold N pages
In order for same-origin NavigableContainers (iframe, frame, embed, ...) and window.open() WindowProxies to have the proper JS access to their embedder/opener, we need to host multiple top level traversables in the same WebContent process. As a first step, make WebContent::PageHost hold a HashMap of PageClient objects, each holding their own Web::Page that represents a TraversableNavigable's API surface with the UI process.
This commit is contained in:
parent
34ae39478a
commit
fbfb70f81a
13 changed files with 769 additions and 660 deletions
|
@ -33,8 +33,8 @@ public:
|
|||
|
||||
virtual void die() override;
|
||||
|
||||
void initialize_js_console(Badge<PageHost>, Web::DOM::Document& document);
|
||||
void destroy_js_console(Badge<PageHost>, Web::DOM::Document& document);
|
||||
void initialize_js_console(Badge<PageClient>, Web::DOM::Document& document);
|
||||
void destroy_js_console(Badge<PageClient>, Web::DOM::Document& document);
|
||||
|
||||
void request_file(Web::FileRequest);
|
||||
|
||||
|
@ -46,8 +46,8 @@ public:
|
|||
private:
|
||||
explicit ConnectionFromClient(NonnullOwnPtr<Core::LocalSocket>);
|
||||
|
||||
Web::Page& page();
|
||||
Web::Page const& page() const;
|
||||
PageClient& page(u64 index = 0);
|
||||
PageClient const& page(u64 index = 0) const;
|
||||
|
||||
virtual Messages::WebContentServer::GetWindowHandleResponse get_window_handle() override;
|
||||
virtual void set_window_handle(String const& handle) override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue