Index: chrome/browser/ui/webui/md_bookmarks_ui.cc |
diff --git a/chrome/browser/ui/webui/md_bookmarks_ui.cc b/chrome/browser/ui/webui/md_bookmarks_ui.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f86493a2a5c049f60b7751c5639ec0cf51a155b5 |
--- /dev/null |
+++ b/chrome/browser/ui/webui/md_bookmarks_ui.cc |
@@ -0,0 +1,98 @@ |
+// Copyright (c) 2016 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/md_bookmarks_ui.h" |
+ |
+#include "base/memory/ref_counted_memory.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/common/chrome_features.h" |
+#include "chrome/common/url_constants.h" |
+#include "chrome/grit/browser_resources.h" |
+#include "chrome/grit/generated_resources.h" |
+#include "chrome/grit/theme_resources.h" |
+#include "components/strings/grit/components_strings.h" |
+#include "content/public/browser/url_data_source.h" |
+#include "content/public/browser/web_ui.h" |
+#include "content/public/browser/web_ui_data_source.h" |
+#include "ui/base/resource/resource_bundle.h" |
+ |
+namespace { |
+ |
+content::WebUIDataSource* CreateMdBookmarksUIHTMLSource(Profile* profile) { |
+ content::WebUIDataSource* source = |
+ content::WebUIDataSource::Create(chrome::kChromeUIBookmarksHost); |
+ |
+ // Localized strings (alphabetical order). |
+ source->AddLocalizedString("title", IDS_BOOKMARK_MANAGER_TITLE); |
+ source->AddLocalizedString("search_button", |
+ IDS_BOOKMARK_MANAGER_SEARCH_BUTTON); |
+ source->AddLocalizedString("folders_menu", IDS_BOOKMARK_MANAGER_FOLDERS_MENU); |
+ source->AddLocalizedString("organize_menu", |
+ IDS_BOOKMARK_MANAGER_ORGANIZE_MENU); |
+ source->AddLocalizedString("show_in_folder", |
+ IDS_BOOKMARK_MANAGER_SHOW_IN_FOLDER); |
+ source->AddLocalizedString("sort", IDS_BOOKMARK_MANAGER_SORT); |
+ source->AddLocalizedString("import_menu", IDS_BOOKMARK_MANAGER_IMPORT_MENU); |
+ source->AddLocalizedString("export_menu", IDS_BOOKMARK_MANAGER_EXPORT_MENU); |
+ source->AddLocalizedString("rename_folder", IDS_BOOKMARK_BAR_RENAME_FOLDER); |
+ source->AddLocalizedString("edit", IDS_BOOKMARK_BAR_EDIT); |
+ source->AddLocalizedString("should_open_all", |
+ IDS_BOOKMARK_BAR_SHOULD_OPEN_ALL); |
+ source->AddLocalizedString("open_incognito", IDS_BOOKMARK_BAR_OPEN_INCOGNITO); |
+ source->AddLocalizedString("open_in_new_tab", |
+ IDS_BOOKMARK_BAR_OPEN_IN_NEW_TAB); |
+ source->AddLocalizedString("open_in_new_window", |
+ IDS_BOOKMARK_BAR_OPEN_IN_NEW_WINDOW); |
+ source->AddLocalizedString("add_new_bookmark", |
+ IDS_BOOKMARK_BAR_ADD_NEW_BOOKMARK); |
+ source->AddLocalizedString("new_folder", IDS_BOOKMARK_BAR_NEW_FOLDER); |
+ source->AddLocalizedString("open_all", IDS_BOOKMARK_BAR_OPEN_ALL); |
+ source->AddLocalizedString("open_all_new_window", |
+ IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW); |
+ source->AddLocalizedString("open_all_incognito", |
+ IDS_BOOKMARK_BAR_OPEN_ALL_INCOGNITO); |
+ source->AddLocalizedString("remove", IDS_BOOKMARK_BAR_REMOVE); |
+ source->AddLocalizedString("copy", IDS_CONTENT_CONTEXT_COPY); |
+ source->AddLocalizedString("cut", IDS_CONTENT_CONTEXT_CUT); |
+ source->AddLocalizedString("paste", IDS_CONTENT_CONTEXT_PASTE); |
+ source->AddLocalizedString("delete", IDS_CONTENT_CONTEXT_DELETE); |
+ source->AddLocalizedString("undo_delete", IDS_UNDO_DELETE); |
+ source->AddLocalizedString("new_folder_name", |
+ IDS_BOOKMARK_EDITOR_NEW_FOLDER_NAME); |
+ source->AddLocalizedString("name_input_placeholder", |
+ IDS_BOOKMARK_MANAGER_NAME_INPUT_PLACE_HOLDER); |
+ source->AddLocalizedString("url_input_placeholder", |
+ IDS_BOOKMARK_MANAGER_URL_INPUT_PLACE_HOLDER); |
+ source->AddLocalizedString("invalid_url", IDS_BOOKMARK_MANAGER_INVALID_URL); |
+ source->AddLocalizedString("recent", IDS_BOOKMARK_MANAGER_RECENT); |
+ source->AddLocalizedString("search", IDS_BOOKMARK_MANAGER_SEARCH); |
+ source->AddLocalizedString("save", IDS_SAVE); |
+ source->AddLocalizedString("cancel", IDS_CANCEL); |
Dan Beam
2016/10/29 01:10:00
dang, can we add this as needed?
calamity
2016/11/01 02:37:59
Good point. Done.
|
+ |
+ source->SetDefaultResource(IDR_MD_BOOKMARKS_BOOKMARKS_HTML); |
+ source->SetJsonPath("strings.js"); |
+ |
+ return source; |
+} |
+ |
+} // namespace |
+ |
+MdBookmarksUI::MdBookmarksUI(content::WebUI* web_ui) : WebUIController(web_ui) { |
+ // Set up the chrome://bookmarks/ source. |
+ Profile* profile = Profile::FromWebUI(web_ui); |
+ content::WebUIDataSource::Add(profile, |
+ CreateMdBookmarksUIHTMLSource(profile)); |
+} |
+ |
+// static |
+bool MdBookmarksUI::IsEnabled() { |
+ return base::FeatureList::IsEnabled(features::kMaterialDesignBookmarks); |
+} |
+ |
+// static |
+base::RefCountedMemory* MdBookmarksUI::GetFaviconResourceBytes( |
Dan Beam
2016/10/29 01:10:00
can we de-dupe this with other bookmarks?
calamity
2016/11/01 02:37:59
Done.
|
+ ui::ScaleFactor scale_factor) { |
+ return ui::ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale( |
+ IDR_BOOKMARKS_FAVICON, scale_factor); |
+} |