Skip to content

Commit

Permalink
Rename mojo instant.mojom to search.mojom
Browse files Browse the repository at this point in the history
As pre step to converting SetSearchURLs to mojo, address renaming
TODO of the mojo interfaces.

* rename instant.mojom to search.mojom
* rename Instant interface to EmbeddedSearch
  as per TODO in mojom file.
* rename SearchBox interface to EmbeddedSearchClient
  as per TODO in mojom file.

Bug: 577685
Change-Id: I807d2035249c22ab9feed2e2ff3643677fe5de40
Reviewed-on: https://chromium-review.googlesource.com/584553
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Noel Gordon <noel@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489836}
  • Loading branch information
Joel Hockey authored and Commit Bot committed Jul 27, 2017
1 parent f17dbbe commit 95b5d20
Show file tree
Hide file tree
Showing 16 changed files with 199 additions and 182 deletions.
2 changes: 1 addition & 1 deletion chrome/browser/ui/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ split_static_library("ui") {
"//chrome/browser/ui/webui/omnibox:mojo_bindings",
"//chrome/browser/ui/webui/usb_internals:mojo_bindings",
"//chrome/common",
"//chrome/common:instant_mojom",
"//chrome/common:search_mojom",
"//chrome/common/net",
"//chrome/installer/util:with_no_strings",
"//components/about_ui",
Expand Down
67 changes: 38 additions & 29 deletions chrome/browser/ui/search/instant_search_prerenderer_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/search/instant_types.h"
#include "chrome/common/search/mock_searchbox.h"
#include "chrome/common/search/mock_embedded_search_client.h"
#include "components/omnibox/browser/autocomplete_match.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/web_contents.h"
Expand All @@ -53,10 +53,11 @@ using testing::Return;

namespace {

class MockSearchBoxClientFactory
: public SearchIPCRouter::SearchBoxClientFactory {
class MockEmbeddedSearchClientFactory
: public SearchIPCRouter::EmbeddedSearchClientFactory {
public:
MOCK_METHOD0(GetSearchBox, chrome::mojom::SearchBox*(void));
MOCK_METHOD0(GetEmbeddedSearchClient,
chrome::mojom::EmbeddedSearchClient*(void));
};

using content::Referrer;
Expand All @@ -69,13 +70,14 @@ using prerender::PrerenderTabHelper;

class DummyPrerenderContents : public PrerenderContents {
public:
DummyPrerenderContents(PrerenderManager* prerender_manager,
Profile* profile,
const GURL& url,
const Referrer& referrer,
Origin origin,
bool call_did_finish_load,
chrome::mojom::SearchBox* search_box);
DummyPrerenderContents(
PrerenderManager* prerender_manager,
Profile* profile,
const GURL& url,
const Referrer& referrer,
Origin origin,
bool call_did_finish_load,
chrome::mojom::EmbeddedSearchClient* embedded_search_client);

void StartPrerendering(
const gfx::Rect& bounds,
Expand All @@ -87,16 +89,18 @@ class DummyPrerenderContents : public PrerenderContents {
Profile* profile_;
const GURL url_;
bool call_did_finish_load_;
chrome::mojom::SearchBox* search_box_;
chrome::mojom::EmbeddedSearchClient* embedded_search_client_;

DISALLOW_COPY_AND_ASSIGN(DummyPrerenderContents);
};

class DummyPrerenderContentsFactory : public PrerenderContents::Factory {
public:
DummyPrerenderContentsFactory(bool call_did_finish_load,
chrome::mojom::SearchBox* search_box)
: call_did_finish_load_(call_did_finish_load), search_box_(search_box) {}
DummyPrerenderContentsFactory(
bool call_did_finish_load,
chrome::mojom::EmbeddedSearchClient* embedded_search_client)
: call_did_finish_load_(call_did_finish_load),
embedded_search_client_(embedded_search_client) {}

PrerenderContents* CreatePrerenderContents(
PrerenderManager* prerender_manager,
Expand All @@ -107,7 +111,7 @@ class DummyPrerenderContentsFactory : public PrerenderContents::Factory {

private:
bool call_did_finish_load_;
chrome::mojom::SearchBox* search_box_;
chrome::mojom::EmbeddedSearchClient* embedded_search_client_;

DISALLOW_COPY_AND_ASSIGN(DummyPrerenderContentsFactory);
};
Expand All @@ -119,12 +123,12 @@ DummyPrerenderContents::DummyPrerenderContents(
const Referrer& referrer,
Origin origin,
bool call_did_finish_load,
chrome::mojom::SearchBox* search_box)
chrome::mojom::EmbeddedSearchClient* embedded_search_client)
: PrerenderContents(prerender_manager, profile, url, referrer, origin),
profile_(profile),
url_(url),
call_did_finish_load_(call_did_finish_load),
search_box_(search_box) {}
embedded_search_client_(embedded_search_client) {}

void DummyPrerenderContents::StartPrerendering(
const gfx::Rect& bounds,
Expand All @@ -140,10 +144,11 @@ void DummyPrerenderContents::StartPrerendering(
SearchTabHelper::CreateForWebContents(prerender_contents_.get());
auto* search_tab =
SearchTabHelper::FromWebContents(prerender_contents_.get());
auto factory = base::MakeUnique<MockSearchBoxClientFactory>();
ON_CALL(*factory, GetSearchBox()).WillByDefault(Return(search_box_));
auto factory = base::MakeUnique<MockEmbeddedSearchClientFactory>();
ON_CALL(*factory, GetEmbeddedSearchClient())
.WillByDefault(Return(embedded_search_client_));
search_tab->ipc_router_for_testing()
.set_search_box_client_factory_for_testing(std::move(factory));
.set_embedded_search_client_factory_for_testing(std::move(factory));

prerendering_has_started_ = true;
DCHECK(session_storage_namespace);
Expand Down Expand Up @@ -171,7 +176,8 @@ PrerenderContents* DummyPrerenderContentsFactory::CreatePrerenderContents(
const Referrer& referrer,
Origin origin) {
return new DummyPrerenderContents(prerender_manager, profile, url, referrer,
origin, call_did_finish_load_, search_box_);
origin, call_did_finish_load_,
embedded_search_client_);
}

} // namespace
Expand All @@ -193,7 +199,7 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase {

PrerenderManagerFactory::GetForBrowserContext(browser()->profile())
->SetPrerenderContentsFactoryForTest(new DummyPrerenderContentsFactory(
call_did_finish_load, &mock_search_box_));
call_did_finish_load, &mock_embedded_search_client_));
if (prerender_search_results_base_page) {
content::SessionStorageNamespace* session_storage_namespace =
GetActiveWebContents()->GetController().
Expand Down Expand Up @@ -238,10 +244,12 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase {
EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle());
}

MockSearchBox* mock_search_box() { return &mock_search_box_; }
MockEmbeddedSearchClient* mock_embedded_search_client() {
return &mock_embedded_search_client_;
}

private:
MockSearchBox mock_search_box_;
MockEmbeddedSearchClient mock_embedded_search_client_;
};

TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) {
Expand All @@ -267,7 +275,7 @@ TEST_F(InstantSearchPrerendererTest, PrefetchSearchResults) {
Init(true, true);
EXPECT_TRUE(prerender_handle()->IsFinishedLoading());
InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer();
EXPECT_CALL(*mock_search_box(), SetSuggestionToPrefetch(_));
EXPECT_CALL(*mock_embedded_search_client(), SetSuggestionToPrefetch(_));
prerenderer->Prerender(
InstantSuggestion(ASCIIToUTF16("flowers"), std::string()));
EXPECT_EQ("flowers", base::UTF16ToASCII(prerenderer->get_last_query()));
Expand All @@ -278,7 +286,8 @@ TEST_F(InstantSearchPrerendererTest, DoNotPrefetchSearchResults) {
// Page hasn't finished loading yet.
EXPECT_FALSE(prerender_handle()->IsFinishedLoading());
InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer();
EXPECT_CALL(*mock_search_box(), SetSuggestionToPrefetch(_)).Times(0);
EXPECT_CALL(*mock_embedded_search_client(), SetSuggestionToPrefetch(_))
.Times(0);
prerenderer->Prerender(
InstantSuggestion(ASCIIToUTF16("flowers"), std::string()));
EXPECT_EQ("", base::UTF16ToASCII(prerenderer->get_last_query()));
Expand All @@ -303,7 +312,7 @@ TEST_F(InstantSearchPrerendererTest, CommitQuery) {
base::string16 query = ASCIIToUTF16("flowers");
PrerenderSearchQuery(query);
InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer();
EXPECT_CALL(*mock_search_box(), Submit(_));
EXPECT_CALL(*mock_embedded_search_client(), Submit(_));
prerenderer->Commit(EmbeddedSearchRequestParams());
}

Expand Down Expand Up @@ -523,7 +532,7 @@ TEST_F(TestUsePrerenderPage, SetEmbeddedSearchRequestParams) {
PrerenderSearchQuery(ASCIIToUTF16("foo"));
EXPECT_TRUE(browser()->instant_controller());
EXPECT_CALL(
*mock_search_box(),
*mock_embedded_search_client(),
Submit(AllOf(Field(&EmbeddedSearchRequestParams::original_query,
Eq(base::ASCIIToUTF16("f"))),
Field(&EmbeddedSearchRequestParams::input_encoding,
Expand Down
55 changes: 28 additions & 27 deletions chrome/browser/ui/search/search_ipc_router.cc
Original file line number Diff line number Diff line change
Expand Up @@ -31,55 +31,56 @@ bool IsInInstantProcess(content::RenderFrameHost* render_frame) {
return instant_service->IsInstantProcess(process_host->GetID());
}

class SearchBoxClientFactoryImpl
: public SearchIPCRouter::SearchBoxClientFactory,
class EmbeddedSearchClientFactoryImpl
: public SearchIPCRouter::EmbeddedSearchClientFactory,
public chrome::mojom::EmbeddedSearchConnector {
public:
// |web_contents| and |binding| must outlive this object.
SearchBoxClientFactoryImpl(
EmbeddedSearchClientFactoryImpl(
content::WebContents* web_contents,
mojo::AssociatedBinding<chrome::mojom::Instant>* binding)
mojo::AssociatedBinding<chrome::mojom::EmbeddedSearch>* binding)
: client_binding_(binding), factory_bindings_(web_contents, this) {
DCHECK(web_contents);
DCHECK(binding);
// Before we are connected to a frame we throw away all messages.
mojo::MakeIsolatedRequest(&search_box_);
mojo::MakeIsolatedRequest(&embedded_search_client_);
}

chrome::mojom::SearchBox* GetSearchBox() override {
return search_box_.get();
chrome::mojom::EmbeddedSearchClient* GetEmbeddedSearchClient() override {
return embedded_search_client_.get();
}

private:
void Connect(chrome::mojom::InstantAssociatedRequest request,
chrome::mojom::SearchBoxAssociatedPtrInfo client) override;
void Connect(
chrome::mojom::EmbeddedSearchAssociatedRequest request,
chrome::mojom::EmbeddedSearchClientAssociatedPtrInfo client) override;

// An interface used to push updates to the frame that connected to us. Before
// we've been connected to a frame, messages sent on this interface go into
// the void.
chrome::mojom::SearchBoxAssociatedPtr search_box_;
chrome::mojom::EmbeddedSearchClientAssociatedPtr embedded_search_client_;

// Used to bind incoming interface requests to the implementation, which lives
// in SearchIPCRouter.
mojo::AssociatedBinding<chrome::mojom::Instant>* client_binding_;
mojo::AssociatedBinding<chrome::mojom::EmbeddedSearch>* client_binding_;

// Binding used to listen to connection requests.
content::WebContentsFrameBindingSet<chrome::mojom::EmbeddedSearchConnector>
factory_bindings_;

DISALLOW_COPY_AND_ASSIGN(SearchBoxClientFactoryImpl);
DISALLOW_COPY_AND_ASSIGN(EmbeddedSearchClientFactoryImpl);
};

void SearchBoxClientFactoryImpl::Connect(
chrome::mojom::InstantAssociatedRequest request,
chrome::mojom::SearchBoxAssociatedPtrInfo client) {
void EmbeddedSearchClientFactoryImpl::Connect(
chrome::mojom::EmbeddedSearchAssociatedRequest request,
chrome::mojom::EmbeddedSearchClientAssociatedPtrInfo client) {
content::RenderFrameHost* frame = factory_bindings_.GetCurrentTargetFrame();
const bool is_main_frame = frame->GetParent() == nullptr;
if (!IsInInstantProcess(frame) || !is_main_frame) {
return;
}
client_binding_->Bind(std::move(request));
search_box_.Bind(std::move(client));
embedded_search_client_.Bind(std::move(client));
}

} // namespace
Expand All @@ -93,8 +94,8 @@ SearchIPCRouter::SearchIPCRouter(content::WebContents* web_contents,
commit_counter_(0),
is_active_tab_(false),
binding_(this),
search_box_client_factory_(
new SearchBoxClientFactoryImpl(web_contents, &binding_)) {
embedded_search_client_factory_(
new EmbeddedSearchClientFactoryImpl(web_contents, &binding_)) {
DCHECK(web_contents);
DCHECK(delegate);
DCHECK(policy_.get());
Expand All @@ -104,7 +105,7 @@ SearchIPCRouter::~SearchIPCRouter() = default;

void SearchIPCRouter::OnNavigationEntryCommitted() {
++commit_counter_;
search_box()->SetPageSequenceNumber(commit_counter_);
embedded_search_client()->SetPageSequenceNumber(commit_counter_);
}

void SearchIPCRouter::SendChromeIdentityCheckResult(
Expand All @@ -113,60 +114,60 @@ void SearchIPCRouter::SendChromeIdentityCheckResult(
if (!policy_->ShouldProcessChromeIdentityCheck())
return;

search_box()->ChromeIdentityCheckResult(identity, identity_match);
embedded_search_client()->ChromeIdentityCheckResult(identity, identity_match);
}

void SearchIPCRouter::SendHistorySyncCheckResult(bool sync_history) {
if (!policy_->ShouldProcessHistorySyncCheck())
return;

search_box()->HistorySyncCheckResult(sync_history);
embedded_search_client()->HistorySyncCheckResult(sync_history);
}

void SearchIPCRouter::SetSuggestionToPrefetch(
const InstantSuggestion& suggestion) {
if (!policy_->ShouldSendSetSuggestionToPrefetch())
return;

search_box()->SetSuggestionToPrefetch(suggestion);
embedded_search_client()->SetSuggestionToPrefetch(suggestion);
}

void SearchIPCRouter::SetInputInProgress(bool input_in_progress) {
if (!policy_->ShouldSendSetInputInProgress(is_active_tab_))
return;

search_box()->SetInputInProgress(input_in_progress);
embedded_search_client()->SetInputInProgress(input_in_progress);
}

void SearchIPCRouter::OmniboxFocusChanged(OmniboxFocusState state,
OmniboxFocusChangeReason reason) {
if (!policy_->ShouldSendOmniboxFocusChanged())
return;

search_box()->FocusChanged(state, reason);
embedded_search_client()->FocusChanged(state, reason);
}

void SearchIPCRouter::SendMostVisitedItems(
const std::vector<InstantMostVisitedItem>& items) {
if (!policy_->ShouldSendMostVisitedItems())
return;

search_box()->MostVisitedChanged(items);
embedded_search_client()->MostVisitedChanged(items);
}

void SearchIPCRouter::SendThemeBackgroundInfo(
const ThemeBackgroundInfo& theme_info) {
if (!policy_->ShouldSendThemeBackgroundInfo())
return;

search_box()->ThemeChanged(theme_info);
embedded_search_client()->ThemeChanged(theme_info);
}

void SearchIPCRouter::Submit(const EmbeddedSearchRequestParams& params) {
if (!policy_->ShouldSubmitQuery())
return;

search_box()->Submit(params);
embedded_search_client()->Submit(params);
}

void SearchIPCRouter::OnTabActivated() {
Expand Down
Loading

0 comments on commit 95b5d20

Please sign in to comment.