Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Unified Diff: chrome/browser/bookmarks/bookmark_editor.cc

Issue 7670041: Add --use-more-webui runtime flag to toggle WebUI replacements for native dialogs. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/bookmarks/bookmark_editor.cc
diff --git a/chrome/browser/bookmarks/bookmark_editor.cc b/chrome/browser/bookmarks/bookmark_editor.cc
index 2e940fcfc9c6b5313b27854fd008cf9da45cde02..a425cb01b02afb746b3034b61dce038676adae3f 100644
--- a/chrome/browser/bookmarks/bookmark_editor.cc
+++ b/chrome/browser/bookmarks/bookmark_editor.cc
@@ -2,19 +2,80 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/string_number_conversions.h"
+#include "base/stringprintf.h"
#include "chrome/browser/bookmarks/bookmark_editor.h"
+#include "chrome/browser/bookmarks/bookmark_model.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/webui/chrome_web_ui.h"
+#include "chrome/common/url_constants.h"
#include "googleurl/src/gurl.h"
-BookmarkEditor::EditDetails::EditDetails()
- : type(NEW_URL),
- existing_node(NULL) {
+// TODO(flackr): Remove this and create runtime flag for webui dialogs
Rick Byers 2011/08/18 19:25:30 I'm confused, I thought creating a runtime flag is
flackr 2011/08/23 17:41:44 Oops that was leftover from when I was using --use
+#include "views/widget/widget.h"
+
+BookmarkEditor::EditDetails::EditDetails() {
+}
+
+BookmarkEditor::EditDetails BookmarkEditor::EditDetails::EditNode(
+ const BookmarkNode* node) {
+ EditDetails details;
+ details.type = EXISTING_NODE;
+ details.existing_node = node;
+ return details;
+}
+
+BookmarkEditor::EditDetails BookmarkEditor::EditDetails::AddNodeInFolder(
+ const BookmarkNode* parent_node) {
+ EditDetails details;
+ details.type = NEW_URL;
+ details.parent_node = parent_node;
+ return details;
}
-BookmarkEditor::EditDetails::EditDetails(const BookmarkNode* node)
- : type(EXISTING_NODE),
- existing_node(node) {
+BookmarkEditor::EditDetails BookmarkEditor::EditDetails::AddFolder(
+ const BookmarkNode* parent_node) {
+ EditDetails details;
+ details.type = NEW_FOLDER;
+ details.parent_node = parent_node;
+ return details;
}
BookmarkEditor::EditDetails::~EditDetails() {
}
+
+void BookmarkEditor::Show(gfx::NativeWindow parent_window,
+ Profile* profile,
+ const EditDetails& details,
+ Configuration configuration) {
+ if (ChromeWebUI::IsMoreWebUI() && (
Rick Byers 2011/08/18 19:25:30 Minor, but it might be nice to split the WebUI por
flackr 2011/08/23 17:41:44 Done.
+ details.type == EditDetails::EXISTING_NODE ||
Rick Byers 2011/08/18 19:25:30 This is (very) temporary, right? Add a TODO for i
Rick Byers 2011/08/18 19:25:30 Is this indentation level right? Off the top of m
flackr 2011/08/23 17:41:44 Done.
flackr 2011/08/23 17:41:44 Done.
+ details.type == EditDetails::NEW_URL)) {
+ GURL url(chrome::kChromeUIBookmarksURL);
+ if (details.type == EditDetails::EXISTING_NODE) {
+ DCHECK(details.existing_node);
+ url = url.Resolve(StringPrintf("/#e=%s",
+ base::Int64ToString(details.existing_node->id()).c_str()));
+ } else if (details.type == EditDetails::NEW_URL) {
+ DCHECK(details.parent_node);
+ url = url.Resolve(StringPrintf("/#a=%s",
+ base::Int64ToString(details.parent_node->id()).c_str()));
+ } else {
+ NOTREACHED() << "Unhandled bookmark edit details type";
+ }
+ // Get parent browser object.
+ Browser* browser = BrowserList::GetLastActiveWithProfile(profile);
+ DCHECK(browser);
+ browser::NavigateParams params(
+ browser->GetSingletonTabNavigateParams(url));
+ params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE;
+ browser->ShowSingletonTabOverwritingNTP(params);
+ return;
+ }
+
+ // Delegate to the platform native bookmark editor code.
+ ShowNative(parent_window, profile, details.parent_node, details,
+ configuration);
+}

Powered by Google App Engine
This is Rietveld 408576698