ppapi_webkitplatformsupport_impl.h revision 868fa2fe829687343ffae624259930155e16dbd8
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:
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebClipboard* clipboard();
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebMimeRegistry* mimeRegistry();
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebFileUtilities* fileUtilities();
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::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);
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebMessagePortChannel* createMessagePortChannel();
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void setCookies(const WebKit::WebURL& url,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                          const WebKit::WebURL& first_party_for_cookies,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                          const WebKit::WebString& value);
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebString cookies(
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const WebKit::WebURL& url,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const WebKit::WebURL& first_party_for_cookies);
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void prefetchHostName(const WebKit::WebString&);
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebString defaultLocale();
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebThemeEngine* themeEngine();
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebURLLoader* createURLLoader();
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebSocketStreamHandle* createSocketStreamHandle();
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void getPluginList(bool refresh, WebKit::WebPluginListBuilder*);
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebData loadResource(const char* name);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WebKit::WebStorageNamespace* createLocalStorageNamespace(
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const WebKit::WebString& path, unsigned quota);
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void dispatchStorageEvent(const WebKit::WebString& key,
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const WebKit::WebString& oldValue, const WebKit::WebString& newValue,
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const WebKit::WebString& origin, const WebKit::WebURL& url,
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      bool isLocalStorage);
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual int databaseDeleteFile(const WebKit::WebString& vfs_file_name,
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 bool sync_dir);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  class SandboxSupport;
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  scoped_ptr<SandboxSupport> sandbox_support_;
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(PpapiWebKitPlatformSupportImpl);
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CONTENT_PPAPI_PLUGIN_PPAPI_WEBKITPLATFORMSUPPORT_IMPL_H_
61