ppapi_webkitplatformsupport_impl.h revision f2477e01787aa58f445919b809d89e252beef54f
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CONTENT_PPAPI_PLUGIN_PPAPI_WEBKITPLATFORMSUPPORT_IMPL_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CONTENT_PPAPI_PLUGIN_PPAPI_WEBKITPLATFORMSUPPORT_IMPL_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h"
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/child/webkitplatformsupport_impl.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PpapiWebKitPlatformSupportImpl : public WebKitPlatformSupportImpl {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PpapiWebKitPlatformSupportImpl();
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~PpapiWebKitPlatformSupportImpl();
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // WebKitPlatformSupport methods:
20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebClipboard* clipboard();
21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebMimeRegistry* mimeRegistry();
22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebFileUtilities* fileUtilities();
23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebSandboxSupport* sandboxSupport();
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool sandboxEnabled();
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual unsigned long long visitedLinkHash(const char* canonicalURL,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             size_t length);
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool isLinkVisited(unsigned long long linkHash);
28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebMessagePortChannel* createMessagePortChannel();
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual void setCookies(const blink::WebURL& url,
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                          const blink::WebURL& first_party_for_cookies,
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                          const blink::WebString& value);
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebString cookies(
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      const blink::WebURL& url,
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      const blink::WebURL& first_party_for_cookies);
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebString defaultLocale();
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebThemeEngine* themeEngine();
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebURLLoader* createURLLoader();
38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebSocketStreamHandle* createSocketStreamHandle();
39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual void getPluginList(bool refresh, blink::WebPluginListBuilder*);
40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebData loadResource(const char* name);
41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebStorageNamespace* createLocalStorageNamespace();
42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual void dispatchStorageEvent(const blink::WebString& key,
43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      const blink::WebString& oldValue, const blink::WebString& newValue,
44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      const blink::WebString& origin, const blink::WebURL& url,
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      bool isLocalStorage);
46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual int databaseDeleteFile(const blink::WebString& vfs_file_name,
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 bool sync_dir);
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  class SandboxSupport;
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  scoped_ptr<SandboxSupport> sandbox_support_;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(PpapiWebKitPlatformSupportImpl);
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CONTENT_PPAPI_PLUGIN_PPAPI_WEBKITPLATFORMSUPPORT_IMPL_H_
59