diff options
author | dhg@chromium.org <dhg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-29 21:44:24 +0000 |
---|---|---|
committer | dhg@chromium.org <dhg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-29 21:44:24 +0000 |
commit | 14a000d1e7ced20cb4866a727323e4ea99f78bf7 (patch) | |
tree | bdee87d2b78ec19c5f64cb2121f61a5d46d12a0b /chrome/browser/platform_util_chromeos.cc | |
parent | 58e1d9a47237870c128fe00fbd2e94e96319ffed (diff) | |
download | chromium_src-14a000d1e7ced20cb4866a727323e4ea99f78bf7.zip chromium_src-14a000d1e7ced20cb4866a727323e4ea99f78bf7.tar.gz chromium_src-14a000d1e7ced20cb4866a727323e4ea99f78bf7.tar.bz2 |
Changing linux platform for chromeos. This involved moving platform_util and extension_error_reporter to browser, so that the UIs surrounding them can be in the browser.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/1705009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45986 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/platform_util_chromeos.cc')
-rw-r--r-- | chrome/browser/platform_util_chromeos.cc | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/chrome/browser/platform_util_chromeos.cc b/chrome/browser/platform_util_chromeos.cc new file mode 100644 index 0000000..a19d3ac --- /dev/null +++ b/chrome/browser/platform_util_chromeos.cc @@ -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" || + 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 |