Index: webkit/plugins/ppapi/ppapi_plugin_instance.cc |
diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
index 6cd4146ef4acc585afdd424418294da284be1c21..09554fab11a31d36cedbab2b37bb2629a9fe1a15 100644 |
--- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
+++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
@@ -173,60 +173,66 @@ const char kHeight[] = "height"; |
const char kBorder[] = "border"; // According to w3c, deprecated. |
const char kStyle[] = "style"; |
-COMPILE_ASSERT_MATCHING_ENUM(TypePointer, PP_CURSORTYPE_POINTER); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeCross, PP_CURSORTYPE_CROSS); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeHand, PP_CURSORTYPE_HAND); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeIBeam, PP_CURSORTYPE_IBEAM); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeWait, PP_CURSORTYPE_WAIT); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeHelp, PP_CURSORTYPE_HELP); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeEastResize, PP_CURSORTYPE_EASTRESIZE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeNorthResize, PP_CURSORTYPE_NORTHRESIZE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypePointer, PP_MOUSECURSOR_TYPE_POINTER); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeCross, PP_MOUSECURSOR_TYPE_CROSS); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeHand, PP_MOUSECURSOR_TYPE_HAND); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeIBeam, PP_MOUSECURSOR_TYPE_IBEAM); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeWait, PP_MOUSECURSOR_TYPE_WAIT); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeHelp, PP_MOUSECURSOR_TYPE_HELP); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeEastResize, PP_MOUSECURSOR_TYPE_EASTRESIZE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeNorthResize, PP_MOUSECURSOR_TYPE_NORTHRESIZE); |
COMPILE_ASSERT_MATCHING_ENUM(TypeNorthEastResize, |
- PP_CURSORTYPE_NORTHEASTRESIZE); |
+ PP_MOUSECURSOR_TYPE_NORTHEASTRESIZE); |
COMPILE_ASSERT_MATCHING_ENUM(TypeNorthWestResize, |
- PP_CURSORTYPE_NORTHWESTRESIZE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeSouthResize, PP_CURSORTYPE_SOUTHRESIZE); |
+ PP_MOUSECURSOR_TYPE_NORTHWESTRESIZE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeSouthResize, PP_MOUSECURSOR_TYPE_SOUTHRESIZE); |
COMPILE_ASSERT_MATCHING_ENUM(TypeSouthEastResize, |
- PP_CURSORTYPE_SOUTHEASTRESIZE); |
+ PP_MOUSECURSOR_TYPE_SOUTHEASTRESIZE); |
COMPILE_ASSERT_MATCHING_ENUM(TypeSouthWestResize, |
- PP_CURSORTYPE_SOUTHWESTRESIZE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeWestResize, PP_CURSORTYPE_WESTRESIZE); |
+ PP_MOUSECURSOR_TYPE_SOUTHWESTRESIZE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeWestResize, PP_MOUSECURSOR_TYPE_WESTRESIZE); |
COMPILE_ASSERT_MATCHING_ENUM(TypeNorthSouthResize, |
- PP_CURSORTYPE_NORTHSOUTHRESIZE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeEastWestResize, PP_CURSORTYPE_EASTWESTRESIZE); |
+ PP_MOUSECURSOR_TYPE_NORTHSOUTHRESIZE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeEastWestResize, |
+ PP_MOUSECURSOR_TYPE_EASTWESTRESIZE); |
COMPILE_ASSERT_MATCHING_ENUM(TypeNorthEastSouthWestResize, |
- PP_CURSORTYPE_NORTHEASTSOUTHWESTRESIZE); |
+ PP_MOUSECURSOR_TYPE_NORTHEASTSOUTHWESTRESIZE); |
COMPILE_ASSERT_MATCHING_ENUM(TypeNorthWestSouthEastResize, |
- PP_CURSORTYPE_NORTHWESTSOUTHEASTRESIZE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeColumnResize, PP_CURSORTYPE_COLUMNRESIZE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeRowResize, PP_CURSORTYPE_ROWRESIZE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeMiddlePanning, PP_CURSORTYPE_MIDDLEPANNING); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeEastPanning, PP_CURSORTYPE_EASTPANNING); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeNorthPanning, PP_CURSORTYPE_NORTHPANNING); |
+ PP_MOUSECURSOR_TYPE_NORTHWESTSOUTHEASTRESIZE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeColumnResize, |
+ PP_MOUSECURSOR_TYPE_COLUMNRESIZE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeRowResize, PP_MOUSECURSOR_TYPE_ROWRESIZE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeMiddlePanning, |
+ PP_MOUSECURSOR_TYPE_MIDDLEPANNING); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeEastPanning, PP_MOUSECURSOR_TYPE_EASTPANNING); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeNorthPanning, |
+ PP_MOUSECURSOR_TYPE_NORTHPANNING); |
COMPILE_ASSERT_MATCHING_ENUM(TypeNorthEastPanning, |
- PP_CURSORTYPE_NORTHEASTPANNING); |
+ PP_MOUSECURSOR_TYPE_NORTHEASTPANNING); |
COMPILE_ASSERT_MATCHING_ENUM(TypeNorthWestPanning, |
- PP_CURSORTYPE_NORTHWESTPANNING); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeSouthPanning, PP_CURSORTYPE_SOUTHPANNING); |
+ PP_MOUSECURSOR_TYPE_NORTHWESTPANNING); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeSouthPanning, |
+ PP_MOUSECURSOR_TYPE_SOUTHPANNING); |
COMPILE_ASSERT_MATCHING_ENUM(TypeSouthEastPanning, |
- PP_CURSORTYPE_SOUTHEASTPANNING); |
+ PP_MOUSECURSOR_TYPE_SOUTHEASTPANNING); |
COMPILE_ASSERT_MATCHING_ENUM(TypeSouthWestPanning, |
- PP_CURSORTYPE_SOUTHWESTPANNING); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeWestPanning, PP_CURSORTYPE_WESTPANNING); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeMove, PP_CURSORTYPE_MOVE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeVerticalText, PP_CURSORTYPE_VERTICALTEXT); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeCell, PP_CURSORTYPE_CELL); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeContextMenu, PP_CURSORTYPE_CONTEXTMENU); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeAlias, PP_CURSORTYPE_ALIAS); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeProgress, PP_CURSORTYPE_PROGRESS); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeNoDrop, PP_CURSORTYPE_NODROP); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeCopy, PP_CURSORTYPE_COPY); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeNone, PP_CURSORTYPE_NONE); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeNotAllowed, PP_CURSORTYPE_NOTALLOWED); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeZoomIn, PP_CURSORTYPE_ZOOMIN); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeZoomOut, PP_CURSORTYPE_ZOOMOUT); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeGrab, PP_CURSORTYPE_GRAB); |
-COMPILE_ASSERT_MATCHING_ENUM(TypeGrabbing, PP_CURSORTYPE_GRABBING); |
+ PP_MOUSECURSOR_TYPE_SOUTHWESTPANNING); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeWestPanning, PP_MOUSECURSOR_TYPE_WESTPANNING); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeMove, PP_MOUSECURSOR_TYPE_MOVE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeVerticalText, |
+ PP_MOUSECURSOR_TYPE_VERTICALTEXT); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeCell, PP_MOUSECURSOR_TYPE_CELL); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeContextMenu, PP_MOUSECURSOR_TYPE_CONTEXTMENU); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeAlias, PP_MOUSECURSOR_TYPE_ALIAS); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeProgress, PP_MOUSECURSOR_TYPE_PROGRESS); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeNoDrop, PP_MOUSECURSOR_TYPE_NODROP); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeCopy, PP_MOUSECURSOR_TYPE_COPY); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeNone, PP_MOUSECURSOR_TYPE_NONE); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeNotAllowed, PP_MOUSECURSOR_TYPE_NOTALLOWED); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeZoomIn, PP_MOUSECURSOR_TYPE_ZOOMIN); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeZoomOut, PP_MOUSECURSOR_TYPE_ZOOMOUT); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeGrab, PP_MOUSECURSOR_TYPE_GRAB); |
+COMPILE_ASSERT_MATCHING_ENUM(TypeGrabbing, PP_MOUSECURSOR_TYPE_GRABBING); |
// Do not assert WebCursorInfo::TypeCustom == PP_CURSORTYPE_CUSTOM; |
// PP_CURSORTYPE_CUSTOM is pinned to allow new cursor types. |
@@ -449,57 +455,6 @@ void PluginInstance::InstanceCrashed() { |
delegate()->PluginCrashed(this); |
} |
-bool PluginInstance::SetCursor(PP_CursorType_Dev type, |
- PP_Resource custom_image, |
- const PP_Point* hot_spot) { |
- if (type != PP_CURSORTYPE_CUSTOM) { |
- DoSetCursor(new WebCursorInfo(static_cast<WebCursorInfo::Type>(type))); |
- return true; |
- } |
- |
- if (!hot_spot) |
- return false; |
- |
- EnterResourceNoLock<PPB_ImageData_API> enter(custom_image, true); |
- if (enter.failed()) |
- return false; |
- PPB_ImageData_Impl* image_data = |
- static_cast<PPB_ImageData_Impl*>(enter.object()); |
- |
- if (image_data->format() != PPB_ImageData_Impl::GetNativeImageDataFormat()) { |
- // TODO(yzshen): Handle the case that the image format is different from the |
- // native format. |
- NOTIMPLEMENTED(); |
- return false; |
- } |
- |
- ImageDataAutoMapper auto_mapper(image_data); |
- if (!auto_mapper.is_valid()) |
- return false; |
- |
- scoped_ptr<WebCursorInfo> custom_cursor( |
- new WebCursorInfo(WebCursorInfo::TypeCustom)); |
- custom_cursor->hotSpot.x = hot_spot->x; |
- custom_cursor->hotSpot.y = hot_spot->y; |
- |
-#if WEBKIT_USING_SKIA |
- const SkBitmap* bitmap = image_data->GetMappedBitmap(); |
- // Make a deep copy, so that the cursor remains valid even after the original |
- // image data gets freed. |
- if (!bitmap->copyTo(&custom_cursor->customImage.getSkBitmap(), |
- bitmap->config())) { |
- return false; |
- } |
-#elif WEBKIT_USING_CG |
- // TODO(yzshen): Implement it. |
- NOTIMPLEMENTED(); |
- return false; |
-#endif |
- |
- DoSetCursor(custom_cursor.release()); |
- return true; |
-} |
- |
bool PluginInstance::Initialize(WebPluginContainer* container, |
const std::vector<std::string>& arg_names, |
const std::vector<std::string>& arg_values, |
@@ -2024,6 +1979,51 @@ void PluginInstance::PostMessage(PP_Instance instance, PP_Var message) { |
message_channel_->PostMessageToJavaScript(message); |
} |
+PP_Bool PluginInstance::SetCursor(PP_Instance instance, |
+ PP_MouseCursor_Type type, |
+ PP_Resource image, |
+ const PP_Point* hot_spot) { |
+ if (!ValidateSetCursorParams(type, image, hot_spot)) |
+ return PP_FALSE; |
+ |
+ if (type != PP_MOUSECURSOR_TYPE_CUSTOM) { |
+ DoSetCursor(new WebCursorInfo(static_cast<WebCursorInfo::Type>(type))); |
+ return PP_TRUE; |
+ } |
+ |
+ EnterResourceNoLock<PPB_ImageData_API> enter(image, true); |
+ if (enter.failed()) |
+ return PP_FALSE; |
+ PPB_ImageData_Impl* image_data = |
+ static_cast<PPB_ImageData_Impl*>(enter.object()); |
+ |
+ ImageDataAutoMapper auto_mapper(image_data); |
+ if (!auto_mapper.is_valid()) |
+ return PP_FALSE; |
+ |
+ scoped_ptr<WebCursorInfo> custom_cursor( |
+ new WebCursorInfo(WebCursorInfo::TypeCustom)); |
+ custom_cursor->hotSpot.x = hot_spot->x; |
+ custom_cursor->hotSpot.y = hot_spot->y; |
+ |
+#if WEBKIT_USING_SKIA |
+ const SkBitmap* bitmap = image_data->GetMappedBitmap(); |
+ // Make a deep copy, so that the cursor remains valid even after the original |
+ // image data gets freed. |
+ if (!bitmap->copyTo(&custom_cursor->customImage.getSkBitmap(), |
+ bitmap->config())) { |
+ return PP_FALSE; |
+ } |
+#elif WEBKIT_USING_CG |
+ // TODO(yzshen): Implement it. |
+ NOTIMPLEMENTED(); |
+ return false; |
+#endif |
+ |
+ DoSetCursor(custom_cursor.release()); |
+ return PP_TRUE; |
+} |
+ |
int32_t PluginInstance::LockMouse(PP_Instance instance, |
PP_CompletionCallback callback) { |
if (!callback.func) { |