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

Side by Side Diff: webkit/plugins/ppapi/ppapi_plugin_instance.cc

Issue 7189045: Make o.o.p. proxy handle PPP_Instance versions 0.4 and 0.5. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make HostDispatcher remember plugin IFs by name, not ID Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/ppapi_plugin_instance.h" 5 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 instance->delegate()->ZoomLimitsChanged(minimum_factor, maximium_factor); 229 instance->delegate()->ZoomLimitsChanged(minimum_factor, maximium_factor);
230 } 230 }
231 231
232 const PPB_Zoom_Dev ppb_zoom = { 232 const PPB_Zoom_Dev ppb_zoom = {
233 &ZoomChanged, 233 &ZoomChanged,
234 &ZoomLimitsChanged 234 &ZoomLimitsChanged
235 }; 235 };
236 236
237 } // namespace 237 } // namespace
238 238
239 PluginInstance::PluginInstance(PluginDelegate* delegate, 239 // static
240 PluginModule* module, 240 PluginInstance* PluginInstance::Create0_5(PluginDelegate* delegate,
241 PPP_Instance_Combined* instance_interface) 241 PluginModule* module,
242 const void* ppp_instance_if_0_5) {
243 const PPP_Instance_0_5* interface =
244 static_cast<const PPP_Instance_0_5*>(ppp_instance_if_0_5);
245 return new PluginInstance(
246 delegate,
247 module,
248 new ::ppapi::PPP_Instance_Combined(*interface));
249 }
250
251 // static
252 PluginInstance* PluginInstance::Create0_4(PluginDelegate* delegate,
253 PluginModule* module,
254 const void* ppp_instance_if_0_4) {
255 const PPP_Instance_0_4* interface =
256 static_cast<const PPP_Instance_0_4*>(ppp_instance_if_0_4);
257 return new PluginInstance(
258 delegate,
259 module,
260 new ::ppapi::PPP_Instance_Combined(*interface));
261 }
262
263 PluginInstance::PluginInstance(
264 PluginDelegate* delegate,
265 PluginModule* module,
266 ::ppapi::PPP_Instance_Combined* instance_interface)
242 : delegate_(delegate), 267 : delegate_(delegate),
243 module_(module), 268 module_(module),
244 instance_interface_(instance_interface), 269 instance_interface_(instance_interface),
245 pp_instance_(0), 270 pp_instance_(0),
246 container_(NULL), 271 container_(NULL),
247 full_frame_(false), 272 full_frame_(false),
248 has_webkit_focus_(false), 273 has_webkit_focus_(false),
249 has_content_area_focus_(false), 274 has_content_area_focus_(false),
250 find_identifier_(-1), 275 find_identifier_(-1),
251 plugin_find_interface_(NULL), 276 plugin_find_interface_(NULL),
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 bool PluginInstance::LoadFindInterface() { 706 bool PluginInstance::LoadFindInterface() {
682 if (!plugin_find_interface_) { 707 if (!plugin_find_interface_) {
683 plugin_find_interface_ = 708 plugin_find_interface_ =
684 static_cast<const PPP_Find_Dev*>(module_->GetPluginInterface( 709 static_cast<const PPP_Find_Dev*>(module_->GetPluginInterface(
685 PPP_FIND_DEV_INTERFACE)); 710 PPP_FIND_DEV_INTERFACE));
686 } 711 }
687 712
688 return !!plugin_find_interface_; 713 return !!plugin_find_interface_;
689 } 714 }
690 715
691 PluginInstance::PPP_Instance_Combined::PPP_Instance_Combined(
692 const PPP_Instance_0_5& instance_if)
693 : PPP_Instance_0_5(instance_if),
694 GetInstanceObject_0_4(NULL) {}
695
696 PluginInstance::PPP_Instance_Combined::PPP_Instance_Combined(
697 const PPP_Instance_0_4& instance_if)
698 : PPP_Instance_0_5(), // Zero-initialize.
699 GetInstanceObject_0_4(instance_if.GetInstanceObject) {
700 DidCreate = instance_if.DidCreate;
701 DidDestroy = instance_if.DidDestroy;
702 DidChangeView = instance_if.DidChangeView;
703 DidChangeFocus = instance_if.DidChangeFocus;
704 HandleInputEvent = instance_if.HandleInputEvent;
705 HandleDocumentLoad = instance_if.HandleDocumentLoad;
706 }
707
708 bool PluginInstance::LoadMessagingInterface() { 716 bool PluginInstance::LoadMessagingInterface() {
709 if (!checked_for_plugin_messaging_interface_) { 717 if (!checked_for_plugin_messaging_interface_) {
710 checked_for_plugin_messaging_interface_ = true; 718 checked_for_plugin_messaging_interface_ = true;
711 plugin_messaging_interface_ = 719 plugin_messaging_interface_ =
712 static_cast<const PPP_Messaging*>(module_->GetPluginInterface( 720 static_cast<const PPP_Messaging*>(module_->GetPluginInterface(
713 PPP_MESSAGING_INTERFACE)); 721 PPP_MESSAGING_INTERFACE));
714 } 722 }
715 723
716 return !!plugin_messaging_interface_; 724 return !!plugin_messaging_interface_;
717 } 725 }
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after
1504 } 1512 }
1505 1513
1506 PP_Bool PluginInstance::GetScreenSize(PP_Instance instance, PP_Size* size) { 1514 PP_Bool PluginInstance::GetScreenSize(PP_Instance instance, PP_Size* size) {
1507 gfx::Size screen_size = delegate()->GetScreenSize(); 1515 gfx::Size screen_size = delegate()->GetScreenSize();
1508 *size = PP_MakeSize(screen_size.width(), screen_size.height()); 1516 *size = PP_MakeSize(screen_size.width(), screen_size.height());
1509 return PP_TRUE; 1517 return PP_TRUE;
1510 } 1518 }
1511 1519
1512 } // namespace ppapi 1520 } // namespace ppapi
1513 } // namespace webkit 1521 } // namespace webkit
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698