| Index: chrome/browser/ui/intents/web_intent_picker_controller.cc
|
| diff --git a/chrome/browser/ui/intents/web_intent_picker_controller.cc b/chrome/browser/ui/intents/web_intent_picker_controller.cc
|
| index 2533e312e0c34ac4cc56a469d26e85d37b349c6a..2f372045f44e1782c09d7b125922b10dee17f34a 100644
|
| --- a/chrome/browser/ui/intents/web_intent_picker_controller.cc
|
| +++ b/chrome/browser/ui/intents/web_intent_picker_controller.cc
|
| @@ -148,14 +148,14 @@ void WebIntentPickerController::Observe(
|
| ClosePicker();
|
| }
|
|
|
| -void WebIntentPickerController::OnServiceChosen(size_t index,
|
| +void WebIntentPickerController::OnServiceChosen(const GURL& url,
|
| Disposition disposition) {
|
| switch (disposition) {
|
| case WebIntentPickerModel::DISPOSITION_INLINE:
|
| // Set the model to inline disposition. It will notify the picker which
|
| // will respond (via OnInlineDispositionWebContentsCreated) with the
|
| // WebContents to dispatch the intent to.
|
| - picker_model_->SetInlineDisposition(index);
|
| + picker_model_->SetInlineDisposition(url);
|
| break;
|
|
|
| case WebIntentPickerModel::DISPOSITION_WINDOW: {
|
| @@ -164,16 +164,13 @@ void WebIntentPickerController::OnServiceChosen(size_t index,
|
| // during the lifetime of the service url context, and that may mean we
|
| // need to pass more information into the injector to find the picker
|
| // again and close it.
|
| - const WebIntentPickerModel::InstalledService& installed_service =
|
| - picker_model_->GetInstalledServiceAt(index);
|
| -
|
| int index = TabStripModel::kNoTab;
|
| Browser* browser = Browser::GetBrowserForController(
|
| &wrapper_->web_contents()->GetController(), &index);
|
| TabContentsWrapper* contents = Browser::TabContentsFactory(
|
| browser->profile(),
|
| tab_util::GetSiteInstanceForNewTab(
|
| - NULL, browser->profile(), installed_service.url),
|
| + NULL, browser->profile(), url),
|
| MSG_ROUTING_NONE, NULL, NULL);
|
|
|
| intents_dispatcher_->DispatchIntent(contents->web_contents());
|
| @@ -183,7 +180,7 @@ void WebIntentPickerController::OnServiceChosen(size_t index,
|
| // Since we're passing in a target_contents, it assumes that we will
|
| // navigate the page ourselves, though.
|
| browser::NavigateParams params(browser,
|
| - installed_service.url,
|
| + url,
|
| content::PAGE_TRANSITION_AUTO_BOOKMARK);
|
| params.target_contents = contents;
|
| params.disposition = NEW_FOREGROUND_TAB;
|
| @@ -191,7 +188,7 @@ void WebIntentPickerController::OnServiceChosen(size_t index,
|
| browser::Navigate(¶ms);
|
|
|
| service_tab_->GetController().LoadURL(
|
| - installed_service.url, content::Referrer(),
|
| + url, content::Referrer(),
|
| content::PAGE_TRANSITION_AUTO_BOOKMARK, std::string());
|
|
|
| ClosePicker();
|
| @@ -206,16 +203,8 @@ void WebIntentPickerController::OnServiceChosen(size_t index,
|
|
|
| void WebIntentPickerController::OnInlineDispositionWebContentsCreated(
|
| content::WebContents* web_contents) {
|
| - if (web_contents) {
|
| + if (web_contents)
|
| intents_dispatcher_->DispatchIntent(web_contents);
|
| - } else {
|
| - // TODO(binji): web_contents should never be NULL; it is in this case
|
| - // because views doesn't have an implementation for inline disposition yet.
|
| - // Remove this else when it does. In the meantime, just reforward as if it
|
| - // were the window disposition.
|
| - OnServiceChosen(picker_model_->inline_disposition_index(),
|
| - WebIntentPickerModel::DISPOSITION_WINDOW);
|
| - }
|
| }
|
|
|
| void WebIntentPickerController::OnCancelled() {
|
|
|