OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "ppapi/c/pp_instance.h" | 5 #include "ppapi/c/pp_instance.h" |
6 #include "ppapi/c/pp_module.h" | 6 #include "ppapi/c/pp_module.h" |
7 | 7 |
8 #include "ppapi/cpp/instance.h" | 8 #include "ppapi/cpp/instance.h" |
9 #include "ppapi/cpp/module.h" | 9 #include "ppapi/cpp/module.h" |
10 | 10 |
11 #include "ppapi_simple/ps.h" | 11 #include "ppapi_simple/ps.h" |
12 | 12 |
13 static pp::Instance* s_Instance = NULL; | 13 static pp::Instance* s_Instance = NULL; |
14 | 14 |
15 PP_Instance PSGetInstanceId() { | 15 PP_Instance PSGetInstanceId(void) { |
| 16 if (s_Instance == NULL) |
| 17 return 0; |
16 return s_Instance->pp_instance(); | 18 return s_Instance->pp_instance(); |
17 } | 19 } |
18 | 20 |
19 const void* PSGetInterface(const char *name) { | 21 const void* PSGetInterface(const char *name) { |
20 return pp::Module::Get()->GetBrowserInterface(name); | 22 pp::Module* module = pp::Module::Get(); |
| 23 if (module == NULL) |
| 24 return NULL; |
| 25 return module->GetBrowserInterface(name); |
21 } | 26 } |
22 | 27 |
23 | 28 |
24 // The Module class. The browser calls the CreateInstance() method to create | 29 // The Module class. The browser calls the CreateInstance() method to create |
25 // an instance of your NaCl module on the web page. The browser creates a new | 30 // an instance of your NaCl module on the web page. The browser creates a new |
26 // instance for each <embed> tag with type="application/x-nacl". | 31 // instance for each <embed> tag with type="application/x-nacl". |
27 class PSModule : public pp::Module { | 32 class PSModule : public pp::Module { |
28 public: | 33 public: |
29 PSModule() : pp::Module() {} | 34 PSModule() : pp::Module() {} |
30 virtual ~PSModule() {} | 35 virtual ~PSModule() {} |
(...skipping 10 matching lines...) Expand all Loading... |
41 // The browser keeps a singleton of this module. It calls the | 46 // The browser keeps a singleton of this module. It calls the |
42 // CreateInstance() method on the object you return to make instances. There | 47 // CreateInstance() method on the object you return to make instances. There |
43 // is one instance per <embed> tag on the page. This is the main binding | 48 // is one instance per <embed> tag on the page. This is the main binding |
44 // point for your NaCl module with the browser. | 49 // point for your NaCl module with the browser. |
45 Module* CreateModule() { | 50 Module* CreateModule() { |
46 return new PSModule(); | 51 return new PSModule(); |
47 } | 52 } |
48 | 53 |
49 } // namespace pp | 54 } // namespace pp |
50 | 55 |
OLD | NEW |