summaryrefslogtreecommitdiffstats
path: root/ppapi/thunk
Commit message (Collapse)AuthorAgeFilesLines
* Migrating PPB_FileIO_Dev, PPB_FileRef_Dev, and PPB_FileSystem_Dev ↵sanga@chromium.org2011-07-079-33/+32
| | | | | | | | | dependencies to PPB_FileIO, PPB_FileRef, and PPB_FileSystem. Also fixed some lint errors. Review URL: http://codereview.chromium.org/7248047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91733 0039d316-1c4b-4281-b951-d872f2087c98
* Add interfaces for requesting and receiving input event resources.brettw@chromium.org2011-07-074-0/+266
| | | | | | | | | | | | | | | | 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
* Move PPB_Zoom and PPB_Messageing to the thunk system. Implement PPB_Messagingbrettw@chromium.org2011-07-064-0/+88
| | | | | | | | | | proxy. TEST=none BUG=none Review URL: http://codereview.chromium.org/7283020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91633 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land the reverted CL:yzshen@chromium.org2011-07-014-0/+162
| | | | | | | | | | | | | | 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
* Add a flag field to PP_CompletionCallback to control if the callback shouldpolina@google.com2011-06-3019-93/+203
| | | | | | | | | | | | | | | always be invoked asynchronously on success or error or skipped if the operation can complete synchronously without blocking. Keep the default behavior as-is until clients update their code. Bump revisions of all interfaces that take callbacks as args. Update browser interface function implementations and C++ layer to force callbacks if sync option is not set. Change ppapi/tests to run tests involving callbacks with both flag options. BUG=79376 TEST=ppapi_tests + bots Review URL: http://codereview.chromium.org/6899055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91205 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 91150 - Define PPB_Flash_TCPSocket and PPB_Flash_SSLSocket.dpapad@chromium.org2011-06-304-162/+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-304-0/+162
| | | | | | | | | 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
* Fix typo in ppb_scrollbar_thunk.ccsail@chromium.org2011-06-291-1/+1
| | | | | | | | | | BUG=86181 TEST= Review URL: http://codereview.chromium.org/7273059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90977 0039d316-1c4b-4281-b951-d872f2087c98
* Add virtual destructors for the Pepper API thunks.brettw@chromium.org2011-06-2734-12/+83
| | | | | | | | TEST=it compiles BUG=86132 Review URL: http://codereview.chromium.org/7227003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90658 0039d316-1c4b-4281-b951-d872f2087c98
* Make scrollbar GetThickness take a resource argument. This allows simlperbrettw@chromium.org2011-06-234-0/+117
| | | | | | | | | | | | | | | routing of the request using the new thunk system. Support for the old interface is kept to keep pdf and nacl building. This removes the old Resource type introspection since this was the last resource using it. TEST=it compiles BUG=non Review URL: http://codereview.chromium.org/7228003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90272 0039d316-1c4b-4281-b951-d872f2087c98
* Convert most remaining resources to use the API/thunk system. The significantbrettw@chromium.org2011-06-2212-0/+678
| | | | | | | | | | | | | | | 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
* Move the video decoder and video layer to the new API/thunk system.brettw@chromium.org2011-06-186-2/+271
| | | | | | | | | | | | | | This changes the video decoder API to make GetConfigs be a resource member function so it can be routed with the rest of the resource functions. This patch also removes the font_list_dev API which was never implemented and has been replaced with a function on the Font interface. TEST=manual BUG=none Review URL: http://codereview.chromium.org/7193018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89610 0039d316-1c4b-4281-b951-d872f2087c98
* Convert the URL loading objects to the API/thunk system.brettw@chromium.org2011-06-171-0/+8
| | | | | | | | 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-1516-0/+749
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Implement flash menu and net connector resources using the API/thunk model.brettw@chromium.org2011-06-159-2/+228
| | | | | | | | | | Write thunk for image data trusted. BUG=none TEST=ppapi ui tests Review URL: http://codereview.chromium.org/7149026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89204 0039d316-1c4b-4281-b951-d872f2087c98
* Implement out-of-process proxy for PPB_Buffer_Dev.fischman@chromium.org2011-06-104-3/+59
| | | | | | | | | BUG=85427,85441 TEST=./ninja/ui_tests --gtest_filter=*PPAPITest.Buffer Review URL: http://codereview.chromium.org/7108051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88630 0039d316-1c4b-4281-b951-d872f2087c98
* Convert more interfaces to the new thunk system. This goes up to and includingbrettw@chromium.org2011-06-0116-0/+726
| | | | | | | | | | | | | | | the ones starting with "F". Since this adds a lot more interfaces, I added the macro stuff we used for the old system to generate the various template specializations. This involded a lot of renaming since the As* needs to match the name (I was previously leaving off the "PPB_" part). I did other misc cleanup to the infrastructure. Review URL: http://codereview.chromium.org/7082036 Reland 87415 Review URL: http://codereview.chromium.org/7105013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87444 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 87415 - Convert more interfaces to the new thunk system. This goes up ↵thestig@chromium.org2011-06-0116-726/+0
| | | | | | | | | | | | | | | | | to and including the ones starting with "F". Since this adds a lot more interfaces, I added the macro stuff we used for the old system to generate the various template specializations. This involded a lot of renaming since the As* needs to match the name (I was previously leaving off the "PPB_" part). I did other misc cleanup to the infrastructure. Review URL: http://codereview.chromium.org/7082036 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/7006022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87438 0039d316-1c4b-4281-b951-d872f2087c98
* Convert more interfaces to the new thunk system. This goes up to and includingbrettw@chromium.org2011-06-0116-0/+726
| | | | | | | | | | | | the ones starting with "F". Since this adds a lot more interfaces, I added the macro stuff we used for the old system to generate the various template specializations. This involded a lot of renaming since the As* needs to match the name (I was previously leaving off the "PPB_" part). I did other misc cleanup to the infrastructure. Review URL: http://codereview.chromium.org/7082036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87415 0039d316-1c4b-4281-b951-d872f2087c98
* Move Broker, Buffer, CharSet, and CursorControl to use the new thunk/API system.brettw@chromium.org2011-05-2711-1/+378
| | | | | | | | | | | This changes the way that the function APIs work in the webkit directory, now they're created per-instance rather than globally, and have their Plugininstance as a class member (this cleans up some code). I had to move the InstanceData member to be a linked_ptr due to copy constructor issues, but this should be more efficient anyway. Review URL: http://codereview.chromium.org/7077024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87094 0039d316-1c4b-4281-b951-d872f2087c98
* Support getting the font list in Pepper. This currently only works out ofbrettw@chromium.org2011-05-182-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Convert audio-related messages to the new thunk/API system for Pepper.brettw@chromium.org2011-05-1310-9/+312
| | | | | | | | | | | | | | | | | | | This has a bit of a change from the previous couple of resources that were converted in that the ResourceCreationProxy now calls a static proxy function for actually doing the work. It became too complicated and required that the ResourceCreationProxy know a lot about the internals of the objects. Did a little namespace cleanup. This renames "pp::shared_impl" to just use the "ppapi" namespace. The "shared_impl" was ugly and didn't help anything. Some files in that directory used "ppapi::shared_impl" instead which was even more confusing. Do a little build cleanup. The old ppapi_shared_proxy.gypi is now split into two sub-files, one for ppapi_shared, and one for ppapi_proxy. It's hopefully easier to find stuff now. Review URL: http://codereview.chromium.org/7014024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85303 0039d316-1c4b-4281-b951-d872f2087c98
* Make the Pepper proxy support in-process font rendering.brettw@chromium.org2011-05-105-3/+136
| | | | | | | | | | | | | This implements a WebKit thread in the PPAPI plugin process so we can do the font calls without IPC. The existing font support was refactored into a virtual class (to prevent PPAPI from depending on WebKit and creating a circular GYP dependency). This moves the renderer sandbox support into content/common so that it can be used by the PPAPI process. Review URL: http://codereview.chromium.org/6981001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84856 0039d316-1c4b-4281-b951-d872f2087c98
* Fix ppapi proxycpu@chromium.org2011-05-091-2/+5
| | | | | | | | | | - Originally part of brettw's fix, here so we unblock me. BUG=none TEST= out-of-process pepper works. Review URL: http://codereview.chromium.org/6994001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84710 0039d316-1c4b-4281-b951-d872f2087c98
* Implementation of Flush() in ppb_graphics_2d_thunk.cc returns ↵bbudge@google.com2011-05-091-1/+1
| | | | | | | | PP_ERROR_BADARGUMENT instead of PP_ERROR_BADRESOURCE when given an invalid resource. Review URL: http://codereview.chromium.org/6985003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84701 0039d316-1c4b-4281-b951-d872f2087c98
* This implements the new system for Graphics2D only.brettw@chromium.org2011-05-067-0/+383
This works by adding a new thunk layer that will forward to an "API" that's either per-instance (function APIs) or per-resource (resource APIs). The proxying and such is then implemented in terms of this C++ API. Ideally the trackers of the PP_Resource/PP_Instance -> object mapping would be shared between the plugin and renderer processes. To keep this patch under control, I did this as a virtual base class which is implemented by ppapi::proxy::PluginResourceTracker and webkit::ppapi::ResourceTracker. Later, the functionality of these objects should be shared in a common tracker class. Still to do it a lot of cleanup and merging of things. Also, the namespaces are a bit out of control. Review URL: http://codereview.chromium.org/6905088 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84519 0039d316-1c4b-4281-b951-d872f2087c98