Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Unified Diff: webkit/glue/plugins/pepper_device_context_2d.h

Issue 2852024: Chromium side changes to use PP_CompletionCallback as the Flush callback.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/client/plugin/chromoting_plugin.cc ('k') | webkit/glue/plugins/pepper_device_context_2d.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/plugins/pepper_device_context_2d.h
===================================================================
--- webkit/glue/plugins/pepper_device_context_2d.h (revision 50727)
+++ webkit/glue/plugins/pepper_device_context_2d.h (working copy)
@@ -8,7 +8,7 @@
#include <vector>
#include "base/basictypes.h"
-#include "base/scoped_ptr.h"
+#include "third_party/ppapi/c/pp_completion_callback.h"
#include "third_party/ppapi/c/ppb_device_context_2d.h"
#include "third_party/WebKit/WebKit/chromium/public/WebCanvas.h"
#include "webkit/glue/plugins/pepper_resource.h"
@@ -46,8 +46,8 @@
const PP_Rect* src_rect);
bool Scroll(const PP_Rect* clip_rect, int32_t dx, int32_t dy);
bool ReplaceContents(PP_Resource image);
- bool Flush(PPB_DeviceContext2D_FlushCallback callback,
- void* callback_data);
+ int32_t Flush(const PP_CompletionCallback& callback);
+
bool ReadImageData(PP_Resource image, int32_t x, int32_t y);
// Assciates this device with the given plugin instance. You can pass NULL to
@@ -69,16 +69,32 @@
private:
// Tracks a call to flush that requires a callback.
- // See unpainted_flush_callbacks_ below.
class FlushCallbackData {
public:
- FlushCallbackData(PPB_DeviceContext2D_FlushCallback c, void* d);
+ FlushCallbackData() {
+ Clear();
+ }
- void Execute(PP_Resource device_context);
+ FlushCallbackData(const PP_CompletionCallback& callback) {
+ Set(callback);
+ }
+ bool is_null() const { return !callback_.func; }
+
+ void Set(const PP_CompletionCallback& callback) {
+ callback_ = callback;
+ }
+
+ void Clear() {
+ callback_ = PP_MakeCompletionCallback(NULL, 0);
+ }
+
+ void Execute(int32_t result) {
+ PP_RunCompletionCallback(&callback_, result);
+ }
+
private:
- PPB_DeviceContext2D_FlushCallback callback_;
- void* callback_data_;
+ PP_CompletionCallback callback_;
};
// Called internally to execute the different queued commands. The
@@ -141,8 +157,8 @@
// the unpainted callbacks. When the renderer has initiated a paint, we'll
// move it to the painted callbacks list. When the renderer receives a flush,
// we'll execute the callback and remove it from the list.
- scoped_ptr<FlushCallbackData> unpainted_flush_callback_;
- scoped_ptr<FlushCallbackData> painted_flush_callback_;
+ FlushCallbackData unpainted_flush_callback_;
+ FlushCallbackData painted_flush_callback_;
// When doing offscreen flushes, we issue a task that issues the callback
// later. This is set when one of those tasks is pending so that we can
« no previous file with comments | « remoting/client/plugin/chromoting_plugin.cc ('k') | webkit/glue/plugins/pepper_device_context_2d.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698