Commit bc6f03c0 authored by Noel Gordon's avatar Noel Gordon Committed by Chromium LUCI CQ

[filesapp] Add SWA UI class to SWA page handler mojo pipe constructor

Mojo requests from the SWA WebContents appear on the receiving SWA page
handler mojo endpoint for servicing - that servicing will be handled by
the SWA UI class or its delegate.

Add the SWA UI class to the page handler mojo pipe constructor. Mention
it is the owning |this| since the page handler pipe is both created and
owned by the SWA UI class.

Bug: 1113981
Change-Id: Ic32e748df303cbaf26b82fe15d39c8b02cee92c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2580980Reviewed-by: default avatarAlex Danilo <adanilo@chromium.org>
Commit-Queue: Noel Gordon <noel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#835086}
parent 9a93f505
...@@ -4,16 +4,20 @@ ...@@ -4,16 +4,20 @@
#include "chromeos/components/file_manager/file_manager_page_handler.h" #include "chromeos/components/file_manager/file_manager_page_handler.h"
#include "base/bind.h" #include "chromeos/components/file_manager/file_manager_ui.h"
namespace chromeos { namespace chromeos {
namespace file_manager { namespace file_manager {
FileManagerPageHandler::FileManagerPageHandler( FileManagerPageHandler::FileManagerPageHandler(
FileManagerUI* file_manager_ui,
mojo::PendingReceiver<mojom::PageHandler> pending_receiver, mojo::PendingReceiver<mojom::PageHandler> pending_receiver,
mojo::PendingRemote<mojom::Page> pending_page) mojo::PendingRemote<mojom::Page> pending_page)
: receiver_{this, std::move(pending_receiver)}, : file_manager_ui_(file_manager_ui),
page_{std::move(pending_page)} {} receiver_(this, std::move(pending_receiver)),
page_(std::move(pending_page)) {
DCHECK(file_manager_ui_);
}
FileManagerPageHandler::~FileManagerPageHandler() = default; FileManagerPageHandler::~FileManagerPageHandler() = default;
......
...@@ -16,10 +16,13 @@ ...@@ -16,10 +16,13 @@
namespace chromeos { namespace chromeos {
namespace file_manager { namespace file_manager {
class FileManagerUI;
// Class backing the page's functionality. // Class backing the page's functionality.
class FileManagerPageHandler : public mojom::PageHandler { class FileManagerPageHandler : public mojom::PageHandler {
public: public:
FileManagerPageHandler( FileManagerPageHandler(
FileManagerUI* file_manager_ui,
mojo::PendingReceiver<mojom::PageHandler> pending_receiver, mojo::PendingReceiver<mojom::PageHandler> pending_receiver,
mojo::PendingRemote<mojom::Page> pending_page); mojo::PendingRemote<mojom::Page> pending_page);
~FileManagerPageHandler() override; ~FileManagerPageHandler() override;
...@@ -28,6 +31,7 @@ class FileManagerPageHandler : public mojom::PageHandler { ...@@ -28,6 +31,7 @@ class FileManagerPageHandler : public mojom::PageHandler {
FileManagerPageHandler& operator=(const FileManagerPageHandler&) = delete; FileManagerPageHandler& operator=(const FileManagerPageHandler&) = delete;
private: private:
FileManagerUI* file_manager_ui_; // Owns |this|.
mojo::Receiver<mojom::PageHandler> receiver_; mojo::Receiver<mojom::PageHandler> receiver_;
mojo::Remote<mojom::Page> page_; mojo::Remote<mojom::Page> page_;
}; };
......
...@@ -69,7 +69,7 @@ void FileManagerUI::CreatePageHandler( ...@@ -69,7 +69,7 @@ void FileManagerUI::CreatePageHandler(
DCHECK(pending_page.is_valid()); DCHECK(pending_page.is_valid());
page_handler_ = std::make_unique<FileManagerPageHandler>( page_handler_ = std::make_unique<FileManagerPageHandler>(
std::move(pending_page_handler), std::move(pending_page)); this, std::move(pending_page_handler), std::move(pending_page));
} }
WEB_UI_CONTROLLER_TYPE_IMPL(FileManagerUI) WEB_UI_CONTROLLER_TYPE_IMPL(FileManagerUI)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment