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 CONTENT_PPAPI_PLUGIN_PPAPI_WEBKITPLATFORMSUPPORT_IMPL_H_
6#define CONTENT_PPAPI_PLUGIN_PPAPI_WEBKITPLATFORMSUPPORT_IMPL_H_
7
8#include "base/basictypes.h"
9#include "base/memory/scoped_ptr.h"
10#include "content/child/blink_platform_impl.h"
11
12namespace content {
13
14class PpapiWebKitPlatformSupportImpl : public BlinkPlatformImpl {
15 public:
16  PpapiWebKitPlatformSupportImpl();
17  virtual ~PpapiWebKitPlatformSupportImpl();
18
19  // Shutdown must be called just prior to shutting down blink.
20  void Shutdown();
21
22  // WebKitPlatformSupport methods:
23  virtual blink::WebClipboard* clipboard();
24  virtual blink::WebMimeRegistry* mimeRegistry();
25  virtual blink::WebFileUtilities* fileUtilities();
26  virtual blink::WebSandboxSupport* sandboxSupport();
27  virtual bool sandboxEnabled();
28  virtual unsigned long long visitedLinkHash(const char* canonicalURL,
29                                             size_t length);
30  virtual bool isLinkVisited(unsigned long long linkHash);
31  virtual void createMessageChannel(blink::WebMessagePortChannel** channel1,
32                                    blink::WebMessagePortChannel** channel2);
33  virtual void setCookies(const blink::WebURL& url,
34                          const blink::WebURL& first_party_for_cookies,
35                          const blink::WebString& value);
36  virtual blink::WebString cookies(
37      const blink::WebURL& url,
38      const blink::WebURL& first_party_for_cookies);
39  virtual blink::WebString defaultLocale();
40  virtual blink::WebThemeEngine* themeEngine();
41  virtual blink::WebURLLoader* createURLLoader();
42  virtual blink::WebSocketStreamHandle* createSocketStreamHandle();
43  virtual void getPluginList(bool refresh, blink::WebPluginListBuilder*);
44  virtual blink::WebData loadResource(const char* name);
45  virtual blink::WebStorageNamespace* createLocalStorageNamespace();
46  virtual void dispatchStorageEvent(const blink::WebString& key,
47      const blink::WebString& oldValue, const blink::WebString& newValue,
48      const blink::WebString& origin, const blink::WebURL& url,
49      bool isLocalStorage);
50  virtual int databaseDeleteFile(const blink::WebString& vfs_file_name,
51                                 bool sync_dir);
52
53 private:
54  class SandboxSupport;
55  scoped_ptr<SandboxSupport> sandbox_support_;
56
57  DISALLOW_COPY_AND_ASSIGN(PpapiWebKitPlatformSupportImpl);
58};
59
60}  // namespace content
61
62#endif  // CONTENT_PPAPI_PLUGIN_PPAPI_WEBKITPLATFORMSUPPORT_IMPL_H_
63