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"
10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "content/child/blink_platform_impl.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass PpapiWebKitPlatformSupportImpl : public BlinkPlatformImpl {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PpapiWebKitPlatformSupportImpl();
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~PpapiWebKitPlatformSupportImpl();
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  // Shutdown must be called just prior to shutting down blink.
20a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  void Shutdown();
21a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // WebKitPlatformSupport methods:
23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebClipboard* clipboard();
24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebMimeRegistry* mimeRegistry();
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebFileUtilities* fileUtilities();
26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebSandboxSupport* sandboxSupport();
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool sandboxEnabled();
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual unsigned long long visitedLinkHash(const char* canonicalURL,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             size_t length);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool isLinkVisited(unsigned long long linkHash);
31c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  virtual void createMessageChannel(blink::WebMessagePortChannel** channel1,
32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch                                    blink::WebMessagePortChannel** channel2);
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual void setCookies(const blink::WebURL& url,
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                          const blink::WebURL& first_party_for_cookies,
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                          const blink::WebString& value);
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebString cookies(
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      const blink::WebURL& url,
38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      const blink::WebURL& first_party_for_cookies);
39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebString defaultLocale();
40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebThemeEngine* themeEngine();
41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebURLLoader* createURLLoader();
42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebSocketStreamHandle* createSocketStreamHandle();
43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual void getPluginList(bool refresh, blink::WebPluginListBuilder*);
44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebData loadResource(const char* name);
45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual blink::WebStorageNamespace* createLocalStorageNamespace();
46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual void dispatchStorageEvent(const blink::WebString& key,
47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      const blink::WebString& oldValue, const blink::WebString& newValue,
48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      const blink::WebString& origin, const blink::WebURL& url,
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      bool isLocalStorage);
50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual int databaseDeleteFile(const blink::WebString& vfs_file_name,
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 bool sync_dir);
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  class SandboxSupport;
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  scoped_ptr<SandboxSupport> sandbox_support_;
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(PpapiWebKitPlatformSupportImpl);
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CONTENT_PPAPI_PLUGIN_PPAPI_WEBKITPLATFORMSUPPORT_IMPL_H_
63