summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordumi@chromium.org <dumi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-17 19:51:21 +0000
committerdumi@chromium.org <dumi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-17 19:51:21 +0000
commit5457ddcce3a246db5b32ca8d76075b90505bb9c8 (patch)
treed76109289ee6209f666c042066faadcc5d953c68
parent3ec5d77459b2bd7e994065f46e3559c471e87639 (diff)
downloadchromium_src-5457ddcce3a246db5b32ca8d76075b90505bb9c8.zip
chromium_src-5457ddcce3a246db5b32ca8d76075b90505bb9c8.tar.gz
chromium_src-5457ddcce3a246db5b32ca8d76075b90505bb9c8.tar.bz2
Change FileRef::GetName() to return the name of the file even for
external files. BUG=none TEST=none Review URL: http://codereview.chromium.org/5127002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66504 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ppapi/tests/test_file_ref.cc4
-rw-r--r--webkit/glue/plugins/pepper_file_ref.cc14
2 files changed, 14 insertions, 4 deletions
diff --git a/ppapi/tests/test_file_ref.cc b/ppapi/tests/test_file_ref.cc
index e096903..b1062a7 100644
--- a/ppapi/tests/test_file_ref.cc
+++ b/ppapi/tests/test_file_ref.cc
@@ -139,8 +139,8 @@ std::string TestFileRef::TestGetName() {
pp::FileRef_Dev file_ref_ext(response_info.GetBodyAsFileRef());
name = file_ref_ext.GetName().AsString();
- if (name != "")
- return ReportMismatch("FileRef::GetName", name, "<empty string>");
+ if (name == "")
+ return ReportMismatch("FileRef::GetName", name, "<a temp file>");
return "";
}
diff --git a/webkit/glue/plugins/pepper_file_ref.cc b/webkit/glue/plugins/pepper_file_ref.cc
index 67e39e3..6068a29 100644
--- a/webkit/glue/plugins/pepper_file_ref.cc
+++ b/webkit/glue/plugins/pepper_file_ref.cc
@@ -266,8 +266,18 @@ const PPB_FileRef_Dev* FileRef::GetInterface() {
}
std::string FileRef::GetName() const {
- if (GetFileSystemType() == PP_FILESYSTEMTYPE_EXTERNAL)
- return std::string();
+ if (GetFileSystemType() == PP_FILESYSTEMTYPE_EXTERNAL) {
+ FilePath::StringType path = system_path_.value();
+ size_t pos = path.rfind(FilePath::kSeparators[0]);
+ DCHECK(pos != FilePath::StringType::npos);
+#if defined(OS_WIN)
+ return WideToUTF8(path.substr(pos + 1));
+#elif defined(OS_POSIX)
+ return path.substr(pos + 1);
+#else
+#error "Unsupported platform."
+#endif
+ }
if (virtual_path_.size() == 1 && virtual_path_[0] == '/')
return virtual_path_;