summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/host_dispatcher.h
Commit message (Collapse)AuthorAgeFilesLines
* Use the WebKit default fonts when specifying generic font families.brettw@chromium.org2011-05-261-1/+6
| | | | | | | | | | | | | This pipes through a new preferences object that the font system can use. It now picks up these faces as well as the default font size. Clarify this behavior in the interface. TEST=manual (font example included). BUG=none Review URL: http://codereview.chromium.org/7053022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86870 0039d316-1c4b-4281-b951-d872f2087c98
* Convert audio-related messages to the new thunk/API system for Pepper.brettw@chromium.org2011-05-131-1/+1
| | | | | | | | | | | | | | | | | | | 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-101-3/+3
| | | | | | | | | | | | | 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
* This implements the new system for Graphics2D only.brettw@chromium.org2011-05-061-0/+7
| | | | | | | | | | | 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
* Keep the module in scope when executing scripts. This prevents a crash when thebrettw@chromium.org2011-04-181-0/+17
| | | | | | | | | | | | | | | | | | | | script deletes the plugin object synchronously. This in turn deletes the dispatcher which will make the code returning the out param and exception to the plugin crash. To prevent the crash, this patch adds a way for the proxy to manipulate the refcount of the plugin object so that it's still alive when as long as the scripting message is being processed. A manual test is included. This is not automatically run now. I tried to fit it into the current test infrastructure and found it very challenging, We need to revisit this to allow custom tests to more easily be written. TEST=manual with included plugin and html BUG=none Review URL: http://codereview.chromium.org/6881012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81993 0039d316-1c4b-4281-b951-d872f2087c98
* Refactored ppapi Dispatcher to share common code between the plugin and ↵ddorwin@chromium.org2011-04-161-1/+8
| | | | | | | | | | | | | broker dispatchers. Common code is in DispatcherBase. The base of the dispatcher for plugins remains Dispatcher. The base of the dispatcher for Brokers is BrokerDispatcher. BUG=none TEST=ppapi out-of-process plugins Review URL: http://codereview.chromium.org/6859003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81883 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw_scoped_refptr_mismatch_checker.h ref_counted.cc ref_counted.h ref_counted_memory.cc ref_counted_memory.h ref_counted_unittest.cc scoped_callback_factory.h scoped_comptr_win.h scoped_handle.h scoped_native_library.cc scoped_native_library.h scoped_native_library_unittest.cc scoped_nsobject.h scoped_open_process.h scoped_ptr.h scoped_ptr_unittest.cc scoped_temp_dir.cc scoped_temp_dir.h scoped_temp_dir_unittest.cc scoped_vector.h singleton.h singleton_objc.h singleton_unittest.cc linked_ptr.h linked_ptr_unittest.cc weak_ptr.cc weak_ptr.h weak_ptr_unittest.cc BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6714032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
* Prevent Pepper plugin reentrancy for synchronous messages except for scriptbrettw@chromium.org2011-03-131-0/+14
| | | | | | | calls where reentrancy is required. Review URL: http://codereview.chromium.org/6625045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77967 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure that PP_Instance values are unique within a plugin process in additionbrettw@chromium.org2011-03-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | to within the renderer. This works by having the renderer check with the plugin that a PP_Instance is available before using it. If it's already seen, the renderer will generate a new PP_Instance and retry. For performance, this message is handled on the I/O thread of the plugin so it will not be blocked by the actual plugin code. This requires an unfortunate amount of plumbing. Since the renderer can't depend directly on the proxy, we have a new PPB_Proxy function to set the verification function used to perform this check. There is also a new plugin dispatcher delegate where I moved some of the global state to that used to go into the init function. Adding yet another parameter there seemed unfortunate. TEST=manual BUG=74961 Review URL: http://codereview.chromium.org/6628019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77693 0039d316-1c4b-4281-b951-d872f2087c98
* Implement proxying for FileRef and FileChooser.brettw@chromium.org2011-02-171-0/+12
| | | | | | | | | | This also changes the FileRef interface to remove the Query function, since there is no close function, there's no way to cancel the current request, which makes memory management of the info structure very difficult. Review URL: http://codereview.chromium.org/6519057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75331 0039d316-1c4b-4281-b951-d872f2087c98
* Implement basic crash detection and shutdown handling for out of process PPAPIbrettw@chromium.org2011-02-151-0/+17
| | | | | | | | | | | | | | | | | | plugins. Currently when a crash is detected we just delete as much stuff as is convenient, clear the plugin's backing store, and continue running. It does not hook up a sad plugin page yet. This adds a "proxy" interface for the proxy to tell the PPAPI backend implementation in the renderer about proxy-related stuff (like the plugin crashing). This also implements keeping the process alive for a period of time so we can re-use the same process. Review URL: http://codereview.chromium.org/6493004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74965 0039d316-1c4b-4281-b951-d872f2087c98
* Share PPAPI out-of-process plugins between renderer processes.brettw@chromium.org2011-02-131-4/+1
| | | | | | | | | | | | | This provides the hook-up for plugin sharing but not shutdown or cleanup from errors. There is still a lot of work to do cleaning up in the plugin and the browser when a renderer dies, or cleaning up in the renderer and browser when a plugin dies. Currently, even the normal exit case crashes in the browser. But fixing it in this patch would be too complicated to write or review, so I'm going to do shutdown & error handling in a followup. Review URL: http://codereview.chromium.org/6486034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74766 0039d316-1c4b-4281-b951-d872f2087c98
* Rent syncemove all uses of the global Dispatcher Get function.brettw@chromium.org2011-02-081-4/+26
| | | | | | | | | | | | | | | | | | | This reqired reworking how plugin->host GetInterface works. Previously, interface requests were symmetric where each side would first do a SupportsInterface to see if the remote side supports the interface, then create the proxy. Since the plugin may talk to multiple renderers, we don't know where to send these requests. The solution is to make the assumption that the renderer always supports all PPB interfaces (which is possible since the proxy is compiled with the executable). This also adds some better lookup for interfaces to avoid having multiple lists of interfaces. We now have a list of interfaces and factory functions in dispatcher.cc. Add some additional testing infrastructure for the dispatchers with simple tests. Review URL: http://codereview.chromium.org/6286070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74121 0039d316-1c4b-4281-b951-d872f2087c98
* First pass at making the proxy handle multiple renderers. This associates thebrettw@chromium.org2011-01-211-1/+0
| | | | | | | | | | | | | | | | | | | | instance with resources and has most callers retrieve the dispatcher according to the appropriate instance. This isn't hooked up to anything yet. This changes some PPB_Flash interface methods to use PP_Bool. The most challenging part of the change is in the plugin_var_tracker which now needs to track which dispatcher each var object came from, and remap var IDs since each renderer will be generating var IDs in its own space, which will likely overlap. A similar system will need to be done for resources which is not implemented yet. I added some null checks in audio_impl because audio_ can be NULL in some cases when using the trusted API. I discovered this when testing NaCl for this patch. Review URL: http://codereview.chromium.org/6282007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72053 0039d316-1c4b-4281-b951-d872f2087c98
* Start deinlining non-empty virtual methods. (This will be automatically checkederg@google.com2010-12-091-1/+1
| | | | | | | | | | | for in the future.) BUG=none TEST=compiles Review URL: http://codereview.chromium.org/5574006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68746 0039d316-1c4b-4281-b951-d872f2087c98
* Make webkit/glue/plugins no longer depend on ppapi/proxy directly. This causesbrettw@chromium.org2010-12-081-1/+4
| | | | | | | | | | | | | things that use webkit but otherwise don't need IPC to include the IPC directory. This patch moves the set-up of the proxy into the renderer. I also did a lot of clean-up of the initialization and it seems much nicer now. BUG=63684 TEST=manual PPAPI proxy testing git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68567 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 68482 - Make webkit/glue/plugins no longer depend on ppapi/proxy ↵brettw@chromium.org2010-12-071-4/+1
| | | | | | | | | | | | | | | | | | | directly. This causes things that use webkit but otherwise don't need IPC to include the IPC directory. This patch moves the set-up of the proxy into the renderer. I also did a lot of clean-up of the initialization and it seems much nicer now. BUG=63684 TEST=manual PPAPI proxy testing Review URL: http://codereview.chromium.org/5592005 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/5616004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68486 0039d316-1c4b-4281-b951-d872f2087c98
* Make webkit/glue/plugins no longer depend on ppapi/proxy directly. This causesbrettw@chromium.org2010-12-071-1/+4
| | | | | | | | | | | | | | things that use webkit but otherwise don't need IPC to include the IPC directory. This patch moves the set-up of the proxy into the renderer. I also did a lot of clean-up of the initialization and it seems much nicer now. BUG=63684 TEST=manual PPAPI proxy testing Review URL: http://codereview.chromium.org/5592005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68482 0039d316-1c4b-4281-b951-d872f2087c98
* Implement audio proxy for Pepper.brettw@chromium.org2010-12-021-1/+3
| | | | | | | | | | | | | In addition to the basic proxying, this required some changes to the dispatcher and process infrastructure to get the handles of the processes available when I need them so I can duplicate the shared memory handles properly into the different processes. TEST=none BUG=none Review URL: http://codereview.chromium.org/4985001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68026 0039d316-1c4b-4281-b951-d872f2087c98
* Core PPAPI proxy files. This includes the dispatcher which is the control pointbrettw@chromium.org2010-11-031-0/+61
| | | | | | | | | | | | on each end of the IPC channel. It includes the IPC message definitions. It also includes the base class for the interface proxying, and the core resource and var tracking. BUG=none TEST=none Review=http://codereview.chromium.org/4229002/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64874 0039d316-1c4b-4281-b951-d872f2087c98
* Revert PPAPI proxy change with too many files in it.brettw@chromium.org2010-11-031-61/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64870 0039d316-1c4b-4281-b951-d872f2087c98
* Core PPAPI proxy files. This includes the dispatcher which is the control pointbrettw@chromium.org2010-11-031-0/+61
on each end of the IPC channel. It includes the IPC message definitions. It also includes the base class for the interface proxying, and the core resource and var tracking. BUG=none TEST=none Review URL: http://codereview.chromium.org/4229002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64869 0039d316-1c4b-4281-b951-d872f2087c98