1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "athena/main/url_search_provider.h" 6 7#include "athena/activity/public/activity_factory.h" 8#include "athena/activity/public/activity_manager.h" 9#include "base/strings/utf_string_conversions.h" 10#include "ui/app_list/search_result.h" 11#include "url/gurl.h" 12 13namespace athena { 14 15namespace { 16 17class UrlSearchResult : public app_list::SearchResult { 18 public: 19 UrlSearchResult(content::BrowserContext* browser_context, 20 const base::string16& query) 21 : browser_context_(browser_context), url_(query) { 22 set_title(query); 23 app_list::SearchResult::Tags title_tags; 24 title_tags.push_back(app_list::SearchResult::Tag( 25 app_list::SearchResult::Tag::URL, 0, query.size())); 26 set_title_tags(title_tags); 27 set_id(base::UTF16ToUTF8(query)); 28 } 29 30 private: 31 // Overriddenn from app_list::SearchResult: 32 virtual void Open(int event_flags) OVERRIDE { 33 ActivityManager::Get()->AddActivity( 34 ActivityFactory::Get()->CreateWebActivity(browser_context_, url_)); 35 } 36 37 content::BrowserContext* browser_context_; 38 const GURL url_; 39 40 DISALLOW_COPY_AND_ASSIGN(UrlSearchResult); 41}; 42 43} // namespace 44 45UrlSearchProvider::UrlSearchProvider(content::BrowserContext* browser_context) 46 : browser_context_(browser_context) { 47} 48 49UrlSearchProvider::~UrlSearchProvider() { 50} 51 52void UrlSearchProvider::Start(const base::string16& query) { 53 ClearResults(); 54 Add(scoped_ptr<app_list::SearchResult>( 55 new UrlSearchResult(browser_context_, query))); 56} 57 58void UrlSearchProvider::Stop() { 59} 60 61} // namespace athena 62