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