diff options
Diffstat (limited to 'chromium/content/ppapi_plugin')
9 files changed, 122 insertions, 137 deletions
diff --git a/chromium/content/ppapi_plugin/broker_process_dispatcher.cc b/chromium/content/ppapi_plugin/broker_process_dispatcher.cc index 727506c9f83..5f1ff63a0c5 100644 --- a/chromium/content/ppapi_plugin/broker_process_dispatcher.cc +++ b/chromium/content/ppapi_plugin/broker_process_dispatcher.cc @@ -81,8 +81,6 @@ BrokerProcessDispatcher::BrokerProcessDispatcher( flash_browser_operations_1_3_(NULL), flash_browser_operations_1_2_(NULL), flash_browser_operations_1_0_(NULL) { - ChildProcess::current()->AddRefProcess(); - if (get_plugin_interface) { flash_browser_operations_1_0_ = static_cast<const PPP_Flash_BrowserOperations_1_0*>( @@ -105,10 +103,7 @@ BrokerProcessDispatcher::~BrokerProcessDispatcher() { // plugin. This is the case for common plugins where they may be used on a // source and destination page of a navigation. We don't want to tear down // and re-start processes each time in these cases. - base::MessageLoop::current()->PostDelayedTask( - FROM_HERE, - base::Bind(&ChildProcess::ReleaseProcess, - base::Unretained(ChildProcess::current())), + process_ref_.ReleaseWithDelay( base::TimeDelta::FromSeconds(kBrokerReleaseTimeSeconds)); } diff --git a/chromium/content/ppapi_plugin/broker_process_dispatcher.h b/chromium/content/ppapi_plugin/broker_process_dispatcher.h index dd8c6a6294b..7b6471765f1 100644 --- a/chromium/content/ppapi_plugin/broker_process_dispatcher.h +++ b/chromium/content/ppapi_plugin/broker_process_dispatcher.h @@ -7,6 +7,7 @@ #include "base/basictypes.h" #include "base/memory/weak_ptr.h" +#include "content/child/scoped_child_process_reference.h" #include "ppapi/c/ppp.h" #include "ppapi/proxy/broker_dispatcher.h" #include "ppapi/shared_impl/ppp_flash_browser_operations_shared.h" @@ -78,6 +79,8 @@ class BrokerProcessDispatcher PP_Flash_BrowserOperations_SettingType setting_type, const ppapi::FlashSiteSettings& sites); + ScopedChildProcessReference process_ref_; + PP_GetInterface_Func get_plugin_interface_; const PPP_Flash_BrowserOperations_1_3* flash_browser_operations_1_3_; diff --git a/chromium/content/ppapi_plugin/plugin_process_dispatcher.cc b/chromium/content/ppapi_plugin/plugin_process_dispatcher.cc index b0574d4853c..3bfc46a3b8b 100644 --- a/chromium/content/ppapi_plugin/plugin_process_dispatcher.cc +++ b/chromium/content/ppapi_plugin/plugin_process_dispatcher.cc @@ -23,7 +23,6 @@ PluginProcessDispatcher::PluginProcessDispatcher( : ppapi::proxy::PluginDispatcher(get_interface, permissions, incognito) { - ChildProcess::current()->AddRefProcess(); } PluginProcessDispatcher::~PluginProcessDispatcher() { @@ -32,10 +31,7 @@ PluginProcessDispatcher::~PluginProcessDispatcher() { // plugin. This is the case for common plugins where they may be used on a // source and destination page of a navigation. We don't want to tear down // and re-start processes each time in these cases. - base::MessageLoop::current()->PostDelayedTask( - FROM_HERE, - base::Bind(&ChildProcess::ReleaseProcess, - base::Unretained(ChildProcess::current())), + process_ref_.ReleaseWithDelay( base::TimeDelta::FromSeconds(kPluginReleaseTimeSeconds)); } diff --git a/chromium/content/ppapi_plugin/plugin_process_dispatcher.h b/chromium/content/ppapi_plugin/plugin_process_dispatcher.h index 1398a067a2c..2d80e0f02ec 100644 --- a/chromium/content/ppapi_plugin/plugin_process_dispatcher.h +++ b/chromium/content/ppapi_plugin/plugin_process_dispatcher.h @@ -6,6 +6,7 @@ #define CONTENT_PPAPI_PLUGIN_PLUGIN_PROCESS_DISPATCHER_H_ #include "base/basictypes.h" +#include "content/child/scoped_child_process_reference.h" #include "ppapi/proxy/plugin_dispatcher.h" namespace content { @@ -21,6 +22,8 @@ class PluginProcessDispatcher : public ppapi::proxy::PluginDispatcher { virtual ~PluginProcessDispatcher(); private: + ScopedChildProcessReference process_ref_; + DISALLOW_COPY_AND_ASSIGN(PluginProcessDispatcher); }; diff --git a/chromium/content/ppapi_plugin/ppapi_plugin_main.cc b/chromium/content/ppapi_plugin/ppapi_plugin_main.cc index dc7cf4a5694..9be65c11e66 100644 --- a/chromium/content/ppapi_plugin/ppapi_plugin_main.cc +++ b/chromium/content/ppapi_plugin/ppapi_plugin_main.cc @@ -10,18 +10,20 @@ #include "build/build_config.h" #include "content/child/child_process.h" #include "content/common/content_constants_internal.h" -#include "content/common/sandbox_linux.h" +#include "content/common/sandbox_linux/sandbox_linux.h" #include "content/ppapi_plugin/ppapi_thread.h" #include "content/public/common/content_client.h" #include "content/public/common/content_switches.h" #include "content/public/common/main_function_params.h" #include "content/public/plugin/content_plugin_client.h" #include "crypto/nss_util.h" +#include "ppapi/proxy/plugin_globals.h" #include "ppapi/proxy/proxy_module.h" #include "ui/base/ui_base_switches.h" #if defined(OS_WIN) #include "sandbox/win/src/sandbox.h" +#include "third_party/skia/include/ports/SkTypeface_win.h" #endif #if defined(OS_LINUX) @@ -40,6 +42,18 @@ void* g_target_services = 0; namespace content { +namespace { + +#if defined(OS_WIN) +// Windows-only skia sandbox support +void SkiaPreCacheFont(const LOGFONT& logfont) { + ppapi::proxy::PluginGlobals::Get()->PreCacheFontForFlash( + reinterpret_cast<const void*>(&logfont)); +} +#endif + +} // namespace + // Main function for starting the PPAPI plugin process. int PpapiPluginMain(const MainFunctionParams& parameters) { const CommandLine& command_line = parameters.command_line; @@ -105,6 +119,10 @@ int PpapiPluginMain(const MainFunctionParams& parameters) { ppapi_process.set_main_thread( new PpapiThread(parameters.command_line, false)); // Not a broker. +#if defined(OS_WIN) + SkTypeface_SetEnsureLOGFONTAccessibleProc(SkiaPreCacheFont); +#endif + main_message_loop.Run(); return 0; } diff --git a/chromium/content/ppapi_plugin/ppapi_thread.cc b/chromium/content/ppapi_plugin/ppapi_thread.cc index 2d46807a371..c79ad230ec1 100644 --- a/chromium/content/ppapi_plugin/ppapi_thread.cc +++ b/chromium/content/ppapi_plugin/ppapi_thread.cc @@ -36,8 +36,9 @@ #include "ppapi/c/ppp.h" #include "ppapi/proxy/interface_list.h" #include "ppapi/proxy/plugin_globals.h" +#include "ppapi/proxy/plugin_message_filter.h" #include "ppapi/proxy/ppapi_messages.h" -#include "ppapi/shared_impl/api_id.h" +#include "ppapi/proxy/resource_reply_thread_registrar.h" #include "third_party/WebKit/public/web/WebKit.h" #include "ui/base/ui_base_switches.h" @@ -60,49 +61,25 @@ namespace content { typedef int32_t (*InitializeBrokerFunc) (PP_ConnectInstance_Func* connect_instance_func); -PpapiThread::DispatcherMessageListener::DispatcherMessageListener( - PpapiThread* owner) : owner_(owner) { -} - -PpapiThread::DispatcherMessageListener::~DispatcherMessageListener() { -} - -bool PpapiThread::DispatcherMessageListener::OnMessageReceived( - const IPC::Message& msg) { - // The first parameter should be a plugin dispatcher ID. - PickleIterator iter(msg); - uint32 id = 0; - if (!msg.ReadUInt32(&iter, &id)) { - NOTREACHED(); - return false; - } - std::map<uint32, ppapi::proxy::PluginDispatcher*>::iterator dispatcher = - owner_->plugin_dispatchers_.find(id); - if (dispatcher != owner_->plugin_dispatchers_.end()) - return dispatcher->second->OnMessageReceived(msg); - - return false; -} - PpapiThread::PpapiThread(const CommandLine& command_line, bool is_broker) : is_broker_(is_broker), connect_instance_func_(NULL), local_pp_module_( base::RandInt(0, std::numeric_limits<PP_Module>::max())), - next_plugin_dispatcher_id_(1), - dispatcher_message_listener_(this) { + next_plugin_dispatcher_id_(1) { ppapi::proxy::PluginGlobals* globals = ppapi::proxy::PluginGlobals::Get(); globals->set_plugin_proxy_delegate(this); globals->set_command_line( command_line.GetSwitchValueASCII(switches::kPpapiFlashArgs)); webkit_platform_support_.reset(new PpapiWebKitPlatformSupportImpl); - WebKit::initialize(webkit_platform_support_.get()); + blink::initialize(webkit_platform_support_.get()); - // Register interfaces that expect messages from the browser process. Please - // note that only those InterfaceProxy-based ones require registration. - AddRoute(ppapi::API_ID_PPB_HOSTRESOLVER_PRIVATE, - &dispatcher_message_listener_); + if (!is_broker_) { + channel()->AddFilter( + new ppapi::proxy::PluginMessageFilter( + NULL, globals->resource_reply_thread_registrar())); + } } PpapiThread::~PpapiThread() { @@ -112,7 +89,8 @@ void PpapiThread::Shutdown() { ppapi::proxy::PluginGlobals::Get()->set_plugin_proxy_delegate(NULL); if (plugin_entry_points_.shutdown_module) plugin_entry_points_.shutdown_module(); - WebKit::shutdown(); + webkit_platform_support_->Shutdown(); + blink::shutdown(); } bool PpapiThread::Send(IPC::Message* msg) { @@ -134,7 +112,6 @@ bool PpapiThread::OnControlMessageReceived(const IPC::Message& msg) { IPC_MESSAGE_HANDLER(PpapiMsg_SetNetworkState, OnSetNetworkState) IPC_MESSAGE_HANDLER(PpapiMsg_Crash, OnCrash) IPC_MESSAGE_HANDLER(PpapiMsg_Hang, OnHang) - IPC_MESSAGE_HANDLER(PpapiPluginMsg_ResourceReply, OnResourceReply) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; @@ -229,7 +206,8 @@ void PpapiThread::Unregister(uint32 plugin_dispatcher_id) { } void PpapiThread::OnLoadPlugin(const base::FilePath& path, - const ppapi::PpapiPermissions& permissions) { + const ppapi::PpapiPermissions& permissions, + bool supports_dev_channel) { // In case of crashes, the crash dump doesn't indicate which plugin // it came from. base::debug::SetCrashKeyValue("ppapi_path", path.MaybeAsASCII()); @@ -239,6 +217,7 @@ void PpapiThread::OnLoadPlugin(const base::FilePath& path, // This must be set before calling into the plugin so it can get the // interfaces it has permission for. ppapi::proxy::InterfaceList::SetProcessGlobalPermissions(permissions); + ppapi::proxy::InterfaceList::SetSupportsDevChannel(supports_dev_channel); permissions_ = permissions; // Trusted Pepper plugins may be "internal", i.e. built-in to the browser @@ -385,13 +364,6 @@ void PpapiThread::OnCreateChannel(base::ProcessId renderer_pid, Send(new PpapiHostMsg_ChannelCreated(channel_handle)); } -void PpapiThread::OnResourceReply( - const ppapi::proxy::ResourceMessageReplyParams& reply_params, - const IPC::Message& nested_msg) { - ppapi::proxy::PluginDispatcher::DispatchResourceReply(reply_params, - nested_msg); -} - void PpapiThread::OnSetNetworkState(bool online) { // Note the browser-process side shouldn't send us these messages in the // first unless the plugin has dev permissions, so we don't need to check diff --git a/chromium/content/ppapi_plugin/ppapi_thread.h b/chromium/content/ppapi_plugin/ppapi_thread.h index d1ca5501dfb..20c68ceb198 100644 --- a/chromium/content/ppapi_plugin/ppapi_thread.h +++ b/chromium/content/ppapi_plugin/ppapi_thread.h @@ -16,7 +16,6 @@ #include "build/build_config.h" #include "content/child/child_thread.h" #include "content/public/common/pepper_plugin_info.h" -#include "ipc/ipc_listener.h" #include "ppapi/c/pp_module.h" #include "ppapi/c/trusted/ppp_broker.h" #include "ppapi/proxy/connection.h" @@ -62,22 +61,6 @@ class PpapiThread : public ChildThread, LOAD_RESULT_MAX // Boundary value for UMA_HISTOGRAM_ENUMERATION. }; - // This class finds the target PluginDispatcher for each message it receives - // and forwards the message. - class DispatcherMessageListener : public IPC::Listener { - public: - explicit DispatcherMessageListener(PpapiThread* owner); - virtual ~DispatcherMessageListener(); - - // IPC::Listener implementation. - virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; - - private: - PpapiThread* owner_; - - DISALLOW_COPY_AND_ASSIGN(DispatcherMessageListener); - }; - // ChildThread overrides. virtual bool Send(IPC::Message* msg) OVERRIDE; virtual bool OnControlMessageReceived(const IPC::Message& msg) OVERRIDE; @@ -110,13 +93,11 @@ class PpapiThread : public ChildThread, // Message handlers. void OnLoadPlugin(const base::FilePath& path, - const ppapi::PpapiPermissions& permissions); + const ppapi::PpapiPermissions& permissions, + bool supports_dev_channel); void OnCreateChannel(base::ProcessId renderer_pid, int renderer_child_id, bool incognito); - void OnResourceReply( - const ppapi::proxy::ResourceMessageReplyParams& reply_params, - const IPC::Message& nested_msg); void OnSetNetworkState(bool online); void OnCrash(); void OnHang(); @@ -173,8 +154,6 @@ class PpapiThread : public ChildThread, base::win::ScopedHandle peer_handle_; #endif - DispatcherMessageListener dispatcher_message_listener_; - DISALLOW_IMPLICIT_CONSTRUCTORS(PpapiThread); }; diff --git a/chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.cc b/chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.cc index 049fe20d102..948b02581ec 100644 --- a/chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.cc +++ b/chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.cc @@ -8,11 +8,12 @@ #include "base/logging.h" #include "base/strings/string16.h" -#include "base/synchronization/lock.h" +#include "base/threading/platform_thread.h" #include "build/build_config.h" #include "content/child/child_thread.h" #include "content/common/child_process_messages.h" #include "ppapi/proxy/plugin_globals.h" +#include "ppapi/shared_impl/proxy_lock.h" #include "third_party/WebKit/public/platform/WebString.h" #if defined(OS_WIN) @@ -28,10 +29,10 @@ #include "third_party/icu/source/common/unicode/utf16.h" #endif -using WebKit::WebSandboxSupport; -using WebKit::WebString; -using WebKit::WebUChar; -using WebKit::WebUChar32; +using blink::WebSandboxSupport; +using blink::WebString; +using blink::WebUChar; +using blink::WebUChar32; typedef struct CGFont* CGFontRef; @@ -50,19 +51,21 @@ class PpapiWebKitPlatformSupportImpl::SandboxSupport #elif defined(OS_ANDROID) // Empty class. #elif defined(OS_POSIX) + SandboxSupport(); virtual void getFontFamilyForCharacter( WebUChar32 character, const char* preferred_locale, - WebKit::WebFontFamily* family); + blink::WebFontFamily* family); virtual void getRenderStyleForStrike( - const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out); + const char* family, int sizeAndStyle, blink::WebFontRenderStyle* out); private: // WebKit likes to ask us for the correct font family to use for a set of // unicode code points. It needs this information frequently so we cache it // here. - base::Lock unicode_font_families_mutex_; - std::map<int32_t, WebKit::WebFontFamily> unicode_font_families_; + std::map<int32_t, blink::WebFontFamily> unicode_font_families_; + // For debugging crbug.com/312965 + base::PlatformThreadId creation_thread_; #endif }; @@ -98,13 +101,19 @@ bool PpapiWebKitPlatformSupportImpl::SandboxSupport::loadFont( #elif defined(OS_POSIX) +PpapiWebKitPlatformSupportImpl::SandboxSupport::SandboxSupport() + : creation_thread_(base::PlatformThread::CurrentId()) { +} + void PpapiWebKitPlatformSupportImpl::SandboxSupport::getFontFamilyForCharacter( WebUChar32 character, const char* preferred_locale, - WebKit::WebFontFamily* family) { - base::AutoLock lock(unicode_font_families_mutex_); - const std::map<int32_t, WebKit::WebFontFamily>::const_iterator iter = + blink::WebFontFamily* family) { + ppapi::ProxyLock::AssertAcquired(); + // For debugging crbug.com/312965 + CHECK_EQ(creation_thread_, base::PlatformThread::CurrentId()); + const std::map<int32_t, blink::WebFontFamily>::const_iterator iter = unicode_font_families_.find(character); if (iter != unicode_font_families_.end()) { family->name = iter->second.name; @@ -118,7 +127,7 @@ PpapiWebKitPlatformSupportImpl::SandboxSupport::getFontFamilyForCharacter( } void PpapiWebKitPlatformSupportImpl::SandboxSupport::getRenderStyleForStrike( - const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out) { + const char* family, int sizeAndStyle, blink::WebFontRenderStyle* out) { GetRenderStyleForStrike(family, sizeAndStyle, out); } @@ -131,22 +140,29 @@ PpapiWebKitPlatformSupportImpl::PpapiWebKitPlatformSupportImpl() PpapiWebKitPlatformSupportImpl::~PpapiWebKitPlatformSupportImpl() { } -WebKit::WebClipboard* PpapiWebKitPlatformSupportImpl::clipboard() { +void PpapiWebKitPlatformSupportImpl::Shutdown() { + // SandboxSupport contains a map of WebFontFamily objects, which hold + // WebCStrings, which become invalidated when blink is shut down. Hence, we + // need to clear that map now, just before blink::shutdown() is called. + sandbox_support_.reset(); +} + +blink::WebClipboard* PpapiWebKitPlatformSupportImpl::clipboard() { NOTREACHED(); return NULL; } -WebKit::WebMimeRegistry* PpapiWebKitPlatformSupportImpl::mimeRegistry() { +blink::WebMimeRegistry* PpapiWebKitPlatformSupportImpl::mimeRegistry() { NOTREACHED(); return NULL; } -WebKit::WebFileUtilities* PpapiWebKitPlatformSupportImpl::fileUtilities() { +blink::WebFileUtilities* PpapiWebKitPlatformSupportImpl::fileUtilities() { NOTREACHED(); return NULL; } -WebKit::WebSandboxSupport* PpapiWebKitPlatformSupportImpl::sandboxSupport() { +blink::WebSandboxSupport* PpapiWebKitPlatformSupportImpl::sandboxSupport() { return sandbox_support_.get(); } @@ -167,72 +183,72 @@ bool PpapiWebKitPlatformSupportImpl::isLinkVisited( return false; } -WebKit::WebMessagePortChannel* +blink::WebMessagePortChannel* PpapiWebKitPlatformSupportImpl::createMessagePortChannel() { NOTREACHED(); return NULL; } void PpapiWebKitPlatformSupportImpl::setCookies( - const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies, - const WebKit::WebString& value) { + const blink::WebURL& url, + const blink::WebURL& first_party_for_cookies, + const blink::WebString& value) { NOTREACHED(); } -WebKit::WebString PpapiWebKitPlatformSupportImpl::cookies( - const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies) { +blink::WebString PpapiWebKitPlatformSupportImpl::cookies( + const blink::WebURL& url, + const blink::WebURL& first_party_for_cookies) { NOTREACHED(); - return WebKit::WebString(); + return blink::WebString(); } -WebKit::WebString PpapiWebKitPlatformSupportImpl::defaultLocale() { +blink::WebString PpapiWebKitPlatformSupportImpl::defaultLocale() { NOTREACHED(); - return WebKit::WebString(); + return blink::WebString(); } -WebKit::WebThemeEngine* PpapiWebKitPlatformSupportImpl::themeEngine() { +blink::WebThemeEngine* PpapiWebKitPlatformSupportImpl::themeEngine() { NOTREACHED(); return NULL; } -WebKit::WebURLLoader* PpapiWebKitPlatformSupportImpl::createURLLoader() { +blink::WebURLLoader* PpapiWebKitPlatformSupportImpl::createURLLoader() { NOTREACHED(); return NULL; } -WebKit::WebSocketStreamHandle* +blink::WebSocketStreamHandle* PpapiWebKitPlatformSupportImpl::createSocketStreamHandle() { NOTREACHED(); return NULL; } void PpapiWebKitPlatformSupportImpl::getPluginList(bool refresh, - WebKit::WebPluginListBuilder* builder) { + blink::WebPluginListBuilder* builder) { NOTREACHED(); } -WebKit::WebData PpapiWebKitPlatformSupportImpl::loadResource(const char* name) { +blink::WebData PpapiWebKitPlatformSupportImpl::loadResource(const char* name) { NOTREACHED(); - return WebKit::WebData(); + return blink::WebData(); } -WebKit::WebStorageNamespace* +blink::WebStorageNamespace* PpapiWebKitPlatformSupportImpl::createLocalStorageNamespace() { NOTREACHED(); return 0; } void PpapiWebKitPlatformSupportImpl::dispatchStorageEvent( - const WebKit::WebString& key, const WebKit::WebString& old_value, - const WebKit::WebString& new_value, const WebKit::WebString& origin, - const WebKit::WebURL& url, bool is_local_storage) { + const blink::WebString& key, const blink::WebString& old_value, + const blink::WebString& new_value, const blink::WebString& origin, + const blink::WebURL& url, bool is_local_storage) { NOTREACHED(); } int PpapiWebKitPlatformSupportImpl::databaseDeleteFile( - const WebKit::WebString& vfs_file_name, bool sync_dir) { + const blink::WebString& vfs_file_name, bool sync_dir) { NOTREACHED(); return 0; } diff --git a/chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.h b/chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.h index d2a35417f04..c8e6ab9c6a3 100644 --- a/chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.h +++ b/chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.h @@ -16,34 +16,37 @@ class PpapiWebKitPlatformSupportImpl : public WebKitPlatformSupportImpl { PpapiWebKitPlatformSupportImpl(); virtual ~PpapiWebKitPlatformSupportImpl(); + // Shutdown must be called just prior to shutting down blink. + void Shutdown(); + // WebKitPlatformSupport methods: - virtual WebKit::WebClipboard* clipboard(); - virtual WebKit::WebMimeRegistry* mimeRegistry(); - virtual WebKit::WebFileUtilities* fileUtilities(); - virtual WebKit::WebSandboxSupport* sandboxSupport(); + virtual blink::WebClipboard* clipboard(); + virtual blink::WebMimeRegistry* mimeRegistry(); + virtual blink::WebFileUtilities* fileUtilities(); + virtual blink::WebSandboxSupport* sandboxSupport(); virtual bool sandboxEnabled(); virtual unsigned long long visitedLinkHash(const char* canonicalURL, size_t length); virtual bool isLinkVisited(unsigned long long linkHash); - virtual WebKit::WebMessagePortChannel* createMessagePortChannel(); - virtual void setCookies(const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies, - const WebKit::WebString& value); - virtual WebKit::WebString cookies( - const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies); - virtual WebKit::WebString defaultLocale(); - virtual WebKit::WebThemeEngine* themeEngine(); - virtual WebKit::WebURLLoader* createURLLoader(); - virtual WebKit::WebSocketStreamHandle* createSocketStreamHandle(); - virtual void getPluginList(bool refresh, WebKit::WebPluginListBuilder*); - virtual WebKit::WebData loadResource(const char* name); - virtual WebKit::WebStorageNamespace* createLocalStorageNamespace(); - virtual void dispatchStorageEvent(const WebKit::WebString& key, - const WebKit::WebString& oldValue, const WebKit::WebString& newValue, - const WebKit::WebString& origin, const WebKit::WebURL& url, + virtual blink::WebMessagePortChannel* createMessagePortChannel(); + virtual void setCookies(const blink::WebURL& url, + const blink::WebURL& first_party_for_cookies, + const blink::WebString& value); + virtual blink::WebString cookies( + const blink::WebURL& url, + const blink::WebURL& first_party_for_cookies); + virtual blink::WebString defaultLocale(); + virtual blink::WebThemeEngine* themeEngine(); + virtual blink::WebURLLoader* createURLLoader(); + virtual blink::WebSocketStreamHandle* createSocketStreamHandle(); + virtual void getPluginList(bool refresh, blink::WebPluginListBuilder*); + virtual blink::WebData loadResource(const char* name); + virtual blink::WebStorageNamespace* createLocalStorageNamespace(); + virtual void dispatchStorageEvent(const blink::WebString& key, + const blink::WebString& oldValue, const blink::WebString& newValue, + const blink::WebString& origin, const blink::WebURL& url, bool isLocalStorage); - virtual int databaseDeleteFile(const WebKit::WebString& vfs_file_name, + virtual int databaseDeleteFile(const blink::WebString& vfs_file_name, bool sync_dir); private: |
