Chromium Code Reviews| Index: chrome/browser/platform_util_chromeos.cc |
| =================================================================== |
| --- chrome/browser/platform_util_chromeos.cc (revision 0) |
| +++ chrome/browser/platform_util_chromeos.cc (revision 0) |
| @@ -0,0 +1,86 @@ |
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/platform_util.h" |
| + |
| +#include <gtk/gtk.h> |
| + |
| +#include "app/gtk_util.h" |
| +#include "base/file_util.h" |
| +#include "base/process_util.h" |
| +#include "base/utf_string_conversions.h" |
| +#include "chrome/common/process_watcher.h" |
| +#include "googleurl/src/gurl.h" |
| + |
| +#include "chrome/browser/chrome_thread.h" |
| +#include "chrome/browser/browser_list.h" |
| +#include "chrome/browser/dom_ui/filebrowse_ui.h" |
| +#include "chrome/browser/dom_ui/mediaplayer_ui.h" |
| + |
| +class Profile; |
| + |
| +namespace platform_util { |
| + |
| +// TODO(estade): It would be nice to be able to select the file in the file |
| +// manager, but that probably requires extending xdg-open. For now just |
| +// show the folder. |
| +void ShowItemInFolder(const FilePath& full_path) { |
| + FilePath dir = full_path.DirName(); |
| + if (!file_util::DirectoryExists(dir)) |
| + return; |
| + |
| + Profile* profile; |
| + profile = BrowserList::GetLastActive()->profile(); |
| + |
| + FileBrowseUI::OpenPopup(profile, |
| + dir.value(), |
| + FileBrowseUI::kPopupWidth, |
| + FileBrowseUI::kPopupHeight); |
| +} |
| + |
| +void OpenItem(const FilePath& full_path) { |
| + std::string ext = full_path.Extension(); |
| + // For things supported natively by the browser, we should open it |
| + // in a tab. |
| + if (ext == ".jpg" || |
|
M-A Ruel
2010/12/13 15:52:54
Could you create a global constant array instead?
|
| + ext == ".jpeg" || |
| + ext == ".png" || |
| + ext == ".gif" || |
| + ext == ".html" || |
| + ext == ".htm") { |
| + std::string path; |
| + path = "file://"; |
| + path += full_path.value(); |
| + if (!ChromeThread::CurrentlyOn(ChromeThread::UI)) { |
| + bool result = ChromeThread::PostTask( |
| + ChromeThread::UI, FROM_HERE, |
| + NewRunnableFunction(&OpenItem, full_path)); |
| + DCHECK(result); |
| + return; |
| + } |
| + Browser* browser = BrowserList::GetLastActive(); |
| + browser->AddTabWithURL( |
| + GURL(path), GURL(), PageTransition::LINK, |
| + true, -1, false, NULL); |
| + return; |
| + } |
| + if (ext == ".avi" || |
| + ext == ".mp4" || |
| + ext == ".mp3" || |
| + ext == ".mkv" || |
| + ext == ".ogg") { |
| + MediaPlayer* mediaplayer = MediaPlayer::Get(); |
| + std::string url = "file://"; |
| + url += full_path.value(); |
| + GURL gurl(url); |
| + mediaplayer->EnqueueMediaURL(gurl); |
| + return; |
| + } |
| +} |
| + |
| +void OpenExternal(const GURL& url) { |
| + |
| +} |
| + |
| +} // namespace platform_util |
| Property changes on: chrome/browser/platform_util_chromeos.cc |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |