Index: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm |
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm |
index 403bd8db84ba046ee3c1a3ec04ae8d28ef7d57fb..73ce5ce87c0c62be5763220118adefc2bda2eb73 100644 |
--- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm |
+++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm |
@@ -1025,24 +1025,30 @@ class NotificationBridge : public AppMenuIconController::Delegate { |
return; |
} |
- // TODO(viettrungluu): dropping multiple URLs? |
- if ([urls count] > 1) |
- NOTIMPLEMENTED(); |
- |
- // Get the first URL and fix it up. |
- GURL url(url_formatter::FixupURL( |
- base::SysNSStringToUTF8([urls objectAtIndex:0]), std::string())); |
- |
- // Security: Sanitize text to prevent self-XSS. |
- if (url.SchemeIs(url::kJavaScriptScheme)) { |
- browser_->window()->GetLocationBar()->GetOmniboxView()->SetUserText( |
- OmniboxView::StripJavascriptSchemas(base::UTF8ToUTF16(url.spec()))); |
- return; |
+ for (NSUInteger index = 0; index < [urls count]; index++) { |
+ // Refactor this code. |
+ // https://crbug.com/665261. |
+ GURL url = url_formatter::FixupURL( |
+ base::SysNSStringToUTF8([urls objectAtIndex:index]), std::string()); |
+ |
+ // If the URL isn't valid, don't bother. |
+ if (!url.is_valid()) |
+ continue; |
+ |
+ // Security: Sanitize text to prevent self-XSS. |
+ if (url.SchemeIs(url::kJavaScriptScheme)) |
+ continue; |
+ |
+ WindowOpenDisposition disposition; |
+ if (index == 0) |
+ disposition = WindowOpenDisposition::CURRENT_TAB; |
+ else |
+ disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB; |
+ |
+ OpenURLParams params(url, Referrer(), disposition, |
+ ui::PAGE_TRANSITION_TYPED, false); |
+ browser_->tab_strip_model()->GetActiveWebContents()->OpenURL(params); |
} |
- |
- OpenURLParams params(url, Referrer(), WindowOpenDisposition::CURRENT_TAB, |
- ui::PAGE_TRANSITION_TYPED, false); |
- browser_->tab_strip_model()->GetActiveWebContents()->OpenURL(params); |
} |
// (URLDropTargetController protocol) |