| // Copyright (c) 2013 The Chromium Embedded Framework 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 "tests/shared/browser/resource_util.h" |
| |
| #include <stdio.h> |
| |
| namespace client { |
| |
| namespace { |
| |
| bool FileExists(const char* path) { |
| FILE* f = fopen(path, "rb"); |
| if (f) { |
| fclose(f); |
| return true; |
| } |
| return false; |
| } |
| |
| bool ReadFileToString(const char* path, std::string& data) { |
| // Implementation adapted from base/file_util.cc |
| FILE* file = fopen(path, "rb"); |
| if (!file) |
| return false; |
| |
| char buf[1 << 16]; |
| size_t len; |
| while ((len = fread(buf, 1, sizeof(buf), file)) > 0) |
| data.append(buf, len); |
| fclose(file); |
| |
| return true; |
| } |
| |
| } // namespace |
| |
| bool LoadBinaryResource(const char* resource_name, std::string& resource_data) { |
| std::string path; |
| if (!GetResourceDir(path)) |
| return false; |
| |
| path.append("/"); |
| path.append(resource_name); |
| |
| return ReadFileToString(path.c_str(), resource_data); |
| } |
| |
| CefRefPtr<CefStreamReader> GetBinaryResourceReader(const char* resource_name) { |
| std::string path; |
| if (!GetResourceDir(path)) |
| return nullptr; |
| |
| path.append("/"); |
| path.append(resource_name); |
| |
| if (!FileExists(path.c_str())) |
| return nullptr; |
| |
| return CefStreamReader::CreateForFile(path); |
| } |
| |
| } // namespace client |