summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/dispatcher.cc
Commit message (Collapse)AuthorAgeFilesLines
* Create a PPAPI host for new resource message routing.brettw@chromium.org2012-06-301-0/+4
| | | | | | | | | | | | | This infrastructure will be used in the renderer and in the browser as the backing for new resources. The PpapiHost object doues the routing for the resource messages, and also has hooks for the embedder (the renderer or the browser) to create resources. This adds a content_renderer factory which currently does nothing (we'll add most of the resources here). BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10572040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145059 0039d316-1c4b-4281-b951-d872f2087c98
* Broker out PPAPI handle duplicationjschuh@chromium.org2012-05-111-4/+2
| | | | | | | BUG=127449 Review URL: https://chromiumcodereview.appspot.com/10378057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136686 0039d316-1c4b-4281-b951-d872f2087c98
* Add a way to implement GetInterface in the broker.brettw@chromium.org2012-04-131-1/+1
| | | | | | | | | | | This also adds some cleanup in the Pepper API to provide typedefs for the three PPP_* functions. I removed some ad-hoc typedefes we had floating around and replaced them with these more "official" ones. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10069035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132285 0039d316-1c4b-4281-b951-d872f2087c98
* This adds a hang monitor for Pepper plugins. It monitors sync messages on ↵brettw@chromium.org2012-04-131-0/+3
| | | | | | | | | | | | the I/O thread of the renderer and sends a message to the browser if it's blocked for too long. The browser will show an infobar allowing you to terminate the plugin. BUG=122795 Review URL: https://chromiumcodereview.appspot.com/10014013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132245 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash related to PPAPI scripting.yzshen@chromium.org2012-03-101-2/+2
| | | | | | | | | | | | SerializedVar and MessageChannel didn't properly handle the case that the dispatcher goes away while waiting for the reply to a sync message. BUG=110095 TEST=When click the Test button on ppapi/example/example.html, the plugin is removed but the renderer doesn't crash. Review URL: http://codereview.chromium.org/9655019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126014 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 106717 - Revert 106677 (caused several PPAPI test timeouts, see ↵brettw@chromium.org2011-10-211-13/+1
| | | | | | | | | | | | | | | | | | | | | | http://crbug.com/101154) - Remove the proxy callback tracker. This doesn't properly delete callbacks when the corresponding resource goes away. This can lead to leaks or crashes in the plugin when the callback is triggered unexpectedly. BUG=http://crbug.com/86279 Review URL: http://codereview.chromium.org/8226009 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/8364040 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/8371008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106764 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 106677 (caused several PPAPI test timeouts, see http://crbug.com/101154)thakis@chromium.org2011-10-211-1/+13
| | | | | | | | | | | | | | | | | - Remove the proxy callback tracker. This doesn't properly delete callbacks when the corresponding resource goes away. This can lead to leaks or crashes in the plugin when the callback is triggered unexpectedly. BUG=http://crbug.com/86279 Review URL: http://codereview.chromium.org/8226009 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/8364040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106717 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the proxy callback tracker.brettw@chromium.org2011-10-211-13/+1
| | | | | | | | | | | | This doesn't properly delete callbacks when the corresponding resource goes away. This can lead to leaks or crashes in the plugin when the callback is triggered unexpectedly. BUG=http://crbug.com/86279 Review URL: http://codereview.chromium.org/8226009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106677 0039d316-1c4b-4281-b951-d872f2087c98
* Rename InterfaceID to ApiID and move the file.brettw@chromium.org2011-10-201-3/+3
| | | | | | | | | | | | | | | | | | | This was originally in the proxy and had a 1:1 correspondence with an interface. Then we reused this for other stuff and then merged some interfaces into larger APIs (ppapi/thunk/*_api.h) so the name was no longer accurate. It was wrong to be in the proxy directory since directories at a "lower level" than the proxy (ppapi/shared_impl and webkit/plugins/ppapi) depended on it. This renames to ApiID (I avoided APIID since it looks like a define) which is the proper description of the class, and moved it to shared_impl. This fixes the deps since there are no longer any bad dependencies on the proxy directory. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/8333004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106619 0039d316-1c4b-4281-b951-d872f2087c98
* s patch tries to remove most of the manual registration for Pepper ↵brettw@chromium.org2011-09-131-237/+38
| | | | | | | | | | | | | | | | | | | | | | | | interfaces, and replaces it with a list of macros. When files want to know which Pepper interface names and structs there are, they define what they want to do with the macros, and then include the relevant files for the classes of interfaces they want (stable, private, dev). This re-lands my previous change. Original Review URL: http://codereview.chromium.org/7874002 This does not convert all the dev interfaces. I just did a few to keep the patch smaller. So there is still a lot of manual registration. This fixes the previous design problem where we assumed one *_Proxy object == one interface. We have been hacking around this lately with duplicate GetInfo calls, but this doesn't work for PPP interfaces. Now, a _Proxy object is just there to help keep things organized. One proxy can handle zero, one, or many interfaces, and this mapping is controlled by just one line in the interfaces file. So for example, to add a new function to a new version of an interface with backward compatibility, you would add that function to the _api.h file, and write a thunk for the new interface. Then you only need to add one line to the interfaces_ppb_public_stable.h file and that will be hooked up with the proxy and the implementation. This removes some _proxy objects/files that were used only to declare that the interfaces existed, since they're no longer necessary. I folded Console into the Instance API which removed a bunch of code. I removed FileChooser 0.4. I think everybody has converted to the new one, and I think parts of it weren't even hooked up properly anymore. Review URL: http://codereview.chromium.org/7887001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100936 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r100853, 100851. Win_shared build is broken.brettw@chromium.org2011-09-131-38/+237
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100854 0039d316-1c4b-4281-b951-d872f2087c98
* This patch tries to remove most of the manual registration for Pepper ↵brettw@chromium.org2011-09-131-237/+38
| | | | | | | | | | | | | | | | | | | | | | | | interfaces, and replaces it with a list of macros. When files want to know which Pepper interface names and structs there are, they define what they want to do with the macros, and then include the relevant files for the classes of interfaces they want (stable, private, dev). This re-lands my previous change. Original Review URL: http://codereview.chromium.org/7740038 This does not convert all the dev interfaces. I just did a few to keep the patch smaller. So there is still a lot of manual registration. This fixes the previous design problem where we assumed one *_Proxy object == one interface. We have been hacking around this lately with duplicate GetInfo calls, but this doesn't work for PPP interfaces. Now, a _Proxy object is just there to help keep things organized. One proxy can handle zero, one, or many interfaces, and this mapping is controlled by just one line in the interfaces file. So for example, to add a new function to a new version of an interface with backward compatibility, you would add that function to the _api.h file, and write a thunk for the new interface. Then you only need to add one line to the interfaces_ppb_public_stable.h file and that will be hooked up with the proxy and the implementation. This removes some _proxy objects/files that were used only to declare that the interfaces existed, since they're no longer necessary. I folded Console into the Instance API which removed a bunch of code. I removed FileChooser 0.4. I think everybody has converted to the new one, and I think parts of it weren't even hooked up properly anymore. Review URL: http://codereview.chromium.org/7874002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100851 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 100748 - This patch tries to remove most of the manual registration ↵dmazzoni@chromium.org2011-09-121-38/+237
| | | | | | | | | | | | | | | | | | | | | | | | | for Pepper interfaces, and replaces it with a list of macros. When files want to know which Pepper interface names and structs there are, they define what they want to do with the macros, and then include the relevant files for the classes of interfaces they want (stable, private, dev). This does not convert all the dev interfaces. I just did a few to keep the patch smaller. So there is still a lot of manual registration. This fixes the previous design problem where we assumed one *_Proxy object == one interface. We have been hacking around this lately with duplicate GetInfo calls, but this doesn't work for PPP interfaces. Now, a _Proxy object is just there to help keep things organized. One proxy can handle zero, one, or many interfaces, and this mapping is controlled by just one line in the interfaces file. So for example, to add a new function to a new version of an interface with backward compatibility, you would add that function to the _api.h file, and write a thunk for the new interface. Then you only need to add one line to the interfaces_ppb_public_stable.h file and that will be hooked up with the proxy and the implementation. This removes some _proxy objects/files that were used only to declare that the interfaces existed, since they're no longer necessary. I folded Console into the Instance API which removed a bunch of code. I removed FileChooser 0.4. I think everybody has converted to the new one, and I think parts of it weren't even hooked up properly anymore. Review URL: http://codereview.chromium.org/7740038 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/7844018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100754 0039d316-1c4b-4281-b951-d872f2087c98
* This patch tries to remove most of the manual registration for Pepper ↵brettw@chromium.org2011-09-121-237/+38
| | | | | | | | | | | | | | | | | | | | | | interfaces, and replaces it with a list of macros. When files want to know which Pepper interface names and structs there are, they define what they want to do with the macros, and then include the relevant files for the classes of interfaces they want (stable, private, dev). This does not convert all the dev interfaces. I just did a few to keep the patch smaller. So there is still a lot of manual registration. This fixes the previous design problem where we assumed one *_Proxy object == one interface. We have been hacking around this lately with duplicate GetInfo calls, but this doesn't work for PPP interfaces. Now, a _Proxy object is just there to help keep things organized. One proxy can handle zero, one, or many interfaces, and this mapping is controlled by just one line in the interfaces file. So for example, to add a new function to a new version of an interface with backward compatibility, you would add that function to the _api.h file, and write a thunk for the new interface. Then you only need to add one line to the interfaces_ppb_public_stable.h file and that will be hooked up with the proxy and the implementation. This removes some _proxy objects/files that were used only to declare that the interfaces existed, since they're no longer necessary. I folded Console into the Instance API which removed a bunch of code. I removed FileChooser 0.4. I think everybody has converted to the new one, and I think parts of it weren't even hooked up properly anymore. Review URL: http://codereview.chromium.org/7740038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100748 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce a new Pepper interface: PPB/PPP_MouseLock.yzshen@chromium.org2011-09-081-0/+3
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/7828019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100166 0039d316-1c4b-4281-b951-d872f2087c98
* reconstitute moving 3d out of dev CL. (previous attempt was reverted)nfullagar@google.com2011-09-071-1/+1
| | | | | | | | | previous CL: http://codereview.chromium.org/7737013/ BUG= http://code.google.com/p/chromium/issues/detail?id=94320 TEST= try bots, manual testing Review URL: http://codereview.chromium.org/7837018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99968 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 99855 - Move PPAPI graphics3d and opengles interfaces out of Dev.nfullagar@google.com2011-09-061-1/+1
| | | | | | | | | | | BUG= http://code.google.com/p/chromium/issues/detail?id=94320 TEST= various nacl exmaples, try bots Review URL: http://codereview.chromium.org/7737013 TBR=nfullagar@google.com Review URL: http://codereview.chromium.org/7782020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99861 0039d316-1c4b-4281-b951-d872f2087c98
* Move PPAPI graphics3d and opengles interfaces out of Dev.nfullagar@google.com2011-09-061-1/+1
| | | | | | | | BUG= http://code.google.com/p/chromium/issues/detail?id=94320 TEST= various nacl exmaples, try bots Review URL: http://codereview.chromium.org/7737013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99855 0039d316-1c4b-4281-b951-d872f2087c98
* Add movement information to PPB_MouseInputEvent.yzshen@chromium.org2011-08-311-1/+2
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/7715021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98994 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup in the file chooser API.brettw@chromium.org2011-08-201-0/+1
| | | | | | | | | | | | | | | This revs the file chooser interface to no longer pass a separate options structure. This structure was weird because it only had two members, and didn't have ownership of the string which is potentially dangerous. The new interface is a bit easier to call. I changed the string to take a Var, and the C++ layer now takes an Instance* rather than an Instance& which is consistent with the other interfaces. I updated the example. TEST=manual BUG= Review URL: http://codereview.chromium.org/7660017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97558 0039d316-1c4b-4281-b951-d872f2087c98
* Convert the pp::proxy namespace to the ppapi::proxy namespace.brettw@chromium.org2011-08-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is more consistent with the stuff in shared_impl, and removes a lot of namespace using goop. Add a unified resource tracker shared between the proxy and the impl. This renames the old ResourceObjectBase to Resource and removes the old PluginResource. It moves the resource tracker from the impl to the shared_impl, and makes the proxy use it. Some things become a little less neat because there's no proxy resource base class. In particular GetDispatcher() is now gone. I considered whether to add a helper base class that provides this function, but decided against it and had individual resource classes implement this when their implementation would find it useful. This is because ultimately I want more of this functionality to move into the shared_impl, and it's easier to do that if there are fewer proxy-specific things in the resources. This changes the way that plugins are added to the tracker. Previously they would only be in the tracker if the plugin had a reference to them, although they could be alive if the impl had a scoped_ptr referencing an object. This actually has the bug that if we then give the resource back to the plugin, it wouldn't be refcounted properly and everything would get confused. Now the tracker tracks all live resource objects whether or not the plugin has a ref. This works basically like the var tracker (it would be nice if the var and resource trackers shared more code, but that would further complicate this already overcomplicated patch). The resource tracker takes an extra ref whenever the plugin has one or more, and otherwise just tracks live resources. BUG= TEST= Review URL: http://codereview.chromium.org/7655002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97367 0039d316-1c4b-4281-b951-d872f2087c98
* PPB/PPP_VideoCapture_Dev proxypiman@chromium.org2011-08-091-0/+3
| | | | | | | | | | BUG=None TEST=VideoCapture sample (in a later CL) Review URL: http://codereview.chromium.org/7601005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95961 0039d316-1c4b-4281-b951-d872f2087c98
* Implement PPAPI VideoDecode out-of-process supportvrk@chromium.org2011-08-061-0/+4
| | | | | | | | | | | | | This CL implements the proxy necessary for out-of-process video decoding and introduces a shared base class between the PPB_VideoDecoder_Impl and the proxy. BUG=NONE TEST=gles2 plugin runs with or without --ppapi-out-of-process flag, no crashes Review URL: http://codereview.chromium.org/7545014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95724 0039d316-1c4b-4281-b951-d872f2087c98
* Proxy PPP_Messaging.dmichael@chromium.org2011-08-031-0/+2
| | | | | | | | | | | I added a couple of tests while I was figuring out the ref counting problem I was having. Also lots of bonus spelling fixes. BUG=86123 TEST=ppp_messaging_proxy_test and ppapi_tests Review URL: http://codereview.chromium.org/7531003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95240 0039d316-1c4b-4281-b951-d872f2087c98
* Various fixes to Graphics3D proxy to make it work.alokp@chromium.org2011-08-011-0/+2
| | | | | | Review URL: http://codereview.chromium.org/7457027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94904 0039d316-1c4b-4281-b951-d872f2087c98
* Fix input event resource proxying functions in the Chrome IPC proxy. Thebrettw@chromium.org2011-07-221-2/+5
| | | | | | | message-specific PPB interfaces were'nt hooked up. Review URL: http://codereview.chromium.org/7479008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93639 0039d316-1c4b-4281-b951-d872f2087c98
* Reland http://codereview.chromium.org/7452002/ againdmichael@chromium.org2011-07-201-1/+1
| | | | | | | | | | | | | | Update chromoting input events. (Clang caught this. Thanks, Clang!) Note I'm leaving in temporary backwards-compatibility. BUG=None TEST=ppapi tests TBR=brettw,sergeyu Review URL: http://codereview.chromium.org/7466008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93234 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93223 - Reland http://codereview.chromium.org/7452002/dmichael@chromium.org2011-07-201-1/+1
| | | | | | | | | | | | | | | | | | Update chromoting input events. (Clang caught this. Thanks, Clang!) Note I'm leaving in temporary backwards-compatibility. brettw, just need a rubber-stamp. This is the same as the last CL. awong/garykac/sergeyu, looking for someone on chromoting team to glance at my changes and make sure I didn't do anything you don't like. This is a high priority for 14, so please look if you can. BUG=None TEST=ppapi tests Review URL: http://codereview.chromium.org/7466002 TBR=dmichael@chromium.org Review URL: http://codereview.chromium.org/7471006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93229 0039d316-1c4b-4281-b951-d872f2087c98
* Reland http://codereview.chromium.org/7452002/dmichael@chromium.org2011-07-201-1/+1
| | | | | | | | | | | | | | | Update chromoting input events. (Clang caught this. Thanks, Clang!) Note I'm leaving in temporary backwards-compatibility. brettw, just need a rubber-stamp. This is the same as the last CL. awong/garykac/sergeyu, looking for someone on chromoting team to glance at my changes and make sure I didn't do anything you don't like. This is a high priority for 14, so please look if you can. BUG=None TEST=ppapi tests Review URL: http://codereview.chromium.org/7466002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93223 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93202 - Remove HandleInputEvent from PPP_Instance and freeze to 1.0.dmichael@chromium.org2011-07-201-1/+1
| | | | | | | | | | | | | | Note I'm leaving in temporary backwards-compatibility. BUG= http://code.google.com/p/nativeclient/issues/detail?id=2035 TEST=ppapi tests Review URL: http://codereview.chromium.org/7452002 TBR=dmichael@chromium.org Review URL: http://codereview.chromium.org/7467002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93208 0039d316-1c4b-4281-b951-d872f2087c98
* Remove HandleInputEvent from PPP_Instance and freeze to 1.0.dmichael@chromium.org2011-07-201-1/+1
| | | | | | | | | | | Note I'm leaving in temporary backwards-compatibility. BUG= http://code.google.com/p/nativeclient/issues/detail?id=2035 TEST=ppapi tests Review URL: http://codereview.chromium.org/7452002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93202 0039d316-1c4b-4281-b951-d872f2087c98
* Remove untrusted scripting support.dmichael@chromium.org2011-07-141-2/+0
| | | | | | | | | BUG=82606 TEST=ppapi_tests,ppapi_unittests Review URL: http://codereview.chromium.org/7362012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92557 0039d316-1c4b-4281-b951-d872f2087c98
* Reland http://codereview.chromium.org/7292033dmichael@chromium.org2011-07-131-0/+1
| | | | | | | | | | | | | | | | Plus bonus change to a comment in pp_bool.h to try to get the bots to rebuild things properly ------ First pass at revving stable pepper interfaces to 1.0. Missing PPB_Core (pending removal of MemAlloc/MemFree) and new input event interfaces, in case we want to change them in the next ~week. BUG=84519 TEST=ppapi tests TBR=dmichael Review URL: http://codereview.chromium.org/7355014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92312 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 92302 - First pass at revving stable pepper interfaces to 1.0.dmichael@chromium.org2011-07-131-1/+0
| | | | | | | | | | | | | | Missing PPB_Core (pending removal of MemAlloc/MemFree) and new input event interfaces, in case we want to change them in the next ~week. BUG=84519 TEST=ppapi tests Review URL: http://codereview.chromium.org/7292033 TBR=dmichael@chromium.org Review URL: http://codereview.chromium.org/7342032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92304 0039d316-1c4b-4281-b951-d872f2087c98
* First pass at revving stable pepper interfaces to 1.0.dmichael@chromium.org2011-07-131-0/+1
| | | | | | | | | | | Missing PPB_Core (pending removal of MemAlloc/MemFree) and new input event interfaces, in case we want to change them in the next ~week. BUG=84519 TEST=ppapi tests Review URL: http://codereview.chromium.org/7292033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92302 0039d316-1c4b-4281-b951-d872f2087c98
* Reland http://codereview.chromium.org/7312008/dmichael@chromium.org2011-07-081-1/+2
| | | | | | | | | | | | | | | The only difference is I clear modifiers in Scrollbar test, and leave it enabled. Unrevert ppapi_tests change: Porting ppapi_tests framework to postMessage. Some tests still rely on scripting, so we changed to using InstancePrivate (since scripting will disappear from Instance soon). Also use conditional compilation so that if compiled as untrusted with NaCl, the tests use Instance instead of InstancePrivate. This means that tests which rely on scripting aren't runnable in NaCl. BUG=82606 TEST=these tests. Review URL: http://codereview.chromium.org/7237056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91912 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 91859 - Porting ppapi_tests framework to postMessage.dmichael@chromium.org2011-07-081-2/+1
| | | | | | | | | | | | | | | | Some tests still rely on scripting, so we changed to using InstancePrivate (since scripting will disappear from Instance soon). Also use conditional compilation so that if compiled as untrusted with NaCl, the tests use Instance instead of InstancePrivate. This means that tests which rely on scripting aren't runnable in NaCl. I also added a gyp option: pepper_scripting. The default is that scripting is on in this CL, but it will make it easy to turn it off in local builds. Soon we'll switch the default to no scripting, and soon after we can remove the option entirely. BUG=82606 TEST=these tests Review URL: http://codereview.chromium.org/7312008 TBR=dmichael@chromium.org Review URL: http://codereview.chromium.org/7329024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91866 0039d316-1c4b-4281-b951-d872f2087c98
* Porting ppapi_tests framework to postMessage.dmichael@chromium.org2011-07-081-1/+2
| | | | | | | | | | | | | Some tests still rely on scripting, so we changed to using InstancePrivate (since scripting will disappear from Instance soon). Also use conditional compilation so that if compiled as untrusted with NaCl, the tests use Instance instead of InstancePrivate. This means that tests which rely on scripting aren't runnable in NaCl. I also added a gyp option: pepper_scripting. The default is that scripting is on in this CL, but it will make it easy to turn it off in local builds. Soon we'll switch the default to no scripting, and soon after we can remove the option entirely. BUG=82606 TEST=these tests Review URL: http://codereview.chromium.org/7312008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91859 0039d316-1c4b-4281-b951-d872f2087c98
* Add interfaces for requesting and receiving input event resources.brettw@chromium.org2011-07-071-0/+4
| | | | | | | | | | | | | | | | This converts the input event from a C struct to a resource to give us more ability to change over time. This patch includes a proxy and a C++ wrapper for this resource. You now have to register for classes of input events. No events are sent by default. This also allows us to specify whether the events support bubbling or not, which allows us to better-optimize IPC. TEST=none BUG=none Review URL: http://codereview.chromium.org/7285010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91711 0039d316-1c4b-4281-b951-d872f2087c98
* Add PPB_Memory_Dev to the proxy.dspringer@chromium.org2011-07-061-0/+2
| | | | | | | | | | | Includes both in- and out-of-process tests. BUG=80610 TEST=ui_tests Review URL: http://codereview.chromium.org/7307026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91616 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land the reverted CL:yzshen@chromium.org2011-07-011-0/+3
| | | | | | | | | | | | | | http://src.chromium.org/viewvc/chrome?view=rev&revision=91150 Comparing with the previous CL, this CL makes changes to ppapi/proxy/ppapi_proxy_test.{h,cc} TEST=None BUG=None Review URL: http://codereview.chromium.org/7210030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91310 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 91150 - Define PPB_Flash_TCPSocket and PPB_Flash_SSLSocket.dpapad@chromium.org2011-06-301-3/+0
| | | | | | | | | | | | TEST=None BUG=None Review URL: http://codereview.chromium.org/7191005 TBR=yzshen@chromium.org Review URL: http://codereview.chromium.org/7293001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91153 0039d316-1c4b-4281-b951-d872f2087c98
* Define PPB_Flash_TCPSocket and PPB_Flash_SSLSocket.yzshen@chromium.org2011-06-301-0/+3
| | | | | | | | | TEST=None BUG=None Review URL: http://codereview.chromium.org/7191005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91150 0039d316-1c4b-4281-b951-d872f2087c98
* Make o.o.p. proxy handle PPP_Instance versions 0.4 and 0.5.dmichael@chromium.org2011-06-291-14/+2
| | | | | | | | | | | Move & tweak PPP_Instance_Combined to ppapi_shared so the proxy can use it. Use versioned PPP_Instance types only. BUG=82606 TEST=run tests o.o.p. Review URL: http://codereview.chromium.org/7189045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90984 0039d316-1c4b-4281-b951-d872f2087c98
* Convert most remaining resources to use the API/thunk system. The significantbrettw@chromium.org2011-06-221-2/+1
| | | | | | | | | | | | | | | changes here are around the 3D API. Having separate files for the texture mapping interface is no longer necessary for the proxy and the implementation. This also removes the uses of the "old" dynamic casting system (using "GetAs") for other resources that I could find. TEST=ui tests BUG=none Review URL: http://codereview.chromium.org/7206016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90096 0039d316-1c4b-4281-b951-d872f2087c98
* Convert the URL loading objects to the API/thunk system.brettw@chromium.org2011-06-171-1/+1
| | | | | | | | TEST=PPAPI UI tests BUG=none Review URL: http://codereview.chromium.org/7192012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89439 0039d316-1c4b-4281-b951-d872f2087c98
* Move fullscreen and instance to the new thunk system.brettw@chromium.org2011-06-151-12/+18
| | | | | | | | | | | | | | | | | | | | | | | | This takes it in a slightl different direction. Rather than maintaining separate APIs, proxies, and impls for each interface, I think smaller instance-related interfaces can just be added on the Instance_API. There's no need for binary compatibility here and it saves a whole lot of boilerplate. Although PPB_Instance_API will get large, this isn't necessarily bad, and is probably more clear than the alternative (it saves a whole lot of code). This means that the interface IDs no longer have a 1:1 mapping to interface names. But this was already going to be the case when we have multiple versions of different interfaces. Currently the code in dispatcher to deal with this is a bit weird, because of the way the mapping works. Long term, I'm going to change these from interface IDs in the proxy to API IDs in the thunk layer. This adds APIs and thunks for several other interfaces without implementing them yet (this patch was getting too large): URL loading and surface 3D. TEST=ppapi tests BUG=none Review URL: http://codereview.chromium.org/7058015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89265 0039d316-1c4b-4281-b951-d872f2087c98
* Proxy PPB_Var, fix o-o-p string var id tracking.dmichael@chromium.org2011-06-081-0/+3
| | | | | | | | | | | | | Note this doesn't need to use IPC at all, so it's a little strange. Made test for pp::Var/PPB_Var that does only strings (copied from test_var_deprecated.cc). Fixed string var tracking so test can pass out-of-process (aside from invalid UTF8 checking, which is still not implemented o-o-p). BUG=85236 TEST=test_var.cc, run tests manually out-of-process. Review URL: http://codereview.chromium.org/6995083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88384 0039d316-1c4b-4281-b951-d872f2087c98
* Proxy PPB_Instance_Private and PPP_Instance_Private.dmichael@chromium.org2011-05-251-0/+4
| | | | | | | | | BUG=82356 TEST=Run example plugin out-of-process, click on it. Before this, it crashes the plugin. After, behaves as expected. Review URL: http://codereview.chromium.org/6966043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86640 0039d316-1c4b-4281-b951-d872f2087c98
* Support getting the font list in Pepper. This currently only works out ofbrettw@chromium.org2011-05-181-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | process. This adds a function to the font interface to get the font list. Since we don't have arrays or dictionaries in Pepper yet, I used a string with nulls separating the names. A previous attempt to make a "font list resource" proved excessively complicated and not actually much easier for clients to deal with. This refactors the existing font list getting that used to be in the options for the browser. I moved it to content and split it into two pieces, the synchronous version, and then an asynchronous wrapper around that which both the prefs code and the pepper code use. This cleaned up some of the preferences code, and also fixes the leak of the entire font list in the code. I used the new callback/bind system for the async font loading. I had to add BrowserThread support for the new system. This uses the PepperMessageFilter to listen for font load requests from the plugin in the browser process. This is nice because we can add stuff here and have messages serviced for both in-process and out-of-process plugins. This proved to be complicated due to the HostResolver used in some of the existing code, and thread restrictions for how to deal with it. This is why there are two modes for the filter object. I changed the delegates around for the Dispatcher. Now the PluginDispatcher has the delegate interface since the HostDispatcher didn't actually need any of them and we were accumulating a lot of empty functions in the PepperPluginRegistry. It's possible for the fonts to be loaded on Windows and Mac without IPC, since enumerating fonts should be possible inside the sandbox. I didn't implement this since it adds extra complexity and probably doesn't give that much benefit. TEST=manual BUG=none Review URL: http://codereview.chromium.org/7044012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85827 0039d316-1c4b-4281-b951-d872f2087c98