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

Side by Side Diff: chrome/browser/ui/intents/web_intent_picker_controller.cc

Issue 10391158: Moves methods for finding browsers to browser_finder. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Include fixs Created 8 years, 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/intents/web_intent_picker_controller.h" 5 #include "chrome/browser/ui/intents/web_intent_picker_controller.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "chrome/browser/extensions/webstore_installer.h" 13 #include "chrome/browser/extensions/webstore_installer.h"
14 #include "chrome/browser/favicon/favicon_service.h" 14 #include "chrome/browser/favicon/favicon_service.h"
15 #include "chrome/browser/intents/cws_intents_registry_factory.h" 15 #include "chrome/browser/intents/cws_intents_registry_factory.h"
16 #include "chrome/browser/intents/default_web_intent_service.h" 16 #include "chrome/browser/intents/default_web_intent_service.h"
17 #include "chrome/browser/intents/web_intents_registry_factory.h" 17 #include "chrome/browser/intents/web_intents_registry_factory.h"
18 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/browser/tab_contents/tab_util.h" 19 #include "chrome/browser/tab_contents/tab_util.h"
20 #include "chrome/browser/ui/browser.h" 20 #include "chrome/browser/ui/browser.h"
21 #include "chrome/browser/ui/browser_finder.h"
21 #include "chrome/browser/ui/browser_list.h" 22 #include "chrome/browser/ui/browser_list.h"
22 #include "chrome/browser/ui/browser_navigator.h" 23 #include "chrome/browser/ui/browser_navigator.h"
23 #include "chrome/browser/ui/intents/web_intent_picker.h" 24 #include "chrome/browser/ui/intents/web_intent_picker.h"
24 #include "chrome/browser/ui/intents/web_intent_picker_model.h" 25 #include "chrome/browser/ui/intents/web_intent_picker_model.h"
25 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 26 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
26 #include "chrome/browser/ui/tabs/tab_strip_model.h" 27 #include "chrome/browser/ui/tabs/tab_strip_model.h"
27 #include "chrome/browser/webdata/web_data_service.h" 28 #include "chrome/browser/webdata/web_data_service.h"
28 #include "chrome/common/chrome_notification_types.h" 29 #include "chrome/common/chrome_notification_types.h"
29 #include "chrome/common/url_constants.h" 30 #include "chrome/common/url_constants.h"
30 #include "content/public/browser/browser_thread.h" 31 #include "content/public/browser/browser_thread.h"
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 switch (disposition) { 257 switch (disposition) {
257 case WebIntentPickerModel::DISPOSITION_INLINE: 258 case WebIntentPickerModel::DISPOSITION_INLINE:
258 // Set the model to inline disposition. It will notify the picker which 259 // Set the model to inline disposition. It will notify the picker which
259 // will respond (via OnInlineDispositionWebContentsCreated) with the 260 // will respond (via OnInlineDispositionWebContentsCreated) with the
260 // WebContents to dispatch the intent to. 261 // WebContents to dispatch the intent to.
261 picker_model_->SetInlineDisposition(url); 262 picker_model_->SetInlineDisposition(url);
262 break; 263 break;
263 264
264 case WebIntentPickerModel::DISPOSITION_WINDOW: { 265 case WebIntentPickerModel::DISPOSITION_WINDOW: {
265 int index = TabStripModel::kNoTab; 266 int index = TabStripModel::kNoTab;
266 Browser* browser = Browser::GetBrowserForController( 267 Browser* browser = browser::FindBrowserForController(
267 &wrapper_->web_contents()->GetController(), &index); 268 &wrapper_->web_contents()->GetController(), &index);
268 TabContentsWrapper* contents = Browser::TabContentsFactory( 269 TabContentsWrapper* contents = Browser::TabContentsFactory(
269 wrapper_->profile(), 270 wrapper_->profile(),
270 tab_util::GetSiteInstanceForNewTab( 271 tab_util::GetSiteInstanceForNewTab(
271 wrapper_->profile(), url), 272 wrapper_->profile(), url),
272 MSG_ROUTING_NONE, NULL, NULL); 273 MSG_ROUTING_NONE, NULL, NULL);
273 274
274 intents_dispatcher_->DispatchIntent(contents->web_contents()); 275 intents_dispatcher_->DispatchIntent(contents->web_contents());
275 service_tab_ = contents->web_contents(); 276 service_tab_ = contents->web_contents();
276 277
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 scoped_ptr<WebstoreInstaller::Approval>(NULL), 313 scoped_ptr<WebstoreInstaller::Approval>(NULL),
313 WebstoreInstaller::FLAG_INLINE_INSTALL); 314 WebstoreInstaller::FLAG_INLINE_INSTALL);
314 315
315 pending_async_count_++; 316 pending_async_count_++;
316 installer->Start(); 317 installer->Start();
317 } 318 }
318 319
319 void WebIntentPickerController::OnExtensionLinkClicked(const std::string& id) { 320 void WebIntentPickerController::OnExtensionLinkClicked(const std::string& id) {
320 // Navigate from source tab. 321 // Navigate from source tab.
321 Browser* browser = 322 Browser* browser =
322 BrowserList::FindBrowserWithWebContents(wrapper_->web_contents()); 323 browser::FindBrowserWithWebContents(wrapper_->web_contents());
323 GURL extension_url(extension_urls::GetWebstoreItemDetailURLPrefix() + id); 324 GURL extension_url(extension_urls::GetWebstoreItemDetailURLPrefix() + id);
324 browser::NavigateParams params(browser, extension_url, 325 browser::NavigateParams params(browser, extension_url,
325 content::PAGE_TRANSITION_AUTO_BOOKMARK); 326 content::PAGE_TRANSITION_AUTO_BOOKMARK);
326 params.disposition = NEW_FOREGROUND_TAB; 327 params.disposition = NEW_FOREGROUND_TAB;
327 browser::Navigate(&params); 328 browser::Navigate(&params);
328 } 329 }
329 330
330 void WebIntentPickerController::OnSuggestionsLinkClicked() { 331 void WebIntentPickerController::OnSuggestionsLinkClicked() {
331 // Navigate from source tab. 332 // Navigate from source tab.
332 Browser* browser = 333 Browser* browser =
333 BrowserList::FindBrowserWithWebContents(wrapper_->web_contents()); 334 browser::FindBrowserWithWebContents(wrapper_->web_contents());
334 GURL query_url = extension_urls::GetWebstoreIntentQueryURL( 335 GURL query_url = extension_urls::GetWebstoreIntentQueryURL(
335 UTF16ToUTF8(picker_model_->action()), 336 UTF16ToUTF8(picker_model_->action()),
336 UTF16ToUTF8(picker_model_->mimetype())); 337 UTF16ToUTF8(picker_model_->mimetype()));
337 browser::NavigateParams params(browser, query_url, 338 browser::NavigateParams params(browser, query_url,
338 content::PAGE_TRANSITION_AUTO_BOOKMARK); 339 content::PAGE_TRANSITION_AUTO_BOOKMARK);
339 params.disposition = NEW_FOREGROUND_TAB; 340 params.disposition = NEW_FOREGROUND_TAB;
340 browser::Navigate(&params); 341 browser::Navigate(&params);
341 } 342 }
342 343
343 void WebIntentPickerController::OnPickerClosed() { 344 void WebIntentPickerController::OnPickerClosed() {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 AsyncOperationFinished(); 389 AsyncOperationFinished();
389 } 390 }
390 391
391 void WebIntentPickerController::OnSendReturnMessage( 392 void WebIntentPickerController::OnSendReturnMessage(
392 webkit_glue::WebIntentReplyType reply_type) { 393 webkit_glue::WebIntentReplyType reply_type) {
393 ClosePicker(); 394 ClosePicker();
394 395
395 if (service_tab_ && 396 if (service_tab_ &&
396 reply_type != webkit_glue::WEB_INTENT_SERVICE_CONTENTS_CLOSED) { 397 reply_type != webkit_glue::WEB_INTENT_SERVICE_CONTENTS_CLOSED) {
397 int index = TabStripModel::kNoTab; 398 int index = TabStripModel::kNoTab;
398 Browser* browser = Browser::GetBrowserForController( 399 Browser* browser = browser::FindBrowserForController(
399 &service_tab_->GetController(), &index); 400 &service_tab_->GetController(), &index);
400 if (browser) { 401 if (browser) {
401 browser->tab_strip_model()->CloseTabContentsAt( 402 browser->tab_strip_model()->CloseTabContentsAt(
402 index, TabStripModel::CLOSE_CREATE_HISTORICAL_TAB); 403 index, TabStripModel::CLOSE_CREATE_HISTORICAL_TAB);
403 404
404 // Activate source tab. 405 // Activate source tab.
405 Browser* source_browser = 406 Browser* source_browser =
406 BrowserList::FindBrowserWithWebContents(wrapper_->web_contents()); 407 browser::FindBrowserWithWebContents(wrapper_->web_contents());
407 if (source_browser) { 408 if (source_browser) {
408 int source_index = 409 int source_index =
409 source_browser->tab_strip_model()->GetIndexOfTabContents(wrapper_); 410 source_browser->tab_strip_model()->GetIndexOfTabContents(wrapper_);
410 source_browser->ActivateTabAt(source_index, false); 411 source_browser->ActivateTabAt(source_index, false);
411 } 412 }
412 } 413 }
413 service_tab_ = NULL; 414 service_tab_ = NULL;
414 } 415 }
415 416
416 intents_dispatcher_ = NULL; 417 intents_dispatcher_ = NULL;
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 // If picker is non-NULL, it was set by a test. 685 // If picker is non-NULL, it was set by a test.
685 if (picker_ == NULL) 686 if (picker_ == NULL)
686 picker_ = WebIntentPicker::Create(wrapper_, this, picker_model_.get()); 687 picker_ = WebIntentPicker::Create(wrapper_, this, picker_model_.get());
687 picker_shown_ = true; 688 picker_shown_ = true;
688 } 689 }
689 690
690 void WebIntentPickerController::ClosePicker() { 691 void WebIntentPickerController::ClosePicker() {
691 if (picker_) 692 if (picker_)
692 picker_->Close(); 693 picker_->Close();
693 } 694 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698