summaryrefslogtreecommitdiffstats
path: root/chrome/browser/platform_util_chromeos.cc
diff options
context:
space:
mode:
authordhg@chromium.org <dhg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-29 21:44:24 +0000
committerdhg@chromium.org <dhg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-29 21:44:24 +0000
commit14a000d1e7ced20cb4866a727323e4ea99f78bf7 (patch)
treebdee87d2b78ec19c5f64cb2121f61a5d46d12a0b /chrome/browser/platform_util_chromeos.cc
parent58e1d9a47237870c128fe00fbd2e94e96319ffed (diff)
downloadchromium_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.cc86
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