1// Copyright (c) 2012 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.
4
5#ifndef WEBFILEUTILITIES_IMPL_H_
6#define WEBFILEUTILITIES_IMPL_H_
7
8#include "base/platform_file.h"
9#include "third_party/WebKit/public/platform/WebFileInfo.h"
10#include "third_party/WebKit/public/platform/WebFileUtilities.h"
11#include "webkit/glue/webkit_glue_export.h"
12
13namespace webkit_glue {
14
15class WEBKIT_GLUE_EXPORT WebFileUtilitiesImpl :
16    NON_EXPORTED_BASE(public WebKit::WebFileUtilities) {
17 public:
18  WebFileUtilitiesImpl();
19  virtual ~WebFileUtilitiesImpl();
20
21  // WebFileUtilities methods:
22  virtual bool getFileInfo(
23      const WebKit::WebString& path,
24      WebKit::WebFileInfo& result);
25  virtual WebKit::WebString directoryName(const WebKit::WebString& path);
26  virtual WebKit::WebString baseName(const WebKit::WebString& path);
27  virtual WebKit::WebURL filePathToURL(const WebKit::WebString& path);
28  virtual base::PlatformFile openFile(const WebKit::WebString& path, int mode);
29  virtual void closeFile(base::PlatformFile& handle);
30  virtual int readFromFile(base::PlatformFile handle, char* data, int length);
31
32  void set_sandbox_enabled(bool sandbox_enabled) {
33    sandbox_enabled_ = sandbox_enabled;
34  }
35
36 protected:
37  bool sandbox_enabled_;
38};
39
40}  // namespace webkit_glue
41
42#endif  // WEBFILEUTILITIES_IMPL_H_
43