| Index: chrome/browser/platform_util_chromeos.cc
|
| diff --git a/chrome/browser/platform_util_chromeos.cc b/chrome/browser/platform_util_chromeos.cc
|
| index 7ccdd5851ba477cabb03abf334f5e1ffefac105b..8824183362c3a302a59cf1c0858105021308737e 100644
|
| --- a/chrome/browser/platform_util_chromeos.cc
|
| +++ b/chrome/browser/platform_util_chromeos.cc
|
| @@ -4,12 +4,8 @@
|
|
|
| #include "chrome/browser/platform_util.h"
|
|
|
| -#include "base/bind.h"
|
| #include "chrome/browser/chromeos/file_manager/open_util.h"
|
| -#include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/browser/ui/browser_navigator.h"
|
| -#include "chrome/browser/ui/host_desktop.h"
|
| -#include "chrome/browser/ui/tabs/tab_strip_model.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "url/gurl.h"
|
|
|
| @@ -20,17 +16,6 @@ namespace {
|
| const char kGmailComposeUrl[] =
|
| "https://mail.google.com/mail/?extsrc=mailto&url=";
|
|
|
| -void OpenURL(const std::string& url) {
|
| - // TODO(beng): improve this to locate context from call stack.
|
| - chrome::NavigateParams params(
|
| - ProfileManager::GetDefaultProfileOrOffTheRecord(),
|
| - GURL(url),
|
| - content::PAGE_TRANSITION_LINK);
|
| - params.disposition = NEW_FOREGROUND_TAB;
|
| - params.host_desktop_type = chrome::HOST_DESKTOP_TYPE_ASH;
|
| - chrome::Navigate(¶ms);
|
| -}
|
| -
|
| } // namespace
|
|
|
| namespace platform_util {
|
| @@ -45,7 +30,9 @@ void OpenItem(const base::FilePath& full_path) {
|
| file_manager::util::OpenItem(full_path);
|
| }
|
|
|
| -void OpenExternal(const GURL& url) {
|
| +void OpenExternal(Profile* profile, const GURL& url) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| +
|
| // This code should be obsolete since we have default handlers in ChromeOS
|
| // which should handle this. However - there are two things which make it
|
| // necessary to keep it in:
|
| @@ -55,15 +42,17 @@ void OpenExternal(const GURL& url) {
|
| // this function directly and which would therefore break (e.g.
|
| // "Browser::EmailPageLocation" (to name only one).
|
| // As such we should keep this code here.
|
| + chrome::NavigateParams params(profile, url, content::PAGE_TRANSITION_LINK);
|
| + params.disposition = NEW_FOREGROUND_TAB;
|
| + params.host_desktop_type = chrome::HOST_DESKTOP_TYPE_ASH;
|
| +
|
| if (url.SchemeIs("mailto")) {
|
| std::string string_url = kGmailComposeUrl;
|
| string_url.append(url.spec());
|
| - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
| - base::Bind(OpenURL, string_url));
|
| - } else if (url.is_valid()) {
|
| - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
| - base::Bind(OpenURL, url.spec()));
|
| + params.url = GURL(url);
|
| }
|
| +
|
| + chrome::Navigate(¶ms);
|
| }
|
|
|
| } // namespace platform_util
|
|
|