Upstream version 8.37.180.0
[platform/framework/web/crosswalk.git] / src / athena / main / url_search_provider.cc
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
13 namespace athena {
14
15 namespace {
16
17 class 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
45 UrlSearchProvider::UrlSearchProvider(content::BrowserContext* browser_context)
46     : browser_context_(browser_context) {
47 }
48
49 UrlSearchProvider::~UrlSearchProvider() {
50 }
51
52 void UrlSearchProvider::Start(const base::string16& query) {
53   ClearResults();
54   Add(scoped_ptr<app_list::SearchResult>(
55       new UrlSearchResult(browser_context_, query)));
56 }
57
58 void UrlSearchProvider::Stop() {
59 }
60
61 }  // namespace athena