| 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..7c2612313d1f82481198ac1d9c02228c3404245b 100644
|
| --- a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc
|
| +++ b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc
|
| @@ -72,8 +72,7 @@ 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());
|
| }
|
| @@ -88,34 +87,24 @@ void SearchEngineTabHelper::DidFinishNavigation(
|
| GenerateKeywordIfNecessary(handle);
|
| }
|
|
|
| -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;
|
| -}
|
| -
|
| -bool SearchEngineTabHelper::OnMessageReceived(
|
| - const IPC::Message& message,
|
| - content::RenderFrameHost* render_frame_host) {
|
| - return OnMessageReceived(message);
|
| -}
|
| -
|
| SearchEngineTabHelper::SearchEngineTabHelper(WebContents* web_contents)
|
| - : content::WebContentsObserver(web_contents) {
|
| + : content::WebContentsObserver(web_contents),
|
| + osdd_handler_bindings_(web_contents, this) {
|
| DCHECK(web_contents);
|
| }
|
|
|
| -void SearchEngineTabHelper::OnPageHasOSDD(
|
| +void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
|
| const GURL& page_url,
|
| const GURL& osdd_url) {
|
| // Checks to see if we should generate a keyword based on the OSDD, and if
|
| // necessary uses TemplateURLFetcher to download the OSDD and create a
|
| // keyword.
|
|
|
| + // Only accept messages from the main frame.
|
| + if (osdd_handler_bindings_.GetCurrentTargetFrame() !=
|
| + web_contents()->GetMainFrame())
|
| + return;
|
| +
|
| // Make sure that the page is the current page and other basic checks.
|
| // When |page_url| has file: scheme, this method doesn't work because of
|
| // http://b/issue?id=863583. For that reason, this doesn't check and allow
|
|
|