| Index: chrome/browser/bookmarks/bookmark_editor.cc
 | 
| diff --git a/chrome/browser/bookmarks/bookmark_editor.cc b/chrome/browser/bookmarks/bookmark_editor.cc
 | 
| index 78013fbed27132c647cae3b1fe55dfe707cfe439..ad17386994a531e811ce44a1ca8d6247857fae80 100644
 | 
| --- a/chrome/browser/bookmarks/bookmark_editor.cc
 | 
| +++ b/chrome/browser/bookmarks/bookmark_editor.cc
 | 
| @@ -3,6 +3,7 @@
 | 
|  // found in the LICENSE file.
 | 
|  
 | 
|  #include "chrome/browser/bookmarks/bookmark_editor.h"
 | 
| +#include "chrome/browser/bookmarks/bookmark_input_window_dialog_controller.h"
 | 
|  #include "chrome/browser/bookmarks/bookmark_model.h"
 | 
|  #include "chrome/browser/ui/webui/chrome_web_ui.h"
 | 
|  
 | 
| @@ -20,16 +21,20 @@ BookmarkEditor::EditDetails BookmarkEditor::EditDetails::EditNode(
 | 
|  }
 | 
|  
 | 
|  BookmarkEditor::EditDetails BookmarkEditor::EditDetails::AddNodeInFolder(
 | 
| -    const BookmarkNode* parent_node) {
 | 
| +    const BookmarkNode* parent_node,
 | 
| +    int index) {
 | 
|    EditDetails details(NEW_URL);
 | 
|    details.parent_node = parent_node;
 | 
| +  details.index = index;
 | 
|    return details;
 | 
|  }
 | 
|  
 | 
|  BookmarkEditor::EditDetails BookmarkEditor::EditDetails::AddFolder(
 | 
| -    const BookmarkNode* parent_node) {
 | 
| +    const BookmarkNode* parent_node,
 | 
| +    int index) {
 | 
|    EditDetails details(NEW_FOLDER);
 | 
|    details.parent_node = parent_node;
 | 
| +  details.index = index;
 | 
|    return details;
 | 
|  }
 | 
|  
 | 
| @@ -43,16 +48,19 @@ void BookmarkEditor::Show(gfx::NativeWindow parent_window,
 | 
|  #if defined(USE_AURA)
 | 
|    // TODO(saintlou): Aura uses always "more WebUI". Remove test when flackr is
 | 
|    // done as per his note below.
 | 
| -  if (details.type == EditDetails::EXISTING_NODE ||
 | 
| -        details.type == EditDetails::NEW_URL) {
 | 
| -    ShowWebUI(profile, details);
 | 
| +  if (details.type != EditDetails::NEW_FOLDER || details.urls.empty()) {
 | 
| +    BookmarkInputWindowDialogController::Show(profile, parent_window, details);
 | 
|    }
 | 
|  #else
 | 
| -  // TODO(flackr): Implement NEW_FOLDER type in WebUI and remove the type check.
 | 
| -  if (ChromeWebUI::IsMoreWebUI() && (
 | 
| -        details.type == EditDetails::EXISTING_NODE ||
 | 
| -        details.type == EditDetails::NEW_URL)) {
 | 
| -    ShowWebUI(profile, details);
 | 
| +  // TODO(flackr): Implement NEW_FOLDER type with non-empty |details.urls| in
 | 
| +  // WebUI and remove the type check.
 | 
| +  if ((ChromeWebUI::IsMoreWebUI() &&
 | 
| +       (details.type != EditDetails::NEW_FOLDER || details.urls.empty())) ||
 | 
| +      (details.type == EditDetails::EXISTING_NODE &&
 | 
| +       details.existing_node->is_folder()) ||
 | 
| +      (details.type == EditDetails::NEW_FOLDER &&
 | 
| +       details.urls.empty())) {
 | 
| +    BookmarkInputWindowDialogController::Show(profile, parent_window, details);
 | 
|      return;
 | 
|    }
 | 
|  
 | 
| 
 |