summaryrefslogtreecommitdiff
path: root/athena/main/url_search_provider.cc
diff options
context:
space:
mode:
Diffstat (limited to 'athena/main/url_search_provider.cc')
-rw-r--r--athena/main/url_search_provider.cc61
1 files changed, 61 insertions, 0 deletions
diff --git a/athena/main/url_search_provider.cc b/athena/main/url_search_provider.cc
new file mode 100644
index 0000000000..ce386ea286
--- /dev/null
+++ b/athena/main/url_search_provider.cc
@@ -0,0 +1,61 @@
+// 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