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

Side by Side Diff: chrome/browser/bookmarks/bookmark_utils.cc

Issue 7205004: Change BrowserList::GetLastActive to respect the profile for which it's launched in the bookmark ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/bookmarks/bookmark_utils.h" 5 #include "chrome/browser/bookmarks/bookmark_utils.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 119
120 // Implementation of OpenAll. Opens all nodes of type URL and any children of 120 // Implementation of OpenAll. Opens all nodes of type URL and any children of
121 // |node| that are of type URL. |navigator| is the PageNavigator used to open 121 // |node| that are of type URL. |navigator| is the PageNavigator used to open
122 // URLs. After the first url is opened |opened_url| is set to true and 122 // URLs. After the first url is opened |opened_url| is set to true and
123 // |navigator| is set to the PageNavigator of the last active tab. This is done 123 // |navigator| is set to the PageNavigator of the last active tab. This is done
124 // to handle a window disposition of new window, in which case we want 124 // to handle a window disposition of new window, in which case we want
125 // subsequent tabs to open in that window. 125 // subsequent tabs to open in that window.
126 void OpenAllImpl(const BookmarkNode* node, 126 void OpenAllImpl(const BookmarkNode* node,
127 WindowOpenDisposition initial_disposition, 127 WindowOpenDisposition initial_disposition,
128 PageNavigator** navigator, 128 PageNavigator** navigator,
129 Profile* profile,
129 bool* opened_url) { 130 bool* opened_url) {
130 if (node->is_url()) { 131 if (node->is_url()) {
131 WindowOpenDisposition disposition; 132 WindowOpenDisposition disposition;
132 if (*opened_url) 133 if (*opened_url)
133 disposition = NEW_BACKGROUND_TAB; 134 disposition = NEW_BACKGROUND_TAB;
134 else 135 else
135 disposition = initial_disposition; 136 disposition = initial_disposition;
136 (*navigator)->OpenURL(node->GetURL(), GURL(), disposition, 137 (*navigator)->OpenURL(node->GetURL(), GURL(), disposition,
137 PageTransition::AUTO_BOOKMARK); 138 PageTransition::AUTO_BOOKMARK);
138 if (!*opened_url) { 139 if (!*opened_url) {
139 *opened_url = true; 140 *opened_url = true;
140 // We opened the first URL which may have opened a new window or clobbered 141 // We opened the first URL which may have opened a new window or clobbered
141 // the current page, reset the navigator just to be sure. 142 // the current page, reset the navigator just to be sure.
142 Browser* new_browser = BrowserList::GetLastActive(); 143 Browser* new_browser = BrowserList::GetLastActiveWithProfile(profile);
143 if (new_browser) { 144 if (new_browser) {
144 TabContents* current_tab = new_browser->GetSelectedTabContents(); 145 TabContents* current_tab = new_browser->GetSelectedTabContents();
145 DCHECK(new_browser && current_tab); 146 DCHECK(new_browser && current_tab);
146 if (new_browser && current_tab) 147 if (new_browser && current_tab)
147 *navigator = current_tab; 148 *navigator = current_tab;
148 } // else, new_browser == NULL, which happens during testing. 149 } // else, new_browser == NULL, which happens during testing.
149 } 150 }
150 } else { 151 } else {
151 // For folders only open direct children. 152 // For folders only open direct children.
152 for (int i = 0; i < node->child_count(); ++i) { 153 for (int i = 0; i < node->child_count(); ++i) {
153 const BookmarkNode* child_node = node->GetChild(i); 154 const BookmarkNode* child_node = node->GetChild(i);
154 if (child_node->is_url()) 155 if (child_node->is_url())
155 OpenAllImpl(child_node, initial_disposition, navigator, opened_url); 156 OpenAllImpl(child_node, initial_disposition, navigator, profile,
157 opened_url);
156 } 158 }
157 } 159 }
158 } 160 }
159 161
160 bool ShouldOpenAll(gfx::NativeWindow parent, 162 bool ShouldOpenAll(gfx::NativeWindow parent,
161 const std::vector<const BookmarkNode*>& nodes) { 163 const std::vector<const BookmarkNode*>& nodes) {
162 int child_count = 0; 164 int child_count = 0;
163 for (size_t i = 0; i < nodes.size(); ++i) 165 for (size_t i = 0; i < nodes.size(); ++i)
164 child_count += ChildURLCount(nodes[i]); 166 child_count += ChildURLCount(nodes[i]);
165 if (child_count < bookmark_utils::num_urls_before_prompting) 167 if (child_count < bookmark_utils::num_urls_before_prompting)
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 if (initial_disposition != NEW_WINDOW && 378 if (initial_disposition != NEW_WINDOW &&
377 initial_disposition != OFF_THE_RECORD) { 379 initial_disposition != OFF_THE_RECORD) {
378 browser->window()->Activate(); 380 browser->window()->Activate();
379 } 381 }
380 navigator = browser->GetSelectedTabContents(); 382 navigator = browser->GetSelectedTabContents();
381 } 383 }
382 } 384 }
383 385
384 bool opened_url = false; 386 bool opened_url = false;
385 for (size_t i = 0; i < nodes.size(); ++i) 387 for (size_t i = 0; i < nodes.size(); ++i)
386 OpenAllImpl(nodes[i], initial_disposition, &navigator, &opened_url); 388 OpenAllImpl(nodes[i], initial_disposition, &navigator, profile,
389 &opened_url);
387 } 390 }
388 391
389 void OpenAll(gfx::NativeWindow parent, 392 void OpenAll(gfx::NativeWindow parent,
390 Profile* profile, 393 Profile* profile,
391 PageNavigator* navigator, 394 PageNavigator* navigator,
392 const BookmarkNode* node, 395 const BookmarkNode* node,
393 WindowOpenDisposition initial_disposition) { 396 WindowOpenDisposition initial_disposition) {
394 std::vector<const BookmarkNode*> nodes; 397 std::vector<const BookmarkNode*> nodes;
395 nodes.push_back(node); 398 nodes.push_back(node);
396 OpenAll(parent, profile, navigator, nodes, initial_disposition); 399 OpenAll(parent, profile, navigator, nodes, initial_disposition);
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 return true; 688 return true;
686 689
687 for (int i = 0; i < node->child_count(); ++i) { 690 for (int i = 0; i < node->child_count(); ++i) {
688 if (NodeHasURLs(node->GetChild(i))) 691 if (NodeHasURLs(node->GetChild(i)))
689 return true; 692 return true;
690 } 693 }
691 return false; 694 return false;
692 } 695 }
693 696
694 } // namespace bookmark_utils 697 } // namespace bookmark_utils
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698