Roll src/third_party/skia e66fec2:2bd5d02
[chromium-blink-merge.git] / ppapi / shared_impl / file_ref_create_info.cc
blob7d975b7f597c043d39afafc74e1fcc2bba9c828a
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ppapi/shared_impl/file_ref_create_info.h"
7 #include "base/logging.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "ppapi/c/pp_file_info.h"
11 namespace ppapi {
13 namespace {
15 std::string GetNameForExternalFilePath(const base::FilePath& in_path) {
16 const base::FilePath::StringType& path = in_path.value();
17 size_t pos = path.rfind(base::FilePath::kSeparators[0]);
18 CHECK(pos != base::FilePath::StringType::npos);
19 #if defined(OS_WIN)
20 return base::WideToUTF8(path.substr(pos + 1));
21 #elif defined(OS_POSIX)
22 return path.substr(pos + 1);
23 #else
24 #error "Unsupported platform."
25 #endif
28 } // namespace
30 bool FileRefCreateInfo::IsValid() const {
31 return file_system_type != PP_FILESYSTEMTYPE_INVALID;
34 FileRefCreateInfo MakeExternalFileRefCreateInfo(
35 const base::FilePath& external_path,
36 const std::string& display_name,
37 int browser_pending_host_resource_id,
38 int renderer_pending_host_resource_id) {
39 FileRefCreateInfo info;
40 info.file_system_type = PP_FILESYSTEMTYPE_EXTERNAL;
41 if (!display_name.empty())
42 info.display_name = display_name;
43 else
44 info.display_name = GetNameForExternalFilePath(external_path);
45 info.browser_pending_host_resource_id = browser_pending_host_resource_id;
46 info.renderer_pending_host_resource_id = renderer_pending_host_resource_id;
47 return info;
50 } // namespace ppapi