OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "webkit/plugins/ppapi/ppb_flash_menu_impl.h" | 5 #include "webkit/plugins/ppapi/ppb_flash_menu_impl.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "ppapi/c/pp_completion_callback.h" | 8 #include "ppapi/c/pp_completion_callback.h" |
9 #include "ui/gfx/point.h" | 9 #include "ui/gfx/point.h" |
10 #include "webkit/glue/webmenuitem.h" | 10 #include "webkit/glue/webmenuitem.h" |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 return PP_ERROR_BADARGUMENT; | 134 return PP_ERROR_BADARGUMENT; |
135 | 135 |
136 if (!callback.func) { | 136 if (!callback.func) { |
137 NOTIMPLEMENTED(); | 137 NOTIMPLEMENTED(); |
138 return PP_ERROR_BADARGUMENT; | 138 return PP_ERROR_BADARGUMENT; |
139 } | 139 } |
140 | 140 |
141 if (callback_.get() && !callback_->completed()) | 141 if (callback_.get() && !callback_->completed()) |
142 return PP_ERROR_INPROGRESS; | 142 return PP_ERROR_INPROGRESS; |
143 | 143 |
144 PP_Resource resource_id = GetReferenceNoAddRef(); | |
145 if (!resource_id) { | |
146 NOTREACHED(); | |
147 return PP_ERROR_FAILED; | |
148 } | |
149 | |
150 int32_t rv = instance()->delegate()->ShowContextMenu( | 144 int32_t rv = instance()->delegate()->ShowContextMenu( |
151 instance(), this, gfx::Point(location->x, location->y)); | 145 instance(), this, gfx::Point(location->x, location->y)); |
152 if (rv == PP_OK_COMPLETIONPENDING) { | 146 if (rv == PP_OK_COMPLETIONPENDING) { |
153 // Record callback and output buffers. | 147 // Record callback and output buffers. |
154 callback_ = new TrackedCompletionCallback( | 148 callback_ = new TrackedCompletionCallback( |
155 instance()->module()->GetCallbackTracker(), resource_id, callback); | 149 instance()->module()->GetCallbackTracker(), pp_resource(), callback); |
156 selected_id_out_ = selected_id_out; | 150 selected_id_out_ = selected_id_out; |
157 } else { | 151 } else { |
158 // This should never be completed synchronously successfully. | 152 // This should never be completed synchronously successfully. |
159 DCHECK_NE(rv, PP_OK); | 153 DCHECK_NE(rv, PP_OK); |
160 } | 154 } |
161 return rv; | 155 return rv; |
162 | 156 |
163 NOTIMPLEMENTED(); | 157 NOTIMPLEMENTED(); |
164 return PP_ERROR_FAILED; | 158 return PP_ERROR_FAILED; |
165 } | 159 } |
(...skipping 19 matching lines...) Expand all Loading... |
185 | 179 |
186 scoped_refptr<TrackedCompletionCallback> callback; | 180 scoped_refptr<TrackedCompletionCallback> callback; |
187 callback.swap(callback_); | 181 callback.swap(callback_); |
188 selected_id_out_ = NULL; | 182 selected_id_out_ = NULL; |
189 | 183 |
190 callback->Run(rv); // Will complete abortively if necessary. | 184 callback->Run(rv); // Will complete abortively if necessary. |
191 } | 185 } |
192 | 186 |
193 } // namespace ppapi | 187 } // namespace ppapi |
194 } // namespace webkit | 188 } // namespace webkit |
OLD | NEW |