| Index: chrome/browser/ui/search_engines/search_engine_tab_helper.cc
|
| diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc
|
| index e9c8fd0adb29205dfb1cdceb62ef99d742019327..80eada7f438ff246cb61028c78616ba0de50f9e4 100644
|
| --- a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc
|
| +++ b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc
|
| @@ -23,6 +23,7 @@
|
| #include "content/public/browser/render_process_host.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/common/url_fetcher.h"
|
| +#include "services/service_manager/public/cpp/interface_registry.h"
|
|
|
| using content::NavigationController;
|
| using content::NavigationEntry;
|
| @@ -72,43 +73,46 @@ base::string16 GenerateKeywordFromNavigationEntry(
|
| void AssociateURLFetcherWithWebContents(content::WebContents* web_contents,
|
| net::URLFetcher* url_fetcher) {
|
| content::AssociateURLFetcherWithRenderFrame(
|
| - url_fetcher,
|
| - url::Origin(web_contents->GetURL()),
|
| + url_fetcher, url::Origin(web_contents->GetURL()),
|
| web_contents->GetRenderProcessHost()->GetID(),
|
| web_contents->GetMainFrame()->GetRoutingID());
|
| }
|
|
|
| } // namespace
|
|
|
| -SearchEngineTabHelper::~SearchEngineTabHelper() {
|
| +SearchEngineTabHelper::SearchEngineTabHelper()
|
| + : osdd_handler_binding_(this), weak_factory_(this) {
|
| }
|
|
|
| -void SearchEngineTabHelper::DidFinishNavigation(
|
| - content::NavigationHandle* handle) {
|
| - GenerateKeywordIfNecessary(handle);
|
| +SearchEngineTabHelper::~SearchEngineTabHelper() {
|
| }
|
|
|
| -bool SearchEngineTabHelper::OnMessageReceived(const IPC::Message& message) {
|
| - bool handled = true;
|
| - IPC_BEGIN_MESSAGE_MAP(SearchEngineTabHelper, message)
|
| - IPC_MESSAGE_HANDLER(ChromeViewHostMsg_PageHasOSDD, OnPageHasOSDD)
|
| - IPC_MESSAGE_UNHANDLED(handled = false)
|
| - IPC_END_MESSAGE_MAP()
|
| -
|
| - return handled;
|
| +void SearchEngineTabHelper::RenderFrameCreated(
|
| + content::RenderFrameHost* render_frame_host) {
|
| + render_frame_host->GetInterfaceRegistry()->AddInterface(
|
| + base::Bind(&SearchEngineTabHelper::OnOSDDHandlerRequest,
|
| + weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| -bool SearchEngineTabHelper::OnMessageReceived(
|
| - const IPC::Message& message,
|
| - content::RenderFrameHost* render_frame_host) {
|
| - return OnMessageReceived(message);
|
| +void SearchEngineTabHelper::DidFinishNavigation(
|
| + content::NavigationHandle* handle) {
|
| + GenerateKeywordIfNecessary(handle);
|
| }
|
|
|
| SearchEngineTabHelper::SearchEngineTabHelper(WebContents* web_contents)
|
| - : content::WebContentsObserver(web_contents) {
|
| + : content::WebContentsObserver(web_contents),
|
| + osdd_handler_binding_(this),
|
| + weak_factory_(this) {
|
| DCHECK(web_contents);
|
| }
|
|
|
| +void SearchEngineTabHelper::OnOSDDHandlerRequest(
|
| + chrome::mojom::OSDDHandlerRequest request) {
|
| + if (!osdd_handler_binding_.is_bound()) {
|
| + osdd_handler_binding_.Bind(std::move(request));
|
| + }
|
| +}
|
| +
|
| void SearchEngineTabHelper::OnPageHasOSDD(
|
| const GURL& page_url,
|
| const GURL& osdd_url) {
|
|
|