| Index: chrome/browser/ui/webui/aura/app_list_ui.cc
|
| diff --git a/chrome/browser/ui/webui/aura/app_list_ui.cc b/chrome/browser/ui/webui/aura/app_list_ui.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..574a0aac36b4fb8950001f65c58dc797f01766e2
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/webui/aura/app_list_ui.cc
|
| @@ -0,0 +1,92 @@
|
| +// Copyright (c) 2011 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 "chrome/browser/ui/webui/aura/app_list_ui.h"
|
| +
|
| +#include "base/utf_string_conversions.h"
|
| +#include "chrome/browser/google/google_util.h"
|
| +#include "chrome/browser/prefs/pref_service.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/webui/chrome_web_ui_data_source.h"
|
| +#include "chrome/browser/ui/webui/ntp/app_launcher_handler.h"
|
| +#include "chrome/common/extensions/extension_constants.h"
|
| +#include "chrome/common/pref_names.h"
|
| +#include "chrome/common/url_constants.h"
|
| +#include "content/browser/tab_contents/tab_contents.h"
|
| +#include "grit/browser_resources.h"
|
| +#include "grit/chromium_strings.h"
|
| +#include "grit/generated_resources.h"
|
| +#include "ui/base/l10n/l10n_util.h"
|
| +
|
| +namespace {
|
| +
|
| +static const int kPageIdOffset = 10;
|
| +static const int kIndexMask = (1 << kPageIdOffset) - 1;
|
| +
|
| +// TODO(xiyuan): Merge this with the one on ntp_resource_cache.
|
| +string16 GetUrlWithLang(const GURL& url) {
|
| + return ASCIIToUTF16(google_util::AppendGoogleLocaleParam(url).spec());
|
| +}
|
| +
|
| +ChromeWebUIDataSource* CreateAppListUIHTMLSource(PrefService* prefs) {
|
| + ChromeWebUIDataSource* source =
|
| + new ChromeWebUIDataSource(chrome::kChromeUIAppListHost);
|
| +
|
| + string16 apps = l10n_util::GetStringUTF16(IDS_NEW_TAB_APPS);
|
| + string16 title = l10n_util::GetStringUTF16(IDS_NEW_TAB_TITLE);
|
| +
|
| + DictionaryValue localized_strings;
|
| + localized_strings.SetString("apps", apps);
|
| + localized_strings.SetString("title", title);
|
| + localized_strings.SetString("appuninstall",
|
| + l10n_util::GetStringFUTF16(
|
| + IDS_NEW_TAB_APP_UNINSTALL,
|
| + l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)));
|
| + localized_strings.SetString("appoptions",
|
| + l10n_util::GetStringUTF16(IDS_NEW_TAB_APP_OPTIONS));
|
| + localized_strings.SetString("appcreateshortcut",
|
| + l10n_util::GetStringUTF16(IDS_NEW_TAB_APP_CREATE_SHORTCUT));
|
| + localized_strings.SetString("appDefaultPageName",
|
| + l10n_util::GetStringUTF16(IDS_APP_DEFAULT_PAGE_NAME));
|
| + localized_strings.SetString("applaunchtypepinned",
|
| + l10n_util::GetStringUTF16(IDS_APP_CONTEXT_MENU_OPEN_PINNED));
|
| + localized_strings.SetString("applaunchtyperegular",
|
| + l10n_util::GetStringUTF16(IDS_APP_CONTEXT_MENU_OPEN_REGULAR));
|
| + localized_strings.SetString("applaunchtypewindow",
|
| + l10n_util::GetStringUTF16(IDS_APP_CONTEXT_MENU_OPEN_WINDOW));
|
| + localized_strings.SetString("applaunchtypefullscreen",
|
| + l10n_util::GetStringUTF16(IDS_APP_CONTEXT_MENU_OPEN_FULLSCREEN));
|
| + localized_strings.SetString("web_store_title",
|
| + l10n_util::GetStringUTF16(IDS_EXTENSION_WEB_STORE_TITLE));
|
| + localized_strings.SetString("web_store_url",
|
| + GetUrlWithLang(GURL(extension_urls::GetWebstoreLaunchURL())));
|
| +
|
| + localized_strings.SetString("search-box-hint",
|
| + l10n_util::GetStringUTF16(IDS_SEARCH_BOX_HINT));
|
| +
|
| + // TODO(xiyuan): Maybe need to use another prefs for app list.
|
| + int shown_page = prefs->GetInteger(prefs::kNTPShownPage);
|
| + localized_strings.SetInteger("shown_page_type", shown_page & ~kIndexMask);
|
| + localized_strings.SetInteger("shown_page_index", shown_page & kIndexMask);
|
| +
|
| + source->AddLocalizedStrings(localized_strings);
|
| + source->set_json_path("strings.js");
|
| + source->set_default_resource(IDR_APP_LIST_HTML);
|
| + return source;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +AppListUI::AppListUI(TabContents* contents)
|
| + : ChromeWebUI(contents) {
|
| + ExtensionService* service = GetProfile()->GetExtensionService();
|
| + if (service)
|
| + AddMessageHandler((new AppLauncherHandler(service))->Attach(this));
|
| +
|
| + // Set up the source.
|
| + Profile* profile = Profile::FromBrowserContext(contents->browser_context());
|
| + PrefService* prefs = profile->GetPrefs();
|
| + profile->GetChromeURLDataManager()->AddDataSource(
|
| + CreateAppListUIHTMLSource(prefs));
|
| +}
|
|
|