summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/ppb_flash_proxy.h
Commit message (Collapse)AuthorAgeFilesLines
* Convert url request info to new proxy API.brettw@chromium.org2012-09-191-2/+6
| | | | | | | | | | | | | | This splits out the helper functions in the in-process version to a new file: url_request_info_util. This will be moved to content/renderer when we move the url_loader. The unit test was moved from webkit/plugins/ppapi to content/renderer/ppapi. I made it a browsertest which allowed the removal of a little boilerplate. I had to add "internal" functions for loading stuff with just the data struct rather than a resource so the proxy doesn't have to create an in-process URLRequestInfo resource (which can't be created now when running out-of-process) just to create a request. This should be a little more efficient now anyway, and these duplicates will go away when such code moves to the new proxy design. BUG= Review URL: https://codereview.chromium.org/10913257 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157588 0039d316-1c4b-4281-b951-d872f2087c98
* Add PP_FlashLSORestrictions to the list of settings supported by the ↵bauerb@chromium.org2012-08-021-0/+3
| | | | | | | | | | Flash_GetSetting Pepper API. BUG=132410 Review URL: https://chromiumcodereview.appspot.com/10831045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149711 0039d316-1c4b-4281-b951-d872f2087c98
* This adds an interface for setting crash data from a plugin. It also ↵raymes@chromium.org2012-06-271-0/+3
| | | | | | | | | | | | provides an implementation for setting crash URLs. BUG=134176 TEST=Added test case to sanity check API call. Also hooked up to flash and produced a crash and checked that the report included the document url (http://crash/reportdetail?reportid=1719cae3a745f633) Review URL: https://chromiumcodereview.appspot.com/10681006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144516 0039d316-1c4b-4281-b951-d872f2087c98
* Add CreateTemporaryFile to PPB_Flash_File_ModuleLocal.yzshen@chromium.org2012-06-151-0/+2
| | | | | | | | | BUG=129807 TEST=None Review URL: https://chromiumcodereview.appspot.com/10534045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142512 0039d316-1c4b-4281-b951-d872f2087c98
* "Replace" PPB_Flash's GetSettingInt with a more general GetSetting.viettrungluu@chromium.org2012-06-081-0/+2
| | | | | | | | | | BUG=none TEST=ui_tests PPAPITest.Flash and OutOfProcessPPAPITest.Flash Review URL: https://chromiumcodereview.appspot.com/10546060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141138 0039d316-1c4b-4281-b951-d872f2087c98
* Open pepper files directly in browser.tsepez@chromium.org2012-06-051-24/+0
| | | | | | | | | | This CL merges in the changes for the per-profile plugin process from the previously retired CL. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=140093 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=140399 Review URL: https://chromiumcodereview.appspot.com/10387195 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140602 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 140399 - Open pepper files directly in browser.tsepez@chromium.org2012-06-041-0/+24
| | | | | | | | | | | | This CL merges in the changes for the per-profile plugin process from the previously retired CL. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=140093 Review URL: https://chromiumcodereview.appspot.com/10387195 TBR=tsepez@chromium.org Review URL: https://chromiumcodereview.appspot.com/10521012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140402 0039d316-1c4b-4281-b951-d872f2087c98
* Open pepper files directly in browser.tsepez@chromium.org2012-06-041-24/+0
| | | | | | | | | This CL merges in the changes for the per-profile plugin process from the previously retired CL. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=140093 Review URL: https://chromiumcodereview.appspot.com/10387195 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140399 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 140093 - Open pepper files directly in browser.tsepez@chromium.org2012-06-011-0/+24
| | | | | | | | | | | This CL merges in the changes for the per-profile plugin process from the previously retired CL. Review URL: https://chromiumcodereview.appspot.com/10387195 TBR=tsepez@chromium.org Review URL: https://chromiumcodereview.appspot.com/10477006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140094 0039d316-1c4b-4281-b951-d872f2087c98
* Open pepper files directly in browser.tsepez@chromium.org2012-06-011-24/+0
| | | | | | | | This CL merges in the changes for the per-profile plugin process from the previously retired CL. Review URL: https://chromiumcodereview.appspot.com/10387195 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140093 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 135727 - Add AllowSuddenTermination to API. This provide means for ↵tsepez@chromium.org2012-05-101-4/+0
| | | | | | | | | | | | | | plugins to let us know those windows where they need a renderer at shutdown to finish saving state. Updated flash api version to 12.4. BUG=https://code.google.com/p/flapper/issues/detail?id=120 Review URL: https://chromiumcodereview.appspot.com/10302021 TBR=tsepez@chromium.org Review URL: https://chromiumcodereview.appspot.com/10387071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136443 0039d316-1c4b-4281-b951-d872f2087c98
* Hook up the PPB_Flash_Print proxy.brettw@chromium.org2012-05-071-1/+8
| | | | | | | | | | | | | This also removes some of the old InvokePrinting plumbing for the PPB_Flash interface. I kept the old version of the function since removing it will make the interface fallback more complicated. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10383013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135738 0039d316-1c4b-4281-b951-d872f2087c98
* Add AllowSuddenTermination to API. This provide means for plugins to let us ↵tsepez@chromium.org2012-05-071-0/+4
| | | | | | | | | | | know those windows where they need a renderer at shutdown to finish saving state. Updated flash api version to 12.4. BUG=https://code.google.com/p/flapper/issues/detail?id=120 Review URL: https://chromiumcodereview.appspot.com/10302021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135727 0039d316-1c4b-4281-b951-d872f2087c98
* Generate and connect a Pepper identifier for Chrome OSdrewry@google.com2012-05-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change wires up GetDeviceID and passes in the BrowserContext into PepperMessageFilter rather than the extracted ResourceContext. The pepper drm identifier is a value provided for use by flash. It may be reset or disabled by the user and cannot function in OffTheRecord embodiments. In Guest mode, the identifier is never generated. When in incognito, the ppapi plugin will be informed of the the profile state and not make the call. Later, this will be enforced in the message filter as well. Note, the preference is currently defaulted to true and does not have a UI connection. The UI is being wired up as part of crbug.com/125899. At which point, we can make the setting syncable and chose the preferred default. This change bounces the GetDeviceID call through the renderer back to the browser so that we have the path context to read the file from. This same approach can be used to allow OTR checking and preference reading if that is preferable to a file. If we need to do anything on the UI thread, we should do everything there (OTR+Pref). Since the ID is regenerated at every pref init/toggle, we can move the value around without impacting users in the future. Please let me know if I've totally botched the wiring for this. I'm not sure the best way to fully test it. TEST=built and tested on x86-alex target: - ID is generated for normal sign-in in /home/chronos/user and is not generated for Guest. - Very lightweight ppapi test was run too. (Still need pointers on better flash api wiring testing to make sure it is seeing right string) - Pepper flash still worked normally Also built full x86-alex system image: - booted it - checked the file existence in both modes - checked pepflash and talk video for normal functionality TRYBOT=http://build.chromium.org/p/tryserver.chromium/builders/cros_x86/builds/353 BUG=chromium-os:30378 Change-Id: Ibfbc484918d94147ad4fdc522a6415c71731068b R=brettw,sky,piman,viettrungluu Review URL: http://codereview.chromium.org/10342013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135255 0039d316-1c4b-4281-b951-d872f2087c98
* Add an API to determine if the system will support accelerationbrettw@chromium.org2012-05-021-0/+2
| | | | | | | | | BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10213005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134959 0039d316-1c4b-4281-b951-d872f2087c98
* Move the rest of the Flash functions to the thunk system.brettw@chromium.org2012-04-301-0/+60
| | | | | | | | | | | | | | This removes the manual Flash interface registration and adds them via the interfaces_ppb_private_flash.h header. I moved File_ModulalLocal and File_FileRef to the Flash API virtual interface which allowed me to delete the separate proxies and stuff associated with those interfaces. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10169040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134540 0039d316-1c4b-4281-b951-d872f2087c98
* Move the FlashClipboard API into the Flash one.brettw@chromium.org2012-04-251-9/+29
| | | | | | | | | | | This allows us to delete the separate proxy files for this. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10163012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133955 0039d316-1c4b-4281-b951-d872f2087c98
* Convert the PPB_Flash interface to use the thunk system.brettw@chromium.org2012-04-241-26/+65
| | | | | | | | | | | | | | This was a bit tricky since some of the functions had no instance context, so I added global functions on the PpapiGlobals interface for them. It would be nice to add a PP_Instance argument and fix this in the future. I did a new style of doing the thunking. The "function APIs" haven't really worked out since it's almost always easier to add the functions directly on the instance one. Since this is a larger and more separable chunk, I just added a getter on the instance API for the flash API and thunk through that. I'd like to convert the remaining ~3 function APIs to either call directly on the instance or use this method, but that's not addressed by this patch. I moved the flash command line switch to plugin_switches so this could be hooked up properly. It allowed me to delete the delegate API for this. I combined the flash fullscreen functions into the new Flash API which removed a bit of code. Review URL: https://chromiumcodereview.appspot.com/10091003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133636 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Flash API to get the device ID.brettw@chromium.org2012-04-131-0/+1
| | | | | | | | | BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9960083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132269 0039d316-1c4b-4281-b951-d872f2087c98
* Pepper: Add a function to PPB_Flash to check if a rect is topmost.viettrungluu@chromium.org2012-02-181-0/+4
| | | | | | | | | | | | | This is needed for "Flash dialogs". This is dependent on https://bugs.webkit.org/show_bug.cgi?id=78166 . TEST=check the example plugin (under flash_topmost) Review URL: http://codereview.chromium.org/9369003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122686 0039d316-1c4b-4281-b951-d872f2087c98
* Update PPAPI IDL generator to define versioned structs, and unversioned typedef.wez@chromium.org2012-01-051-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For interface Foo with versions A and B, structs will be defined for Foo_A and Foo_B, and a typedef generated from Foo_B to Foo. Versioning of IDL structs remains unchanged. (Follow-up to discussion on CL 8931019) *** This change breaks compatibility with C code that makes use of unversioned-named interface structs. :( *** We need to define a versioned-named struct for each interface's current version. We could: 1. Carry on defining the current struct unversioned and typedef a versioned name for it. The versioned type for the interface would be a typedef for the latest version and a struct for later versions, causing calling C code that uses it to break when a new version is added. 2. Define structs for all versions, and a separate unversioned struct. This would lose type equivalence between the versioned and unversioned copies of the latest interface specification, and lead to needless duplication, especially for one-version interfaces. 3. Do this CL. We break some C code once, by change the unversioned type from struct to typedef, but we avoid these headaches in future. C++ code shouldn't be affected. *** Contents of this CL, including notes on to-dos: This change requires updating thunk-getters to be defined using versioned names, so that the interface structs can be forward declared; the thunk-getters now have versioned names and return values. Changing the thunk-getter naming requires updating unit-tests to call the versioned names. It also requires some interface headers not generated from IDL to be manually updated to the new scheme (PPB_CharSet_Dev, PPB_Crypto_Dev, PPB_DirectoryReader_Dev, PPB_LayerCompositor_Dev, PPB_Graphics3D, PPB_Flash_Menu, PPB_Instance_Private, PPP_Pdf, PPB_Flash_NetConnector, PPB_GLESChromiumTextureMapping_Dev and PPB_Graphics3D_Trusted). The proxy GetInfo() calls are updated to use versioned interface macros and thunks. Similarly, most PPBs added in interface_list.cc are now added using versioned interface macros and thunk getters. Ditto PluginModule, and some of PluginInstance. Some implementations (e.g. PPB_CharSet_Dev) needed updating to use versioned thunk getters to fetch interfaces to use. The VideoDecoder interface size checks are for 32-bit are updated not to expect structs. It was necessary to replace forward declarations of interface structs with includes, and remove "struct" prefixes where unversioned names were used. In most cases the affected code should really be updated to cope with versions. PPP_Pdf has become PPP_Pdf_1. Other versionless structs that should be updated for consistenct include PPB_UMA_Private, PPB_GPU_Blacklist_Private, PPB_Proxy_Private, PPP_PDF, PPB_OpenGLES2, PPB_Flash_File_FileRef and PPB_Flash_File_ModuleLocal. Also PPP_Class_Deprecated, PPP_CursorControl_Dev, PPP_Find_Dev, PPP_NetworkState_Dev, PPP_Scrollbar_Dev, PPP_Selection_Dev, PPP_VideoCapture_Dev, PPP_Graphics3D and PPP_Instance_Private. The Graphics2D and GLES2 examples now use unversioned interface type names without "struct" prefix. It's not clear whether examples should use versioned names, to show best practice, or unversioned. The typedef hack in PPP_Instance IDL is gone. Yay. BUG=107398,108379 TEST=All Pepper and NaCl tests should continue to pass on Chromium bots. NaCl SDK examples build correctly. Review URL: http://codereview.chromium.org/8989006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116490 0039d316-1c4b-4281-b951-d872f2087c98
* Rev the Flash interface to add new functionality.brettw@chromium.org2011-12-151-2/+6
| | | | | | | | | | | This adds support for IDL in the private directory. Some of the interfaces there don't actually work, they were a work in progress and this breaks everything, so I moved the broken files to a new subdirectory. Everything left in the api/private directory can be autogenerated now. BUG= TEST= Review URL: http://codereview.chromium.org/8930023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114534 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove unneeded forward declarations in ppapi.thestig@chromium.org2011-11-111-5/+4
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8527020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109595 0039d316-1c4b-4281-b951-d872f2087c98
* Convert the Flash interfaces to no longer use GetInfo.brettw@chromium.org2011-10-221-1/+1
| | | | | | | | | | | | | | | | | | GetInfo is deprecated. I moved all the Flash setup for the proxy into a separate function since I suspect we'll be moving this somewhere else in the future to allow a non-Flash build of the proxy. I didn't change any thunk stuff (it would be nice to convert more of these APIs) since I started and this patch got too complicated. I also changed the way the factory functions worked. I could save a bunch of macros by using a template. Yay! TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/8359010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106856 0039d316-1c4b-4281-b951-d872f2087c98
* s patch tries to remove most of the manual registration for Pepper ↵brettw@chromium.org2011-09-131-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | 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-8/+5
| | | | 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-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | 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-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | 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-5/+8
| | | | | | | | | | | | | | | | | | | | | | 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
* Convert FileRefImpl and URLRequestInfo to shared_impl.brettw@chromium.org2011-08-261-1/+5
| | | | | | | | | | One nice side effect of this change is that there are no longer any IPCs associated with the request info. Instead, we just send the parameters to the host when we open a url loader. Review URL: http://codereview.chromium.org/7706021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98391 0039d316-1c4b-4281-b951-d872f2087c98
* Convert the pp::proxy namespace to the ppapi::proxy namespace.brettw@chromium.org2011-08-181-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Move host resource from the proxy to the shared_impl.brettw@chromium.org2011-08-131-2/+2
| | | | | | | | | | | This is needed by my new unified resoruce tracker, which will use this file from the shared_impl in the new resource base object. I fixed up the namespaces for the callers. Longer term, I want to put the proxy in the ppapi namespace which will eliminate some of this mess. Review URL: http://codereview.chromium.org/7623018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96678 0039d316-1c4b-4281-b951-d872f2087c98
* Migrating PPB_FileIO_Dev, PPB_FileRef_Dev, and PPB_FileSystem_Dev ↵sanga@chromium.org2011-07-071-1/+2
| | | | | | | | | 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
* Proxy time zone requests to the browser. This is because the current codebrettw@chromium.org2011-04-211-0/+3
| | | | | | | | | | can't run in the sandbox on Linux. TEST=manual BUG=80176 Review URL: http://codereview.chromium.org/6891001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82575 0039d316-1c4b-4281-b951-d872f2087c98
* Rename PPB_Flash::NavigateToURL() (to Navigate()) and make it take an ↵viettrungluu@chromium.org2011-03-281-4/+5
| | | | | | | | | | | | | URLRequestInfo. This allows us to navigate using POSTs. BUG=none TEST=works for Trung's Flapper Review URL: http://codereview.chromium.org/6745021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79590 0039d316-1c4b-4281-b951-d872f2087c98
* PPB_Flash cleanup part 2: move all the file stuff to ppb_flash_file.*.viettrungluu@chromium.org2011-02-241-28/+1
| | | | | | | | | | | | 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
* Implement proxy for FlashMenu and Run/QuitMessageLooppiman@google.com2011-02-151-0/+2
| | | | | | | | | BUG=none TEST=Pepper Flash Review URL: http://codereview.chromium.org/6432001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74981 0039d316-1c4b-4281-b951-d872f2087c98
* Rent syncemove all uses of the global Dispatcher Get function.brettw@chromium.org2011-02-081-2/+2
| | | | | | | | | | | | | | | | | | | 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-4/+4
| | | | | | | | | | | | | | | | | | | | 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
* Make PP_Resources associated with the Instance rather than the module. Thisbrettw@chromium.org2011-01-151-7/+7
| | | | | | | | | | | | | | | | | | | | | | adds PP_Instance to the necessary places in the API to make this possible. String and Object vars used to be PP_Resources. But it is not practical to assocaited strings with an instance since then we can't have implicit var constructors and have to litter every string with an instance. So this changes vars to use their own tracking system associated with the module (i.e. keeping the current semantics) and making it no longer a resource. I made the internal Var IDs 32 bits since Neb is about to land his 64->32 change. Now it force-deletes resources associated with an instance when that instance goes away. I added some additional code and tracking in ResourceTracker to do this. I could then remove the Instance::Observer class since the resource can use the (now renamed) StoppedTracking to know that it's being deleted in response to the instance being destroyed. TEST=ppapi ui tests BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71544 0039d316-1c4b-4281-b951-d872f2087c98
* Make IPC::Channel::Listener:OnMessageReceived have a return value indicating ↵jam@chromium.org2010-12-241-1/+1
| | | | | | | | | whether a message was processed or not. TBR=brettw Review URL: http://codereview.chromium.org/5978003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70139 0039d316-1c4b-4281-b951-d872f2087c98
* Move the Pepper implementation from webkit/glue/plugins/pepper_* tobrettw@chromium.org2010-12-161-3/+3
| | | | | | | | | | | webkit/plugins/ppapi/*. This renamed the files and interface implementation classes from foo.cc/Foo to ppb_foo_impl/PPB_Foo_Impl to match the proxy ppb_foo_proxy/PPB_Foo_Proxy. This moves plugin_switches.* from webkit/glue/plugins to webkit/plugins. Review URL: http://codereview.chromium.org/5828003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69424 0039d316-1c4b-4281-b951-d872f2087c98
* Make the DrawGlyphs call have the proper const arguments, and make the proxiedbrettw@chromium.org2010-12-021-1/+2
| | | | | | | | | | | version of this API synchronous. Otherwise, the caller may end up trying to draw over the text that isn't there yet. TEST=none BUG=none Review URL: http://codereview.chromium.org/5555004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68108 0039d316-1c4b-4281-b951-d872f2087c98
* Add proxies for some of the PDF & Flash functionality. There are still a fewbrettw@chromium.org2010-11-121-0/+82
unimplemented parts in the Flash proxy, and I only implemented the necessary part of the PDF one. TEST=none BUG=none Review URL: http://codereview.chromium.org/4752008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65951 0039d316-1c4b-4281-b951-d872f2087c98