| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/glue/plugins/pepper_plugin_instance.h" | 5 #include "webkit/glue/plugins/pepper_plugin_instance.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/scoped_ptr.h" | 8 #include "base/scoped_ptr.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "gfx/rect.h" | 10 #include "gfx/rect.h" |
| 11 #include "third_party/ppapi/c/pp_instance.h" | 11 #include "third_party/ppapi/c/pp_instance.h" |
| 12 #include "third_party/ppapi/c/pp_event.h" | 12 #include "third_party/ppapi/c/pp_event.h" |
| 13 #include "third_party/ppapi/c/pp_rect.h" | 13 #include "third_party/ppapi/c/pp_rect.h" |
| 14 #include "third_party/ppapi/c/pp_resource.h" | 14 #include "third_party/ppapi/c/pp_resource.h" |
| 15 #include "third_party/ppapi/c/pp_var.h" | 15 #include "third_party/ppapi/c/pp_var.h" |
| 16 #include "third_party/ppapi/c/ppb_find.h" |
| 16 #include "third_party/ppapi/c/ppb_instance.h" | 17 #include "third_party/ppapi/c/ppb_instance.h" |
| 18 #include "third_party/ppapi/c/ppp_find.h" |
| 17 #include "third_party/ppapi/c/ppp_instance.h" | 19 #include "third_party/ppapi/c/ppp_instance.h" |
| 18 #include "third_party/WebKit/WebKit/chromium/public/WebCursorInfo.h" | 20 #include "third_party/WebKit/WebKit/chromium/public/WebCursorInfo.h" |
| 19 #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h" | 21 #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h" |
| 20 #include "third_party/WebKit/WebKit/chromium/public/WebElement.h" | 22 #include "third_party/WebKit/WebKit/chromium/public/WebElement.h" |
| 21 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" | 23 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" |
| 22 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h" | 24 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h" |
| 23 #include "third_party/WebKit/WebKit/chromium/public/WebPluginContainer.h" | 25 #include "third_party/WebKit/WebKit/chromium/public/WebPluginContainer.h" |
| 24 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h" | 26 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h" |
| 25 #include "webkit/glue/plugins/pepper_device_context_2d.h" | 27 #include "webkit/glue/plugins/pepper_device_context_2d.h" |
| 26 #include "webkit/glue/plugins/pepper_event_conversion.h" | 28 #include "webkit/glue/plugins/pepper_event_conversion.h" |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 } | 154 } |
| 153 | 155 |
| 154 const PPB_Instance ppb_instance = { | 156 const PPB_Instance ppb_instance = { |
| 155 &GetWindowObject, | 157 &GetWindowObject, |
| 156 &GetOwnerElementObject, | 158 &GetOwnerElementObject, |
| 157 &BindGraphicsDeviceContext, | 159 &BindGraphicsDeviceContext, |
| 158 &IsFullFrame, | 160 &IsFullFrame, |
| 159 &SetCursor, | 161 &SetCursor, |
| 160 }; | 162 }; |
| 161 | 163 |
| 164 void NumberOfFindResultsChanged(PP_Instance instance_id, |
| 165 int32_t total, |
| 166 bool final_result) { |
| 167 PluginInstance* instance = PluginInstance::FromPPInstance(instance_id); |
| 168 if (!instance) |
| 169 return; |
| 170 |
| 171 DCHECK_NE(instance->find_identifier(), -1); |
| 172 instance->delegate()->DidChangeNumberOfFindResults( |
| 173 instance->find_identifier(), total, final_result); |
| 174 } |
| 175 |
| 176 void SelectedFindResultChanged(PP_Instance instance_id, |
| 177 int32_t index) { |
| 178 PluginInstance* instance = PluginInstance::FromPPInstance(instance_id); |
| 179 if (!instance) |
| 180 return; |
| 181 |
| 182 DCHECK_NE(instance->find_identifier(), -1); |
| 183 instance->delegate()->DidChangeSelectedFindResult( |
| 184 instance->find_identifier(), index); |
| 185 } |
| 186 |
| 187 const PPB_Find ppb_find = { |
| 188 &NumberOfFindResultsChanged, |
| 189 &SelectedFindResultChanged, |
| 190 }; |
| 191 |
| 162 } // namespace | 192 } // namespace |
| 163 | 193 |
| 164 PluginInstance::PluginInstance(PluginDelegate* delegate, | 194 PluginInstance::PluginInstance(PluginDelegate* delegate, |
| 165 PluginModule* module, | 195 PluginModule* module, |
| 166 const PPP_Instance* instance_interface) | 196 const PPP_Instance* instance_interface) |
| 167 : delegate_(delegate), | 197 : delegate_(delegate), |
| 168 module_(module), | 198 module_(module), |
| 169 instance_interface_(instance_interface), | 199 instance_interface_(instance_interface), |
| 170 container_(NULL), | 200 container_(NULL), |
| 171 full_frame_(false), | 201 full_frame_(false), |
| (...skipping 11 matching lines...) Expand all Loading... |
| 183 // static | 213 // static |
| 184 const PPB_Instance* PluginInstance::GetInterface() { | 214 const PPB_Instance* PluginInstance::GetInterface() { |
| 185 return &ppb_instance; | 215 return &ppb_instance; |
| 186 } | 216 } |
| 187 | 217 |
| 188 // static | 218 // static |
| 189 PluginInstance* PluginInstance::FromPPInstance(PP_Instance instance) { | 219 PluginInstance* PluginInstance::FromPPInstance(PP_Instance instance) { |
| 190 return reinterpret_cast<PluginInstance*>(instance); | 220 return reinterpret_cast<PluginInstance*>(instance); |
| 191 } | 221 } |
| 192 | 222 |
| 223 // static |
| 224 const PPB_Find* PluginInstance::GetFindInterface() { |
| 225 return &ppb_find; |
| 226 } |
| 227 |
| 193 PP_Instance PluginInstance::GetPPInstance() { | 228 PP_Instance PluginInstance::GetPPInstance() { |
| 194 return reinterpret_cast<intptr_t>(this); | 229 return reinterpret_cast<intptr_t>(this); |
| 195 } | 230 } |
| 196 | 231 |
| 197 void PluginInstance::Paint(WebCanvas* canvas, | 232 void PluginInstance::Paint(WebCanvas* canvas, |
| 198 const gfx::Rect& plugin_rect, | 233 const gfx::Rect& plugin_rect, |
| 199 const gfx::Rect& paint_rect) { | 234 const gfx::Rect& paint_rect) { |
| 200 if (device_context_2d_) | 235 if (device_context_2d_) |
| 201 device_context_2d_->Paint(canvas, plugin_rect, paint_rect); | 236 device_context_2d_->Paint(canvas, plugin_rect, paint_rect); |
| 202 } | 237 } |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 344 return UTF8ToUTF16(string->value()); | 379 return UTF8ToUTF16(string->value()); |
| 345 } | 380 } |
| 346 | 381 |
| 347 void PluginInstance::Zoom(float factor, bool text_only) { | 382 void PluginInstance::Zoom(float factor, bool text_only) { |
| 348 // TODO: implement me | 383 // TODO: implement me |
| 349 } | 384 } |
| 350 | 385 |
| 351 bool PluginInstance::StartFind(const string16& search_text, | 386 bool PluginInstance::StartFind(const string16& search_text, |
| 352 bool case_sensitive, | 387 bool case_sensitive, |
| 353 int identifier) { | 388 int identifier) { |
| 389 if (!plugin_find_interface_) { |
| 390 plugin_find_interface_ = |
| 391 reinterpret_cast<const PPP_Find*>(module_->GetPluginInterface( |
| 392 PPP_FIND_INTERFACE)); |
| 393 } |
| 394 |
| 395 if (plugin_find_interface_) |
| 396 return false; |
| 397 |
| 354 find_identifier_ = identifier; | 398 find_identifier_ = identifier; |
| 355 return false; | 399 return plugin_find_interface_->StartFind( |
| 356 // TODO: implement me | 400 GetPPInstance(), |
| 401 reinterpret_cast<const char*>(search_text.c_str()), |
| 402 case_sensitive); |
| 357 } | 403 } |
| 358 | 404 |
| 359 void PluginInstance::SelectFindResult(bool forward) { | 405 void PluginInstance::SelectFindResult(bool forward) { |
| 360 // TODO: implement me | 406 DCHECK(plugin_find_interface_); |
| 407 |
| 408 plugin_find_interface_->SelectFindResult(GetPPInstance(), forward); |
| 361 } | 409 } |
| 362 | 410 |
| 363 void PluginInstance::StopFind() { | 411 void PluginInstance::StopFind() { |
| 412 DCHECK(plugin_find_interface_); |
| 413 |
| 364 find_identifier_ = -1; | 414 find_identifier_ = -1; |
| 365 // TODO: implement me | 415 plugin_find_interface_->StopFind(GetPPInstance()); |
| 366 } | 416 } |
| 367 | 417 |
| 368 } // namespace pepper | 418 } // namespace pepper |
| OLD | NEW |