summaryrefslogtreecommitdiff
path: root/chromium/content/ppapi_plugin
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/ppapi_plugin')
-rw-r--r--chromium/content/ppapi_plugin/broker_process_dispatcher.cc7
-rw-r--r--chromium/content/ppapi_plugin/broker_process_dispatcher.h3
-rw-r--r--chromium/content/ppapi_plugin/plugin_process_dispatcher.cc6
-rw-r--r--chromium/content/ppapi_plugin/plugin_process_dispatcher.h3
-rw-r--r--chromium/content/ppapi_plugin/ppapi_plugin_main.cc20
-rw-r--r--chromium/content/ppapi_plugin/ppapi_thread.cc56
-rw-r--r--chromium/content/ppapi_plugin/ppapi_thread.h25
-rw-r--r--chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.cc92
-rw-r--r--chromium/content/ppapi_plugin/ppapi_webkitplatformsupport_impl.h47
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: