// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "athena/main/url_search_provider.h" #include "athena/activity/public/activity_factory.h" #include "athena/activity/public/activity_manager.h" #include "base/strings/utf_string_conversions.h" #include "ui/app_list/search_result.h" #include "url/gurl.h" namespace athena { namespace { class UrlSearchResult : public app_list::SearchResult { public: UrlSearchResult(content::BrowserContext* browser_context, const base::string16& query) : browser_context_(browser_context), url_(query) { set_title(query); app_list::SearchResult::Tags title_tags; title_tags.push_back(app_list::SearchResult::Tag( app_list::SearchResult::Tag::URL, 0, query.size())); set_title_tags(title_tags); set_id(base::UTF16ToUTF8(query)); } private: // Overriddenn from app_list::SearchResult: virtual void Open(int event_flags) OVERRIDE { ActivityManager::Get()->AddActivity( ActivityFactory::Get()->CreateWebActivity(browser_context_, url_)); } content::BrowserContext* browser_context_; const GURL url_; DISALLOW_COPY_AND_ASSIGN(UrlSearchResult); }; } // namespace UrlSearchProvider::UrlSearchProvider(content::BrowserContext* browser_context) : browser_context_(browser_context) { } UrlSearchProvider::~UrlSearchProvider() { } void UrlSearchProvider::Start(const base::string16& query) { ClearResults(); Add(scoped_ptr<app_list::SearchResult>( new UrlSearchResult(browser_context_, query))); } void UrlSearchProvider::Stop() { } } // namespace athena