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