Commit e18b5ed3 authored by Henrique Ferreiro's avatar Henrique Ferreiro Committed by Commit Bot

Migrate snippets_internals.mojom to the new Mojo types

Convert the implementation and all users of the
snippets_internals::mojom::PageHandlerFactory, PageHandler and Page
interfaces.

Bug: 955171
Change-Id: Ifaefd53184ce0f547b5048df1ffe2e144cf5fa4e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1807223Reviewed-by: default avatarEmily Stark <estark@chromium.org>
Reviewed-by: default avatarCarlos Knippschild <carlosk@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Commit-Queue: Henrique Ferreiro <hferreiro@igalia.com>
Cr-Commit-Position: refs/heads/master@{#703483}
parent e7e326d5
...@@ -26,7 +26,8 @@ struct SuggestionItem { ...@@ -26,7 +26,8 @@ struct SuggestionItem {
}; };
interface PageHandlerFactory { interface PageHandlerFactory {
CreatePageHandler(Page page) => (PageHandler handler); CreatePageHandler(pending_remote<Page> page) =>
(pending_remote<PageHandler> handler);
}; };
// Browser interface. // Browser interface.
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "chrome/browser/ui/webui/snippets_internals/snippets_internals.mojom.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "components/ntp_snippets/category_info.h" #include "components/ntp_snippets/category_info.h"
#include "components/ntp_snippets/features.h" #include "components/ntp_snippets/features.h"
...@@ -106,11 +107,11 @@ snippets_internals::mojom::SuggestionItemPtr PrepareContentSuggestionItem( ...@@ -106,11 +107,11 @@ snippets_internals::mojom::SuggestionItemPtr PrepareContentSuggestionItem(
// TODO: Add browser tests. // TODO: Add browser tests.
SnippetsInternalsPageHandler::SnippetsInternalsPageHandler( SnippetsInternalsPageHandler::SnippetsInternalsPageHandler(
snippets_internals::mojom::PageHandlerRequest request, mojo::PendingReceiver<snippets_internals::mojom::PageHandler> receiver,
snippets_internals::mojom::PagePtr page, mojo::PendingRemote<snippets_internals::mojom::Page> page,
ntp_snippets::ContentSuggestionsService* content_suggestions_service, ntp_snippets::ContentSuggestionsService* content_suggestions_service,
PrefService* pref_service) PrefService* pref_service)
: binding_(this, std::move(request)), : receiver_(this, std::move(receiver)),
content_suggestions_service_observer_(this), content_suggestions_service_observer_(this),
content_suggestions_service_(content_suggestions_service), content_suggestions_service_(content_suggestions_service),
remote_suggestions_provider_( remote_suggestions_provider_(
......
...@@ -15,7 +15,10 @@ ...@@ -15,7 +15,10 @@
#include "components/ntp_snippets/content_suggestions_service.h" #include "components/ntp_snippets/content_suggestions_service.h"
#include "components/ntp_snippets/remote/remote_suggestions_provider.h" #include "components/ntp_snippets/remote/remote_suggestions_provider.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
// TODO: Write tests for this. // TODO: Write tests for this.
class SnippetsInternalsPageHandler class SnippetsInternalsPageHandler
...@@ -23,8 +26,8 @@ class SnippetsInternalsPageHandler ...@@ -23,8 +26,8 @@ class SnippetsInternalsPageHandler
public ntp_snippets::ContentSuggestionsService::Observer { public ntp_snippets::ContentSuggestionsService::Observer {
public: public:
explicit SnippetsInternalsPageHandler( explicit SnippetsInternalsPageHandler(
snippets_internals::mojom::PageHandlerRequest request, mojo::PendingReceiver<snippets_internals::mojom::PageHandler> receiver,
snippets_internals::mojom::PagePtr, mojo::PendingRemote<snippets_internals::mojom::Page> page,
ntp_snippets::ContentSuggestionsService* content_suggestions_service, ntp_snippets::ContentSuggestionsService* content_suggestions_service,
PrefService* pref_service); PrefService* pref_service);
~SnippetsInternalsPageHandler() override; ~SnippetsInternalsPageHandler() override;
...@@ -67,8 +70,8 @@ class SnippetsInternalsPageHandler ...@@ -67,8 +70,8 @@ class SnippetsInternalsPageHandler
GetSuggestionsByCategoryCallback callback, GetSuggestionsByCategoryCallback callback,
std::vector<ntp_snippets::ContentSuggestion> suggestions); std::vector<ntp_snippets::ContentSuggestion> suggestions);
// Binding from the mojo interface to concrete impl. // Receiver from the mojo interface to concrete impl.
mojo::Binding<snippets_internals::mojom::PageHandler> binding_; mojo::Receiver<snippets_internals::mojom::PageHandler> receiver_;
// Observer to notify frontend of dirty data. // Observer to notify frontend of dirty data.
ScopedObserver<ntp_snippets::ContentSuggestionsService, ScopedObserver<ntp_snippets::ContentSuggestionsService,
...@@ -90,7 +93,7 @@ class SnippetsInternalsPageHandler ...@@ -90,7 +93,7 @@ class SnippetsInternalsPageHandler
base::OneShotTimer suggestion_fetch_timer_; base::OneShotTimer suggestion_fetch_timer_;
// Handle back to the page by which we can update. // Handle back to the page by which we can update.
snippets_internals::mojom::PagePtr page_; mojo::Remote<snippets_internals::mojom::Page> page_;
base::WeakPtrFactory<SnippetsInternalsPageHandler> weak_ptr_factory_{this}; base::WeakPtrFactory<SnippetsInternalsPageHandler> weak_ptr_factory_{this};
......
...@@ -4,20 +4,25 @@ ...@@ -4,20 +4,25 @@
#include "chrome/browser/ui/webui/snippets_internals/snippets_internals_ui.h" #include "chrome/browser/ui/webui/snippets_internals/snippets_internals_ui.h"
#include <memory>
#include <utility>
#include "base/bind.h" #include "base/bind.h"
#include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h" #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/snippets_internals/snippets_internals.mojom.h"
#include "chrome/browser/ui/webui/snippets_internals/snippets_internals_page_handler.h" #include "chrome/browser/ui/webui/snippets_internals/snippets_internals_page_handler.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
#include "chrome/grit/browser_resources.h" #include "chrome/grit/browser_resources.h"
#include "content/public/browser/web_ui_data_source.h" #include "content/public/browser/web_ui_data_source.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
#include "chrome/browser/android/chrome_feature_list.h" #include "chrome/browser/android/chrome_feature_list.h"
#endif #endif
SnippetsInternalsUI::SnippetsInternalsUI(content::WebUI* web_ui) SnippetsInternalsUI::SnippetsInternalsUI(content::WebUI* web_ui)
: ui::MojoWebUIController(web_ui), binding_(this) { : ui::MojoWebUIController(web_ui) {
content::WebUIDataSource* source = content::WebUIDataSource* source =
content::WebUIDataSource::Create(chrome::kChromeUISnippetsInternalsHost); content::WebUIDataSource::Create(chrome::kChromeUISnippetsInternalsHost);
source->OverrideContentSecurityPolicyScriptSrc( source->OverrideContentSecurityPolicyScriptSrc(
...@@ -41,20 +46,20 @@ SnippetsInternalsUI::SnippetsInternalsUI(content::WebUI* web_ui) ...@@ -41,20 +46,20 @@ SnippetsInternalsUI::SnippetsInternalsUI(content::WebUI* web_ui)
SnippetsInternalsUI::~SnippetsInternalsUI() {} SnippetsInternalsUI::~SnippetsInternalsUI() {}
void SnippetsInternalsUI::BindSnippetsInternalsPageHandlerFactory( void SnippetsInternalsUI::BindSnippetsInternalsPageHandlerFactory(
snippets_internals::mojom::PageHandlerFactoryRequest request) { mojo::PendingReceiver<snippets_internals::mojom::PageHandlerFactory>
if (binding_.is_bound()) receiver) {
binding_.Unbind(); receiver_.reset();
binding_.Bind(std::move(request)); receiver_.Bind(std::move(receiver));
} }
void SnippetsInternalsUI::CreatePageHandler( void SnippetsInternalsUI::CreatePageHandler(
snippets_internals::mojom::PagePtr page, mojo::PendingRemote<snippets_internals::mojom::Page> page,
CreatePageHandlerCallback callback) { CreatePageHandlerCallback callback) {
DCHECK(page); DCHECK(page);
snippets_internals::mojom::PageHandlerPtr handler; mojo::PendingRemote<snippets_internals::mojom::PageHandler> handler;
page_handler_ = std::make_unique<SnippetsInternalsPageHandler>( page_handler_ = std::make_unique<SnippetsInternalsPageHandler>(
mojo::MakeRequest(&handler), std::move(page), handler.InitWithNewPipeAndPassReceiver(), std::move(page),
content_suggestions_service_, pref_service_); content_suggestions_service_, pref_service_);
std::move(callback).Run(std::move(handler)); std::move(callback).Run(std::move(handler));
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
#include "chrome/browser/ui/webui/snippets_internals/snippets_internals.mojom.h" #include "chrome/browser/ui/webui/snippets_internals/snippets_internals.mojom.h"
#include "components/ntp_snippets/content_suggestions_service.h" #include "components/ntp_snippets/content_suggestions_service.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "ui/webui/mojo_web_ui_controller.h" #include "ui/webui/mojo_web_ui_controller.h"
class SnippetsInternalsPageHandler; class SnippetsInternalsPageHandler;
...@@ -23,19 +25,21 @@ class SnippetsInternalsUI ...@@ -23,19 +25,21 @@ class SnippetsInternalsUI
explicit SnippetsInternalsUI(content::WebUI* web_ui); explicit SnippetsInternalsUI(content::WebUI* web_ui);
~SnippetsInternalsUI() override; ~SnippetsInternalsUI() override;
void CreatePageHandler(snippets_internals::mojom::PagePtr page, void CreatePageHandler(
CreatePageHandlerCallback callback) override; mojo::PendingRemote<snippets_internals::mojom::Page> page,
CreatePageHandlerCallback callback) override;
private: private:
void BindSnippetsInternalsPageHandlerFactory( void BindSnippetsInternalsPageHandlerFactory(
snippets_internals::mojom::PageHandlerFactoryRequest request); mojo::PendingReceiver<snippets_internals::mojom::PageHandlerFactory>
receiver);
std::unique_ptr<SnippetsInternalsPageHandler> page_handler_; std::unique_ptr<SnippetsInternalsPageHandler> page_handler_;
ntp_snippets::ContentSuggestionsService* content_suggestions_service_; ntp_snippets::ContentSuggestionsService* content_suggestions_service_;
PrefService* pref_service_; PrefService* pref_service_;
// Binding from the mojo interface to concrete impl. // Receiver from the mojo interface to concrete impl.
mojo::Binding<snippets_internals::mojom::PageHandlerFactory> binding_; mojo::Receiver<snippets_internals::mojom::PageHandlerFactory> receiver_{this};
DISALLOW_COPY_AND_ASSIGN(SnippetsInternalsUI); DISALLOW_COPY_AND_ASSIGN(SnippetsInternalsUI);
}; };
......
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