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 f378828cfdf1d40db7a1f5e4733f2a893c25afbf..4d652324093f3096e81e864fc570d26f0760d072 100644 |
--- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm |
+++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm |
@@ -1028,24 +1028,25 @@ 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 (id urlString in urls) { |
+ // Refactor this code. |
+ // https://crbug.com/665261. |
+ GURL url = url_formatter::FixupURL(base::SysNSStringToUTF8(urlString), |
+ 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; |
+ |
+ OpenURLParams params(url, Referrer(), |
+ WindowOpenDisposition::NEW_FOREGROUND_TAB, |
+ 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) |