This is to allow the GPU process to be sandboxed on all platforms.
TEST=try, run WebGL app on win and mac.
BUG=none
Review URL: http://codereview.chromium.org/6588029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76307 0039d316-1c4b-4281-b951-d872f2087c98
This change removes invalid direct calls to constructors and replaces NULL to 0 as workarounds for a compiler bug of gcc 4.6.
Patch from Maarten Lankhorst <m.b.lankhorst@gmail.com>.
BUG=none
TEST=fix builds on gcc 4.6
Review URL: http://codereview.chromium.org/6596005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76046 0039d316-1c4b-4281-b951-d872f2087c98
BUG=none
TEST=use flapper, go to youtube, make plugin crash and check no warning about close() failing.
Review URL: http://codereview.chromium.org/6580050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76026 0039d316-1c4b-4281-b951-d872f2087c98
Transfer buffer creation was previously done in the GPU process. This is one step required to sandbox the GPU process.
Rather than the GPU process opening a renderer process's handle by PID, which can't been done when sandboxed on Windows, the browser process passes the handle to the GPU process via the renderer process.
TEST=try
BUG=none
Review URL: http://codereview.chromium.org/6557006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75980 0039d316-1c4b-4281-b951-d872f2087c98
ppb_flash_file.* is intended to contain multiple (very similar) interfaces, of
which the ModuleLocal stuff is one.
BUG=none
TEST="everything" still works
Review URL: http://codereview.chromium.org/6579026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75921 0039d316-1c4b-4281-b951-d872f2087c98
This also adds error logging to the various places we close file descriptors, to help diagnosing future similar issues.
BUG=none
TEST=Pepper Flash + youtube in oop with --enable-accelerated-plugins
Review URL: http://codereview.chromium.org/6549037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75792 0039d316-1c4b-4281-b951-d872f2087c98
don't use FileIO which isn't don yet) to pass in the proxy.
Hook up the code from the URLLoader that downloads to a file. This allows all
URLLoader tests to pass in the proxy.
Change code in dispatcher that zeros out the array to take into account
padding. It was only zero-filling half of the array since sizeof(enum) * # elts
seems to be half as large as the actual array due to padding on 64-bit systems.
Make the aborted completion callbacks run asynchronously. This was caught by
one of the file ref tests. We really need a system for doing this better, but
I don't want to do that in this patch.
TEST=ppapi_tests run under proxy
Review URL: http://codereview.chromium.org/6543028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75566 0039d316-1c4b-4281-b951-d872f2087c98
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
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
Previous code was closing a file descriptor it shouldn't causing trouble when the real owner tried to close it again.
BUG=none
TEST=with pepper flash, load a youtube video with sound, reload the page, should see no assert.
Review URL: http://codereview.chromium.org/6528004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74894 0039d316-1c4b-4281-b951-d872f2087c98
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
This allows you to build all targets without ending up with spurious comment changes in your client.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6441001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74177 0039d316-1c4b-4281-b951-d872f2087c98
Also lays groundwork for rebuilding Pepper OpenGL ES bindings as part of the build.
BUG=none
TEST=run "make ppapi_gles_bindings" or "make ppapi_gles_implementation".
Review URL: http://codereview.chromium.org/5212006TBR=neb@chromium.org
This change was causing just building to create merge conflicts in
clean repos. Either these targets shouldn't be part of standard build
targets like "chrome" or "unit_tests", or we shouldn't have build targets
which generate output into the working tree...
Review URL: http://codereview.chromium.org/6461001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74161 0039d316-1c4b-4281-b951-d872f2087c98
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
issue whereby PP_Var docs weren't showing up in the right place.
Review URL: http://codereview.chromium.org/6312099
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73506 0039d316-1c4b-4281-b951-d872f2087c98
BUG=none
TEST=pepper flash, run it and move the mouse everywhere.
Review URL: http://codereview.chromium.org/6260057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73475 0039d316-1c4b-4281-b951-d872f2087c98
Also lays groundwork for rebuilding Pepper OpenGL ES bindings as part of the build.
BUG=none
TEST=run "make ppapi_gles_bindings" or "make ppapi_gles_implementation".
Review URL: http://codereview.chromium.org/5212006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73222 0039d316-1c4b-4281-b951-d872f2087c98
This meets the needs of Flapper. We may want to generalize/restrict/modify the
API for inclusion into PPAPI, but hopefully this lays a foundation.
BUG=none
TEST=Flapper context menus work (with the right version of Flapper)
Review URL: http://codereview.chromium.org/6253017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73193 0039d316-1c4b-4281-b951-d872f2087c98
of many files.
Review URL: http://codereview.chromium.org/6261031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73030 0039d316-1c4b-4281-b951-d872f2087c98
Go back to using the old code for the audio created notification. There was a
bug deserializing one of the handles, and the new code I wrote didn't turn out
to be necessary anyway.
TEST=audio plays in out-of-process proxy (manual)
BUG=none
Review URL: http://codereview.chromium.org/6341015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73003 0039d316-1c4b-4281-b951-d872f2087c98
and to map back to that host when calling functions on them. Adds a mapping
between resources generated by the hosts to a new list inside the plugin so
there can't be overlaps.
This means there are now two meanings for a PP_Resource, one in the plugin
process and one in the host process. This is potentially very confusing. I
introduced a new object called a HostResource that always represents a
"host" PP_Resource to try to prevent errors. In the plugin side of the proxy,
it only deals with PP_Resources valid in the plugin, and SerializedResources
valid in the host. It also encapsulates the associated instance, which
simplifies some code.
Each PluginResource object maintains its SerializedResource which the proxy
uses to send to the host for requests. This requires getting the PluginResource
object in more proxy calls.
This fixes a bug in var sending introduced in my previous patch. The var
releasing from EndSendPassRef used the host var rather than the plugin var. I
had to add more plumbing to get the dispatcher at this location and convert
to a plugin var.
I removed the separate file for ImageData and put it in ppb_image_data_proxy
like for the other resource types.
TEST=some unit tests included
BUG=none
Review URL: http://codereview.chromium.org/6334016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72879 0039d316-1c4b-4281-b951-d872f2087c98
which portion of ppapi to use. This revents ppapi from inducing dependencies on
other libraries such as base, or large code bases such as mesa in the cases where
the ppapi user doesn't need them.
BUG=nacl1339
TEST=None
Review URL: http://codereview.chromium.org/6265022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72248 0039d316-1c4b-4281-b951-d872f2087c98