summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy
Commit message (Collapse)AuthorAgeFilesLines
* Add support for strong future sync points.jbauman@chromium.org2014-07-015-0/+58
| | | | | | | | | | If InsertFutureSyncPoint() is used (this is only allowed from the browser process), the sync point will not be retired automatically but can be retired later manually with RetireSyncPoint. Any command buffer that waits on it before it's retired can wait indefinitely. BUG=365454 Review URL: https://codereview.chromium.org/284233008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280708 0039d316-1c4b-4281-b951-d872f2087c98
* Move PPB_TrueTypeFont_Dev host from renderer to browser.bbudge@chromium.org2014-06-263-33/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Linux, we can now use FontConfig in the browser process since it is thread-safe, so we don't need to use SandboxIPC from the renderer. In the browser, the needed functionality is split off from SandboxIPCHandler into a static function, MatchFontFaceWithFallback in a new pair of files, font_utils_linux.*. This change also moves any potentially blocking font creation and reading to the browser's blocking thread pool. I reworked the PepperTrueTypeFont base class to make Create simpler. - Added an Initialize method which returns the font descriptor. - Removed the Describe method. I reworked the resource to delay calls to the host until we receive the desc and initialization is complete. Describe will now wait until Initialize completes, and the host uses a SequencedTaskRunner to serialize tasks, so Initialize completes before GetTableTags and GetTable calls complete. The Describe method can be implemented without IPC since we have the desc on the plugin side. BUG=382729 Review URL: https://codereview.chromium.org/337203003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280107 0039d316-1c4b-4281-b951-d872f2087c98
* Export ResourceMessageParams::SerializedHandleshans@chromium.org2014-06-261-1/+1
| | | | | | | | | | | | | | | | The inner class needs to be exported in case any uses in inline methods or vtable of the outer class causes it to potentially be referenced across a shared library boundary. On non-Windows, the visibility attribute is already inherited by nested classes, but on Windows, they must be marked explicitly. BUG=82385 TEST=use Clang to do component release build of chrome on Windows Review URL: https://codereview.chromium.org/359503003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280038 0039d316-1c4b-4281-b951-d872f2087c98
* Tidy up stray semicolons and missing include guard in message files.tsepez@chromium.org2014-06-261-7/+7
| | | | | | | | | | | These manifested when I was making an ipc utility for my own use. They are wrong even if they don't break the builders. R=jam@chromium.org Review URL: https://codereview.chromium.org/354493007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279919 0039d316-1c4b-4281-b951-d872f2087c98
* Ppapi: Avoid entering resource three times in BindGraphics().penghuang@chromium.org2014-06-231-23/+14
| | | | | | | | BUG=None Review URL: https://codereview.chromium.org/355493002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279227 0039d316-1c4b-4281-b951-d872f2087c98
* [PPAPI] Add browser tests for compositor APIpenghuang@chromium.org2014-06-204-16/+43
| | | | | | | | | | | | | | And fix a bug found with the tests. BindGraphics() does not work for a device which is in the same type with the current bound device. BUG=374383 R=piman@chromium.org, raymes@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=278728 Review URL: https://codereview.chromium.org/324983005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278779 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 278728 "[PPAPI] Add browser tests for compositor API"yzshen@chromium.org2014-06-204-43/+16
| | | | | | | | | | | | | | | | | | > [PPAPI] Add browser tests for compositor API > > And fix a bug found with the tests. > BindGraphics() does not work for a device which is in the same type with the current bound device. > > BUG=374383 > R=piman@chromium.org, raymes@chromium.org > > Review URL: https://codereview.chromium.org/324983005 TBR=penghuang@chromium.org Review URL: https://codereview.chromium.org/342323006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278765 0039d316-1c4b-4281-b951-d872f2087c98
* [PPAPI] Add browser tests for compositor APIpenghuang@chromium.org2014-06-204-16/+43
| | | | | | | | | | | | And fix a bug found with the tests. BindGraphics() does not work for a device which is in the same type with the current bound device. BUG=374383 R=piman@chromium.org, raymes@chromium.org Review URL: https://codereview.chromium.org/324983005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278728 0039d316-1c4b-4281-b951-d872f2087c98
* Removed ManagedMemoryStats.vmpstr@chromium.org2014-06-192-7/+0
| | | | | | | | | | | | | As of r277056, the gpu memory manager is no longer using managed memory stats produced. This patch removes the managed memory stats calculation from the tile manager. As well, this patch removes ununsed gpu managed memory stats plumbing. BUG=377065 Review URL: https://codereview.chromium.org/342483007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278294 0039d316-1c4b-4281-b951-d872f2087c98
* Add GetScrollOffset function to PPB_Viewraymes@chromium.org2014-06-191-0/+1
| | | | | | | | | | | | | | | | | | This adds a function to PPB_View which allows plugins to know the scroll offset of the page when they are in view. This is useful for OOP PDF which uses the scroll offset of the window it is contained in to determine the document's scroll location. A web page can send scroll location via postMessage but this is slow. Sending the offset directly via view messages is much faster and seems reasonable. We don't send the scroll offset in the cases where the plugin is off screen to avoid any more additional IPC traffic than what currently exists. BUG=303491 Review URL: https://codereview.chromium.org/329033003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278236 0039d316-1c4b-4281-b951-d872f2087c98
* [PPAPI] Using ProduceTextureDirectCHROMIUM() to avoid binding and restoring ↵penghuang@chromium.org2014-06-181-20/+2
| | | | | | | | | | | GL_TEXTURE_2D target. BUG=374383 R=bbudge@chromium.org, danakj@chromium.org Review URL: https://codereview.chromium.org/341893004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278165 0039d316-1c4b-4281-b951-d872f2087c98
* PPAPI: Implement synchronous postMessagedmichael@chromium.org2014-06-188-5/+329
| | | | | | | | BUG=367896 Review URL: https://codereview.chromium.org/264303002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278102 0039d316-1c4b-4281-b951-d872f2087c98
* Pepper: Fix texture management in VideoDecoderShim on Reset.bbudge@chromium.org2014-06-161-0/+4
| | | | | | | | | | | | | | - Use a hash_set to track available textures. This prevents weird behavior if the plugin recycles a texture twice. - Fix Reset, so all textures are made available on completion. - Fix the plugin, which had a bug that allowed pictures to jump the queue and didn't behave correctly on Reset. BUG=281689 Review URL: https://codereview.chromium.org/337743003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277548 0039d316-1c4b-4281-b951-d872f2087c98
* Remove apps in Pepper support and the PPB_Alarms_Dev API.yzshen@chromium.org2014-06-165-232/+0
| | | | | | | | | BUG=366304 TEST=None Review URL: https://codereview.chromium.org/314823002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277513 0039d316-1c4b-4281-b951-d872f2087c98
* [PPAPI] Compositor API implementation.penghuang@chromium.org2014-06-168-23/+608
| | | | | | | | | | | | | | Implement the compositor API which allows a plugin to combine different sources of visual data efficiently, such as PPB_ImageData and OpengGL texture. API Proposal http://goo.gl/V7xcu3 BUG=374383 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=277208 Review URL: https://codereview.chromium.org/298023004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277422 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 277208 "[PPAPI] Compositor API implementation."tzik@chromium.org2014-06-168-608/+23
| | | | | | | | | | | | | | | | | | | | | | | | This CL seems to cause perf bot failure. The log said nacl_helper-data size gained exceeds expectation. http://build.chromium.org/p/chromium/builders/Linux/builds/50560 https://chromeperf.appspot.com/report?masters=Chromium&bots=chromium-rel-linux&tests=sizes%2Fnacl_helper-data&rev=277212&checked=core > [PPAPI] Compositor API implementation. > > Implement the compositor API which allows a plugin to combine different sources of visual data efficiently, such as PPB_ImageData and OpengGL texture. > > API Proposal http://goo.gl/V7xcu3 > > BUG=374383 > > Review URL: https://codereview.chromium.org/298023004 TBR=penghuang@chromium.org Review URL: https://codereview.chromium.org/331123003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277372 0039d316-1c4b-4281-b951-d872f2087c98
* [PPAPI] Compositor API implementation.penghuang@chromium.org2014-06-148-23/+608
| | | | | | | | | | | | Implement the compositor API which allows a plugin to combine different sources of visual data efficiently, such as PPB_ImageData and OpengGL texture. API Proposal http://goo.gl/V7xcu3 BUG=374383 Review URL: https://codereview.chromium.org/298023004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277208 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Revert of Implement software fallback for PPB_VideoDecoder. ↵schenney@chromium.org2014-06-134-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/337683002/) Reason for revert: Revert of revert, which apparently wasn't a full revert. Original issue's description: > Revert of Implement software fallback for PPB_VideoDecoder. (https://codereview.chromium.org/311853005/) > > Reason for revert: > Broke blink Linux tests compile.http://build.chromium.org/p/chromium.webkit/builders/Linux%20Tests/builds/37259 > > Original issue's description: > > Implement software fallback for PPB_VideoDecoder. > > This modifies the proxy to implement software fallback mode. > > The main change is to the host, which now can work with > > media::VideoDecoders. > > > > media::VideoDecoder works differently from media::VideoDecodeAccelerator > > so an adapter object, content::VideoDecoderShim is defined. It lives on the main thread and drives the actual decoder on the media thread via a child DecoderImpl class, which sends back frames of video. VideoDecoderShim receives those and converts frames to GL textures. > > > > gpu::Mailboxes are used so the host can create textures that are aliased > > to the plugin's textures. > > > > The test plugin has been changed to include bitstream data for VP8 in order to > > test the software decoder. The data is in ppapi/examples/video_decode/testdata.h > > alongside the H264 data. The file diff is too large for this site but is structured > > something like this: > > > > const unsigned char kData[] = { > > #if defined USE_VP8_TESTDATA_INSTEAD_OF_H264 > > ... lots of VP8 data > > > > #else // !USE_VP8_TESTDATA_INSTEAD_OF_H264 > > ... lots of H264 data > > > > #endif // USE_VP8_TESTDATA_INSTEAD_OF_H264 > > }; > > > > > > There is a TODO to convert the example to load a file. I'm not sure how to go > > about that but am willing to do the work if someone can point the way. > > > > BUG=281689 > > R=dmichael@chromium.org, fischman@chromium.org, sievers@chromium.org, tsepez@chromium.org > > > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=277012 > > TBR=dmichael@chromium.org,fischman@chromium.org,igorc@chromium.org,piman@chromium.org,sievers@chromium.org,tsepez@chromium.org,bbudge@chromium.org > NOTREECHECKS=true > NOTRY=true > BUG=281689 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=277015 TBR=dmichael@chromium.org,fischman@chromium.org,igorc@chromium.org,piman@chromium.org,sievers@chromium.org,tsepez@chromium.org,bbudge@chromium.org NOTREECHECKS=true NOTRY=true BUG=281689 Review URL: https://codereview.chromium.org/333903002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277020 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Implement software fallback for PPB_VideoDecoder. ↵schenney@chromium.org2014-06-134-19/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/311853005/) Reason for revert: Broke blink Linux tests compile.http://build.chromium.org/p/chromium.webkit/builders/Linux%20Tests/builds/37259 Original issue's description: > Implement software fallback for PPB_VideoDecoder. > This modifies the proxy to implement software fallback mode. > The main change is to the host, which now can work with > media::VideoDecoders. > > media::VideoDecoder works differently from media::VideoDecodeAccelerator > so an adapter object, content::VideoDecoderShim is defined. It lives on the main thread and drives the actual decoder on the media thread via a child DecoderImpl class, which sends back frames of video. VideoDecoderShim receives those and converts frames to GL textures. > > gpu::Mailboxes are used so the host can create textures that are aliased > to the plugin's textures. > > The test plugin has been changed to include bitstream data for VP8 in order to > test the software decoder. The data is in ppapi/examples/video_decode/testdata.h > alongside the H264 data. The file diff is too large for this site but is structured > something like this: > > const unsigned char kData[] = { > #if defined USE_VP8_TESTDATA_INSTEAD_OF_H264 > ... lots of VP8 data > > #else // !USE_VP8_TESTDATA_INSTEAD_OF_H264 > ... lots of H264 data > > #endif // USE_VP8_TESTDATA_INSTEAD_OF_H264 > }; > > > There is a TODO to convert the example to load a file. I'm not sure how to go > about that but am willing to do the work if someone can point the way. > > BUG=281689 > R=dmichael@chromium.org, fischman@chromium.org, sievers@chromium.org, tsepez@chromium.org > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=277012 TBR=dmichael@chromium.org,fischman@chromium.org,igorc@chromium.org,piman@chromium.org,sievers@chromium.org,tsepez@chromium.org,bbudge@chromium.org NOTREECHECKS=true NOTRY=true BUG=281689 Review URL: https://codereview.chromium.org/337683002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277015 0039d316-1c4b-4281-b951-d872f2087c98
* Implement software fallback for PPB_VideoDecoder.bbudge@chromium.org2014-06-134-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This modifies the proxy to implement software fallback mode. The main change is to the host, which now can work with media::VideoDecoders. media::VideoDecoder works differently from media::VideoDecodeAccelerator so an adapter object, content::VideoDecoderShim is defined. It lives on the main thread and drives the actual decoder on the media thread via a child DecoderImpl class, which sends back frames of video. VideoDecoderShim receives those and converts frames to GL textures. gpu::Mailboxes are used so the host can create textures that are aliased to the plugin's textures. The test plugin has been changed to include bitstream data for VP8 in order to test the software decoder. The data is in ppapi/examples/video_decode/testdata.h alongside the H264 data. The file diff is too large for this site but is structured something like this: const unsigned char kData[] = { #if defined USE_VP8_TESTDATA_INSTEAD_OF_H264 ... lots of VP8 data #else // !USE_VP8_TESTDATA_INSTEAD_OF_H264 ... lots of H264 data #endif // USE_VP8_TESTDATA_INSTEAD_OF_H264 }; There is a TODO to convert the example to load a file. I'm not sure how to go about that but am willing to do the work if someone can point the way. BUG=281689 R=dmichael@chromium.org, fischman@chromium.org, sievers@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/311853005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277012 0039d316-1c4b-4281-b951-d872f2087c98
* Decouple IPC::MessageFilter from IPC::Channelmorrita@chromium.org2014-06-132-9/+9
| | | | | | | | | | | | | This change gets rid of Channel dependency from MessageFilter so that it depends only on IPC::Sender. TEST=none BUG=377980 R=jam@chromium.org, darin@chromium.org Review URL: https://codereview.chromium.org/324143002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276939 0039d316-1c4b-4281-b951-d872f2087c98
* Remove base::kInvalidPlatformFileValue from components, ipc and ppapi.rvargas@chromium.org2014-06-101-6/+7
| | | | | | | | | BUG=322664 TBR=mseaborn@chromium.org Review URL: https://codereview.chromium.org/316363003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276003 0039d316-1c4b-4281-b951-d872f2087c98
* Remove cdn from OWNERS for IPC security review.palmer@chromium.org2014-06-081-1/+0
| | | | | | | | | | | Since he is no longer on the project. Sniff. :'( BUG=none R=jln@chromium.org Review URL: https://codereview.chromium.org/317243005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275756 0039d316-1c4b-4281-b951-d872f2087c98
* Add Promises for EME (Chromium side)jrummell@chromium.org2014-06-075-115/+245
| | | | | | | | | | | | | | | | | | | | | | | Now that the EME-WD spec has changed to specify promises, implement them on the Chromium side. They currently get converted back to events before passing them to blink:: until the blink interface gets changed. Additional changes in this CL: 1. Pass a reference to the promise though PPAPI. 2. Roll DEPS for CDM.h to include CDM_5. 3. Update cdm_adapter to use CDM_5 (in addition to existing CDM_4). 4. Change External Clear Key to use CDM_5. 5. Since CDM_5 references sessions by the actual session id (a string, web_session_id), switch to using it rather than the previously used session_id (which is an integer, and used as a reference). BUG=358271 TEST=all existing encrypted media layout and browser tests pass Review URL: https://codereview.chromium.org/265993002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275656 0039d316-1c4b-4281-b951-d872f2087c98
* [PPAPI] API definition for compositor artifactsmiletus@chromium.org2014-06-067-0/+213
| | | | | | | | | | | API Proposal http://goo.gl/V7xcu3 BUG=374383 R=binji@chromium.org, dmichael@chromium.org, mpearson@chromium.org, piman@chromium.org, raymes@chromium.org, yzshen@chromium.org Review URL: https://codereview.chromium.org/292523003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275490 0039d316-1c4b-4281-b951-d872f2087c98
* Fix Unaddr error from ↵penghuang@chromium.org2014-06-062-4/+2
| | | | | | | | | | ppapi::proxy::MediaStreamAudioTrackResource::ReleaseBuffers BUG=380669 Review URL: https://codereview.chromium.org/319703005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275364 0039d316-1c4b-4281-b951-d872f2087c98
* Remove stale references to PlatformFile flags, errors or functions.rvargas@chromium.org2014-06-051-2/+2
| | | | | | | | BUG=322664 Review URL: https://codereview.chromium.org/318753007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275258 0039d316-1c4b-4281-b951-d872f2087c98
* Add IPC::ChannelProxy::Create() and IPC::SyncChannel::Create()morrita@chromium.org2014-06-051-4/+5
| | | | | | | | | | | | | | | | | | | This change replaces constructors with Create() methods of ChannelProxy and SyncChannel. This open the possibility to introduce polymorphism to these classes. This is a revision of r274310 (https://codereview.chromium.org/301973003/) in which I added bunch of Create*() method variants. The chagne was reverted. This change no longer does it and just keeps using Channel::Mode to specify the channel type. TEST=none BUG=377980 R=darin@chromium.org,jam@chromium.org Review URL: https://codereview.chromium.org/310853003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275140 0039d316-1c4b-4281-b951-d872f2087c98
* Support configuring number of audio buffers in MediaStream Pepper API.thembrown@gmail.com2014-06-033-3/+68
| | | | | | | | | | | A optionally larger number of buffers makes recording audio in a pnacl module more reliable when latency is not an issue. BUG=330851 Review URL: https://codereview.chromium.org/290993005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274511 0039d316-1c4b-4281-b951-d872f2087c98
* Add missing 'break' statements to ppapi::proxy::NaClMessageScanner.bbudge@chromium.org2014-06-031-0/+2
| | | | | | | | | | | Two cases don't have breaks and fall through incorrectly. The first may be responsible for issue http://crbug.com/370919. BUG=370919 Review URL: https://codereview.chromium.org/307293002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274408 0039d316-1c4b-4281-b951-d872f2087c98
* Remove PlatformFile from ppapirvargas@chromium.org2014-06-039-99/+77
| | | | | | | | BUG=322664 Review URL: https://codereview.chromium.org/304513007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274377 0039d316-1c4b-4281-b951-d872f2087c98
* PPAPI: Add dev synchronous JS->Plugin messaging APIdmichael@chromium.org2014-06-022-0/+17
| | | | | | | | BUG=367896 Review URL: https://codereview.chromium.org/252023009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274349 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 274310 "Introduce IPC::ChannelProxy::Create*() and IPC::S..."lambroslambrou@chromium.org2014-06-021-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Broke Windows compile: http://build.chromium.org/p/chromium.win/buildstatus?builder=Win%20x64%20Builder&number=180 FAILED: ninja -t msvc -e environment.x64 -- C:\b\build\goma/gomacc "C:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64\cl.exe" /nologo /showIncludes /FC @obj\remoting\host\win\remoting_core.wts_session_process_delegate.obj.rsp /c ..\..\remoting\host\win\wts_session_process_delegate.cc /Foobj\remoting\host\win\remoting_core.wts_session_process_delegate.obj /Fdobj\remoting\remoting_core.cc.pdb c:\b\build\slave\win_x64_builder\build\src\remoting\host\win\wts_session_process_delegate.cc(386) : error C2661: 'IPC::ChannelProxy::ChannelProxy' : no overloaded function takes 4 arguments ninja: build stopped: subcommand failed. > Introduce IPC::ChannelProxy::Create*() and IPC::SynChannel::Create*() > > This change hides constructors of these classes so that we can turn > them polymorphic classes. > > Note that having almost identical ChannelProxy::Init*() isn't great > and they will be replaced by a factory-like abstraction in coming > changes. > > TEST=none > R=darin,cpu > BUG=377980 > > Review URL: https://codereview.chromium.org/301973003 TBR=morrita@chromium.org Review URL: https://codereview.chromium.org/312553004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274315 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce IPC::ChannelProxy::Create*() and IPC::SynChannel::Create*()morrita@chromium.org2014-06-021-5/+8
| | | | | | | | | | | | | | | | | This change hides constructors of these classes so that we can turn them polymorphic classes. Note that having almost identical ChannelProxy::Init*() isn't great and they will be replaced by a factory-like abstraction in coming changes. TEST=none R=darin,cpu BUG=377980 Review URL: https://codereview.chromium.org/301973003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274310 0039d316-1c4b-4281-b951-d872f2087c98
* Implement Pepper PPB_VideoDecoder interface.bbudge@chromium.org2014-05-309-1/+1346
| | | | | | | | | | | | | | | | | Adds resource and host, unit test for the resource, and an example plugin. Implements only the hardware accelerated case. Software fallback will be in a follow-on CL. Adds two new PP_Error codes: PP_ERROR_UNREADABLE_INPUT PP_ERROR_PLATFORM_FAILED BUG=281689 R=dmichael@chromium.org, fischman@chromium.org, jar@chromium.org, piman@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/270213004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273920 0039d316-1c4b-4281-b951-d872f2087c98
* Track plugin input event latencymiletus@chromium.org2014-05-276-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL uses LatencyInfo to track the plugin input event latency. 1.Each plugin input event has an associated LatencyInfo which includes some important components from its according ui::Event/WebInputEvent's LatencyInfo. To do that, during the scope of RenderWidget::OnHandleInputEvent(WebInputEvent, latency_info) we first cache the WebInputEvent's latency_info, then if the input event needs to be routed to plugin, we copy the important components from the cached latency_info into the plugin input event's LatencyInfo. 2.A private API InputEventPrivate::TraceInputLatency(bool has_damage) is exposed. 3.If the event is believed to cause rendering damage, private_event.TraceInputLatency(true) can be called, and the input event's LatencyInfo will be sent to renderer with next plugin frame and be tracked until it reaches screen. If the event is believed to not cause any rendering damage, private_event.TraceInputLatency(false) can be called, and the LatencyInfo tracking ends right at the call. BUG=355719 TEST=with custom test touch drawing plugin, input-to-swapbuffer latency is shown correctly in trace viewer. Review URL: https://codereview.chromium.org/252663002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272990 0039d316-1c4b-4281-b951-d872f2087c98
* Make asynchronous writes with PPB_FileIO copy the plugin's buffer.bbudge@chromium.org2014-05-222-24/+44
| | | | | | | | | | | | This fixes a problem that was introduced by moving the implementation of Write to the plugin side. The plugin must maintain its buffer until completion. BUG=none Review URL: https://codereview.chromium.org/296803002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272120 0039d316-1c4b-4281-b951-d872f2087c98
* PPAPI: Simplify PluginDispatcher::instance_map_dmichael@chromium.org2014-05-152-8/+5
| | | | | | | | | | | | | | ScopedPtrHashMap makes the code a tiny bit simpler. This also will let me put a scoped_ptr<MessageHandler> inside InstanceData in support of issue 367896. Owning the InstanceDatas by value makes it hard/impossible to use scoped_ptr inside InstanceData. BUG=367896 R=bbudge@chromium.org Review URL: https://codereview.chromium.org/277333005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270705 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for passing an arbitrary parameter to an IPC message handler. ↵jam@chromium.org2014-05-131-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The motivation is for WebContentsObserver to pass RenderFrameHost* to message handlers easily. As an example, an observer would look like this: bool FooWebContentsObserver::OnMessageReceived( const IPC::Message& message, RenderFrameHost* render_frame_host) { IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(FooWebContentsObserver, message, RenderFrameHost, render_frame_host) IPC_MESSAGE_HANDLER(FooHostMsg_Bar, OnBar) . . . void FooWebContentsObserver::OnBar(RenderFrameHost* render_frame_host, ... You can of course still have dispatchers without the extra parameter as before. This is generalizing the existing code that allows an IPC message handler to have a "const IPC::Message& message) first parameter to get access to the IPC. Sync IPCs don't support this yet. It's a lot more work because for them we conveniently reuse tuple's DispatchToMethod. This isn't urgent yet, since sync IPCs aren't dispatched on the UI thread for the most part because of NPAPI and Windows, so punting on this for now. BUG=304341 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/283623002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270237 0039d316-1c4b-4281-b951-d872f2087c98
* Add PPAPI_BEGIN_MESSAGE_MAP and PPAPI_END_MESSAGE_MAP to be used when ↵jam@chromium.org2014-05-139-16/+32
| | | | | | | | | | | | | dispatching IPCs using PPAPI_DISPATCH_*. This is because the IPC_BEGIN_MESSAGE_MAP macros are closely tied to IPC_MESSAGE_HANDLERS. This is split off from https://codereview.chromium.org/283623002/ BUG=304341 R=brettw@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/281803003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270218 0039d316-1c4b-4281-b951-d872f2087c98
* Rearrange GLImage API to create them with a usage typealexst@chromium.org2014-05-062-5/+6
| | | | | | | | | | instead of using usage type while mapping the buffer. BUG= Review URL: https://codereview.chromium.org/255713008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268548 0039d316-1c4b-4281-b951-d872f2087c98
* Rename some PPB_VideoDecoder_Dev implementation types.bbudge@chromium.org2014-05-065-18/+16
| | | | | | | | | | | Adds a "_Dev" suffix to some types that would collide with upcoming public VideoDecoder API. BUG=281689 Review URL: https://codereview.chromium.org/263893005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268450 0039d316-1c4b-4281-b951-d872f2087c98
* PPAPI: Simplify PPP_Messaging proxy, remove in-processdmichael@chromium.org2014-05-064-47/+21
| | | | | | | | | | | We don't use PPP_Messaging in-process anywhere, so let's kill it now. This will make implementing the sync JS->Pepper API a little cleaner. BUG=367896 Review URL: https://codereview.chromium.org/261883008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268367 0039d316-1c4b-4281-b951-d872f2087c98
* [PPAPI] Add media stream video track output APIronghuawu@chromium.org2014-05-057-8/+80
| | | | | | | | | | Implemented the pepper host for the output mode. R=bbudge@chromium.org, dmichael@chromium.org, jschuh@chromium.org, yzshen@chromium.org Review URL: https://codereview.chromium.org/145263008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268318 0039d316-1c4b-4281-b951-d872f2087c98
* Implement open_resource in non-SFI mode.hidehiko@chromium.org2014-05-021-0/+5
| | | | | | | | | | | | | | | | This CL implements open_resource() in non-SFI mode. 1) Introduced a new sync message PpapiHostMsg_OpenResource and its handlers. 2) Implement async version of OpenManifestEntry. As IPC's handler is called on renderer's main thread, otherwise it causes deadlock. TEST=Run trybots. BUG=358431 Review URL: https://codereview.chromium.org/249183004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267962 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Separate GpuControlService from GpuControlboliu@chromium.org2014-05-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Orignal goal of this CL is to make InProcessCommandBuffer::CreateGpuMemoryBuffer and DestroyGpuMemoryBuffer thread safe. Before this, Create runs on the client thread and Destroy runs on the service thread without any kind of synchronization. This change makes the division closer to the cross-process implementation, moving parts of the implementation from GpuControlService to GpuControl/InProcessViewRenderer. As a result, GpuControlService no longer needs to inherit GpuControl. And GLES2Decoder has enough information to decide on all gpu::Capabilities. Need to implement the bare minimum client GpuControl for gl_tests and gles2_conform_test. This currently involves some boilerplate and duplication. BUG=362346 Review URL: https://codereview.chromium.org/235563002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267753 0039d316-1c4b-4281-b951-d872f2087c98
* Remove PPB_Ext_Socket_Dev.yzshen@chromium.org2014-04-301-1/+0
| | | | | | | | | BUG=366304,244653,312916,314899 TEST=None Review URL: https://codereview.chromium.org/252923005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267348 0039d316-1c4b-4281-b951-d872f2087c98
* Remove CommandBuffer::GetStatepiman@chromium.org2014-04-305-41/+0
| | | | | | | | | | | | https://codereview.chromium.org/220243003 removed the last client-side caller. Service-side implementation of GetState is identical to GetLastState. So replace all instances of GetState by GetLastState and remove the former. BUG=None Review URL: https://codereview.chromium.org/253943002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267027 0039d316-1c4b-4281-b951-d872f2087c98
* Move IPC::MessageFilter and router to a separate filedmichael@chromium.org2014-04-255-10/+16
| | | | | | | | | | | | | | | There are no changes in implementation in this CL. This is in preparation for making IPC::Channel support filters on the Channel's thread. BUG=364241 TBR=cpu@chromium.org,nduca@chromium.org cpu: OWNERS for win8 nduca: OWNERS for components/tracing Review URL: https://codereview.chromium.org/245443005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266057 0039d316-1c4b-4281-b951-d872f2087c98
* Implement ManifestService::StartupInitializationComplete().hidehiko@chromium.org2014-04-231-0/+3
| | | | | | | | | | | | | | | | | | | | This CL introduces StartupInitializationComplete() message between a plugin and the renderer, focusing on non-SFI mode. Currently PluginReverseInterface::StartupInitializationComplete() is called directly in ServiceRuntime::InitReverseService in non-SFI mode. However, it is too early. Since it blocks the renderer's main thread by sync PPAPI IPC message, when we support the open_resource() for non-SFI mode, it would cause a deadlock issue. This CL delays the invocation of StartupInitializationComplete until when PPAPI IPC channel is ready in plugin side to follow NaCl's manner in SFI-mode. TBR=jln@chromium.org TEST=Ran browser_tests --gtest_filter=*NonSfi* locally, and ran trybots. BUG=358431 Review URL: https://codereview.chromium.org/238353016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265611 0039d316-1c4b-4281-b951-d872f2087c98