1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef PPAPI_HOST_HOST_FACTORY_H_ 6 #define PPAPI_HOST_HOST_FACTORY_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "ppapi/c/pp_instance.h" 10 11 namespace IPC { 12 class Message; 13 } 14 15 namespace ppapi { 16 17 namespace proxy { 18 class ResourceMessageCallParams; 19 } 20 21 namespace host { 22 23 class PpapiHost; 24 class ResourceHost; 25 26 // A host factory creates ResourceHosts for incoming create messages from 27 // the plugin. This allows us to implement the hosts at the chrome/content 28 // layer without the ppapi layer knowing about the details. 29 class HostFactory { 30 public: ~HostFactory()31 virtual ~HostFactory() {} 32 33 virtual scoped_ptr<ResourceHost> CreateResourceHost( 34 PpapiHost* host, 35 const proxy::ResourceMessageCallParams& params, 36 PP_Instance instance, 37 const IPC::Message& message) = 0; 38 }; 39 40 } // namespace host 41 } // namespace ppapi 42 43 #endif // PPAPI_HOST_HOST_FACTORY_H_ 44