summaryrefslogtreecommitdiffstats
path: root/content/plugin/webplugin_proxy.cc
Commit message (Collapse)AuthorAgeFilesLines
* Android content shell bringup.jrg@chromium.org2012-05-101-0/+10
| | | | | | | | | | | | | | | | | | Build media java files (we weren't). Fix adb_install_content_shell for cases where the app was stuck. Add upstream staging gyp var / #define. Be more consistent about jar output files (all in lib.java). Upstream a bunch of random files (e.g. ppapi). Upstream a bunch of java and native code hit as part of shlib init. Properly package jar files in content shell. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10377059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136219 0039d316-1c4b-4281-b951-d872f2087c98
* Move BrokerDuplicateHandle() to be declared in content/publicmseaborn@chromium.org2012-04-161-2/+2
| | | | | | | | | | | | This is necessary so that BrokerDuplicateHandle() can be used from chrome/browser while passing the check_deps rules. BUG=http://code.google.com/p/nativeclient/issues/detail?id=2719 TEST=build Review URL: https://chromiumcodereview.appspot.com/10082018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132405 0039d316-1c4b-4281-b951-d872f2087c98
* Convert plugin and GPU process to brokered handle duplication.jschuh@chromium.org2012-04-141-14/+9
| | | | | | | BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9958034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132303 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 132218 - Convert plugin and GPU process to brokered handle duplication.eroman@chromium.org2012-04-131-9/+14
| | | | | | | | | | | | (Seems to be responsible for VMTest failure on ChromiumOS). BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9958034 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/10081018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132254 0039d316-1c4b-4281-b951-d872f2087c98
* Convert plugin and GPU process to brokered handle duplication.jschuh@chromium.org2012-04-131-14/+9
| | | | | | | BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9958034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132218 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 129627 - Add a sandbox API for broker handle duplicationjschuh@chromium.org2012-03-291-9/+14
| | | | | | | | | | BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9838083 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/9924010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129629 0039d316-1c4b-4281-b951-d872f2087c98
* Add a sandbox API for broker handle duplicationjschuh@chromium.org2012-03-291-14/+9
| | | | | | | BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9838083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129627 0039d316-1c4b-4281-b951-d872f2087c98
* mac: fix flash videos with --disable-composited-core-animation-pluginspiman@chromium.org2012-03-141-2/+2
| | | | | | | | | | | | | http://codereview.chromium.org/9194005 Missed one renaming. This fixes it. BUG=117916 TEST=chrome --disable-composited-core-animation-plugins, load youtube videos Review URL: http://codereview.chromium.org/9693031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126560 0039d316-1c4b-4281-b951-d872f2087c98
* check for null-device before using the windowless canvasreed@google.com2012-02-241-2/+2
| | | | | | | | | | Not sure why the device is null sometimes, but it correlates to playing catchup (it seems) when resizing a window quickly. see crbug.com/104850 Review URL: https://chromiumcodereview.appspot.com/9460006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123501 0039d316-1c4b-4281-b951-d872f2087c98
* Track (and eventually cap) Flash JIT sizejschuh@chromium.org2012-02-151-1/+6
| | | | | | | | BUG=113891 Review URL: http://codereview.chromium.org/9386003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122109 0039d316-1c4b-4281-b951-d872f2087c98
* Render Core Animation plugins through WebKit's compositor rather thankbr@chromium.org2011-11-301-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directly to the screen in the browser process. The new composited code path is now the default, though the old code path has been left in place under a command line flag while we gain confidence. Issue 105344 has been filed about removing the old code path. The new code path does not currently support 10.5. The consequence is that plugins using the InvalidatingCoreAnimation rendering model will not work on this version of Mac OS. Pepper 3D is not affected; it now uses a different rendering path. Changed the type of IOSurfaces' IDs from uint64 to uint32 in a few places throughout the code to match the IOSurfaceID typedef in the system header. This was necessary in order to simplify integration with Chrome's OpenGL code. There is a known problem in the new code path with garbage occasionally being drawn to the plugin's area during live resizing of Core Animation plugins. Issue 105346 has been filed to track this. It is unclear whether the additional complexity of the fix that is likely needed is worth it. Tested manually with the following content, with and without the --disable-composited-core-animation-plugins flag: - YouTube (does not trigger this code path) - Google+ Hangouts - http://unity3d.com/gallery/demos/live-demos (Unity 3D) - http://www.erain.com/labs/molehill/ (Stage 3D in Flash 11) - http://www.nissan-stagejuk3d.com/ (Stage 3D in Flash 11, live resizing; web site is flaky, sometimes fails to start) BUG=38967 TEST=manual testing with above test cases Review URL: http://codereview.chromium.org/8678037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112126 0039d316-1c4b-4281-b951-d872f2087c98
* Remove section_util_win since it had two functions that were used in three ↵jam@chromium.org2011-11-281-8/+5
| | | | | | | | | places. Also, all the other places in the code that use DuplicateHandle call it directly. If we want to have a wrapper around it, it should probably go into base and we should convert all users at the same time. BUG=98716 Review URL: http://codereview.chromium.org/8729002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111813 0039d316-1c4b-4281-b951-d872f2087c98
* base::Bind fixesgroby@chromium.org2011-11-191-3/+4
| | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8601002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110818 0039d316-1c4b-4281-b951-d872f2087c98
* Move content_client.h into content/public.joi@chromium.org2011-10-181-1/+1
| | | | | | | | | | TBR=jam@chromium.org BUG=98716 TEST=it builds Review URL: http://codereview.chromium.org/8336007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106167 0039d316-1c4b-4281-b951-d872f2087c98
* Move url_constansts.h to content/public/common.jam@chromium.org2011-10-141-1/+1
| | | | | | | BUG=98716 Review URL: http://codereview.chromium.org/8276022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105508 0039d316-1c4b-4281-b951-d872f2087c98
* Support dynamic switching between integrated and discrete GPUs on Mac OS X.kbr@chromium.org2011-10-131-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change Chrome to allocate most OpenGL contexts with the kCGLPFAAllowOfflineRenderers flag, and specify NSSupportsAutomaticGraphicsSwitching in the Info.plist for the main executable and helper apps. This keeps Chrome on the integrated GPU except when using WebGL, accelerated 2D Canvas, Pepper 3D, and Core Animation-based plugins (except Flash). Chrome shares resources between OpenGL contexts in order to display WebGL and other content in the compositor, and resource sharing doesn't work between contexts allocated on different GPUs. Therefore, when the first context for a given renderer requests the discrete GPU, the channel is dropped and all contexts are reallocated on the discrete GPU. Similarly, when the last context requesting the discrete GPU for a given renderer is shut down, all contexts are dropped and reallocated on the integrated GPU. Currently dynamic GPU switching is only supported on the latest Mac OS X 10.7 update and MacBook Pros with dual AMD / Intel GPUs, though this will improve in future OS updates. Tested with WebGL, CSS 3D, Flash and Unity3D content and observed desired GPU switching behavior. Also added a layout test to WebKit under https://bugs.webkit.org/show_bug.cgi?id=69776 which when run in Chrome catches an assertion failure related to the destruction of contexts. The intent is to add it as a UI layout test on the GPU bots. BUG=88788 TEST=none Review URL: http://codereview.chromium.org/8233027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105399 0039d316-1c4b-4281-b951-d872f2087c98
* Don't hard-code an X11 screen number in DefaultVisual, etc.davidben@chromium.org2011-10-131-3/+4
| | | | | | | | | | | | | Otherwise, we end up picking the wrong visual and confusing things like plugins. BUG=21253 TEST=run Xephyr :1 -screen 800x600 -screen 800x600, run chrome on DISPLAY=:1.1; nspluginwrapper should work, flash shouldn't complain in gdk_x11_colormap_foreign_new Review URL: http://codereview.chromium.org/8221031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105236 0039d316-1c4b-4281-b951-d872f2087c98
* Get Chrome to build & link with USE_AURA on Windows again.BUG=noneTEST=noneben@chromium.org2011-10-061-1/+1
| | | | | | Review URL: http://codereview.chromium.org/8174005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104382 0039d316-1c4b-4281-b951-d872f2087c98
* Send IME events to windowless plug-ins (Chromium side)hbono@chromium.org2011-10-041-0/+13
| | | | | | | | | | This change adds a new class WebPluginIMEWin that converts the platform-independent IME data sent from a renderer process (or WebKit) to the Win32 IME messages and send them to a plug-in. To allow the plug-in to retrieve the IME data with IMM32 function calls, this change also adds a patch to GetProcessAddress(). (Flash seems to retrieve the pointers to IMM32 function with this function.) This change also sends IME status retrieved from the plug-in to a browser process (via a renderer process). BUG=82507 TEST=manual Review URL: http://codereview.chromium.org/7082034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103869 0039d316-1c4b-4281-b951-d872f2087c98
* Move npobject_proxy, npobject_stub and npobject_util from content/plugin to ↵steveblock@chromium.org2011-09-201-2/+2
| | | | | | | | | | | | | content/common Note that these classes still depend on PluginChannel and PluginThread, which live in content/plugin. This will be fixed in a later change. BUG=96703 Review URL: http://codereview.chromium.org/7979002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101976 0039d316-1c4b-4281-b951-d872f2087c98
* Moved the following IPC messages used by the chrome NPAPI plugin installer ↵ananta@chromium.org2011-08-311-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | out of content into Chrome. 1. PluginProcessHostMsg_GetPluginFinderUrl 2. PluginProcessHostMsg_MissingPluginStatus 3. PluginProcessHostMsg_DownloadUrl These messages are prefixed with Chrome. Removed the InstallMissingPlugin and OnInstallMissingPlugin handlers from the NPAPI plugin sources and from our webkit plugin implementation. The plugin infobar no longer sends over an IPC message to initiate installation of the third party plugin. It sends over a windows message which is handled in the plugin installer for Windows. This functionality is not implemented for the mac and linux as before. To display the plugin installation infobar the PluginProcessHostMsg_MissingPluginStatus message sent by the plugin needs the routing id and the renderer process id. This information is now passed along with the plugin instantiation parameters in NPP_New. These parameters are only read by the default plugin. This is a continuation of the fixes to ensure that IPC's don't span across content and chrome. BUG=87335 Review URL: http://codereview.chromium.org/7812020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99062 0039d316-1c4b-4281-b951-d872f2087c98
* Stop using the default profile's proxy service for plugin proxy requests, ↵jam@chromium.org2011-08-291-0/+6
| | | | | | | | | and instead use the associated profile's proxy service. I proxy the IPC through the renderer first, as that makes it easy to get to the associated profile. BUG=92361,64339 Review URL: http://codereview.chromium.org/7791005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98728 0039d316-1c4b-4281-b951-d872f2087c98
* First pass at removal of unneeded dependencies on skia\ext\platform_canvas.htwiz@google.com2011-08-021-0/+1
| | | | | | | | | | All 'low-hanging' platform_canvas.h dependencies have been removed, and replaced with skia-specific includes. BUG=None TEST=None Review URL: http://codereview.chromium.org/7517020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95083 0039d316-1c4b-4281-b951-d872f2087c98
* Fix bad section object leak when painting pluginscpu@chromium.org2011-07-291-3/+7
| | | | | | | | | | | | | | | The skia canvas does not own the section handle in: PlatformCanvas::initialize(x, y, true, section) so you have close it at some point. Since skia calls CreateDibSection in this fuction, which maps the memory, it is safe to close the handle after initialize. A test is being added to ui_tests to make sure we know if this works. BUG=31173 TEST= see http://codereview.chromium.org/7492074/ Review URL: http://codereview.chromium.org/7482047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94604 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid double-buffering windowless plugins and instead use buffer flipping ↵tschmelcher@chromium.org2011-07-251-134/+206
| | | | | | | | | | | | when feasible. This can significantly reduce the CPU usage of pages that host windowless plugins (down by ~15% absolute CPU usage on my old MacBookPro, or about a 40% relative decrease). Also simplify the OS X code for managing TransportDIBs by creating them in uncached mode and transfering the FileDescriptors using dup+auto-close. TEST=(OS X 10.5) Google voice and video chat (O3D), YouTube, www.dkmsoftware.com/Yubotu.htm, and trailers.apple.com, incl. with violent resizing, and analyzed perf with Shark; (OS X 10.5, OS X 10.6, Linux, Windows) http://www.communitymx.com/content/source/E5141/wmodeopaque.htm, http://www.communitymx.com/content/source/E5141/wmodetrans.htm, http://www.communitymx.com/content/source/E5141/wmodenone.htm, hand-crafted perf test using Flash with wmode=opaque, analyzed perf with Activity Monitor / top / Process Explorer, verified in the debugger that buffer flips do not cause NPP_SetWindow calls BUG=none Review URL: http://codereview.chromium.org/7171024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93970 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 89221 - Reverting this to see if the Flash crashes on Mac canary are ↵ananta@chromium.org2011-06-231-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | due to this CL. Revert 88773 - Don't retain NPNVWindowNPObject and NPNVPluginElementNPObject twice Both NPN_GetValue and WebPluginProxy take a reference on access, with the latter conflating the caller's reference and its internal reference. To be consistent with WebPluginImpl, let WebPluginProxy only manage its internal reference and leave the plugin's reference to NPN_GetValue. Document this in the WebPlugin interface. Also release plugin-side proxies when WebPluginProxy is destroyed. R=ananta BUG=86124 TEST=none Review URL: http://codereview.chromium.org/6693052 TBR=davidben@chromium.org Review URL: http://codereview.chromium.org/7171021 TBR=ananta@chromium.org Review URL: http://codereview.chromium.org/7239010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90170 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting this to see if the Flash crashes on Mac canary are due to this CL.ananta@chromium.org2011-06-151-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | Revert 88773 - Don't retain NPNVWindowNPObject and NPNVPluginElementNPObject twice Both NPN_GetValue and WebPluginProxy take a reference on access, with the latter conflating the caller's reference and its internal reference. To be consistent with WebPluginImpl, let WebPluginProxy only manage its internal reference and leave the plugin's reference to NPN_GetValue. Document this in the WebPlugin interface. Also release plugin-side proxies when WebPluginProxy is destroyed. R=ananta BUG=86124 TEST=none Review URL: http://codereview.chromium.org/6693052 TBR=davidben@chromium.org Review URL: http://codereview.chromium.org/7171021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89221 0039d316-1c4b-4281-b951-d872f2087c98
* Don't retain NPNVWindowNPObject and NPNVPluginElementNPObject twicedavidben@chromium.org2011-06-121-2/+7
| | | | | | | | | | | | | | | | | | | Both NPN_GetValue and WebPluginProxy take a reference on access, with the latter conflating the caller's reference and its internal reference. To be consistent with WebPluginImpl, let WebPluginProxy only manage its internal reference and leave the plugin's reference to NPN_GetValue. Document this in the WebPlugin interface. Also release plugin-side proxies when WebPluginProxy is destroyed. R=ananta BUG=none TEST=none Review URL: http://codereview.chromium.org/6693052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88773 0039d316-1c4b-4281-b951-d872f2087c98
* Make Flash work properly when started in low-integrity mode so that UIPI ↵jschuh@chromium.org2011-06-071-0/+5
| | | | | | | | | | | restrictions take effect. The change works by adding a new IPC from from plugin to browser, which tells the browser to reparent plugin windows when needed (since UIPI blacks parenting from the low-integrity plugin process). See UIPI for reference: http://en.wikipedia.org/wiki/User_Interface_Privilege_Isolation BUG=82870 Review URL: http://codereview.chromium.org/7054068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88081 0039d316-1c4b-4281-b951-d872f2087c98
* This change implements a first pass in the effort to remove the dependency ↵twiz@chromium.org2011-05-261-1/+1
| | | | | | | | | | | | | | of PlatformDevice within Chrome. The Skia library now provides multiple back-ends for the SkDevice class, so PlatformDevice's inheritance of SkDevice, and the assumption of instances of PlatformDevice limits the use of these new back-ends. A new set of helper functions is provided for the PlatformDevice entry points. Upon construction of a PlatformDevice, a pointer to the interface is cached in the parent SkDevice's SkMetaData. The new helper functions forward calls to the interface cached in the metadata. BUG=NONE TEST=NONE Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=86625 Reverted: http://src.chromium.org/viewvc/chrome?view=rev&revision=86625 Review URL: http://codereview.chromium.org/7019013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86823 0039d316-1c4b-4281-b951-d872f2087c98
* Add Skia to CG adapter for plugins.caryclark@chromium.org2011-05-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Skia on Mac uses Skia to render WebKit, and CG to render UI elements. The CG elements need a transcribed graphics context that preserves the canvas matrix, and the canvas clip. The SkiaBitLocker utility class sets up a CGContext from the SkCanvas, locks the bitmap's bits, and releases the lock when the class goes out of scope. The SkiaBitLocker implementation is described by this patch: http://codereview.chromium.org/7031006/ For ppapi, use the CG bitmap copy only if Skia is not used. Otherwise, adjust the Mac-specific code to convert the canvas to a CGContext as needed. Also, add a CG-specific entry point for painting so that the delegate can paint using a WebCanvas, while the proxy paints with a CGContext. This change adds a code path that will be enabled in the future, but does not modify any existing code, so there is no functional change. BUG=79463 TEST=none Review URL: http://codereview.chromium.org/6823081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86662 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 86625 - This change implements a first pass in the effort to remove ↵vandebo@chromium.org2011-05-251-1/+1
| | | | | | | | | | | | | | | the dependency of PlatformDevice within Chrome. The Skia library now provides multiple back-ends for the SkDevice class, so PlatformDevice's inheritance of SkDevice, and the assumption of instances of PlatformDevice limits the use of these new back-ends. A new set of helper functions is provided for the PlatformDevice entry points. Upon construction of a PlatformDevice, a pointer to the interface is cached in the parent SkDevice's SkMetaData. The new helper functions forward calls to the interface cached in the metadata. BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/7019013 TBR=twiz@chromium.org Review URL: http://codereview.chromium.org/6987019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86629 0039d316-1c4b-4281-b951-d872f2087c98
* This change implements a first pass in the effort to remove the dependency ↵twiz@chromium.org2011-05-251-1/+1
| | | | | | | | | | | | of PlatformDevice within Chrome. The Skia library now provides multiple back-ends for the SkDevice class, so PlatformDevice's inheritance of SkDevice, and the assumption of instances of PlatformDevice limits the use of these new back-ends. A new set of helper functions is provided for the PlatformDevice entry points. Upon construction of a PlatformDevice, a pointer to the interface is cached in the parent SkDevice's SkMetaData. The new helper functions forward calls to the interface cached in the metadata. BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/7019013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86625 0039d316-1c4b-4281-b951-d872f2087c98
* Replace "http" etc with the url_constants version. This was a previous TODO ↵jam@chromium.org2011-05-231-3/+4
| | | | | | | | for webplugin_proxy.cc, and I fixed the other places as well. Review URL: http://codereview.chromium.org/6990043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86368 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Adds a TransportDIB::Id value that is explicitly invalid and use it when ↵jamesr@chromium.org2011-03-251-1/+1
| | | | | | | | | | | compositing BUG=76001 TEST= Review URL: http://codereview.chromium.org/6665029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79349 0039d316-1c4b-4281-b951-d872f2087c98
* Move plugin code to content.jam@chromium.org2011-03-161-0/+656
TBR=avi Review URL: http://codereview.chromium.org/6672048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78386 0039d316-1c4b-4281-b951-d872f2087c98