summaryrefslogtreecommitdiffstats
path: root/content/browser/plugin_process_host.h
Commit message (Collapse)AuthorAgeFilesLines
* Delete the GTK+ port of Chrome.erg@chromium.org2014-04-101-4/+0
| | | | | | | | | BUG=297026 R=ben@chromium.org Review URL: https://codereview.chromium.org/231733005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263101 0039d316-1c4b-4281-b951-d872f2087c98
* Fix crash in the browser when looking up a ResourceContext for an NPAPI ↵jam@chromium.org2013-10-031-5/+9
| | | | | | | | | | | | | | | initiated request. This bug occurred because in certain conditions a renderer could have multiple channels open to the same plugin process. Every time a renderer creates an instance of a plugin, we reach NPChannelBase::GetChannel in the plugin process which consults a singleton to see if there's a channel to that renderer, and if not it creates it. When a plugin instance is removed, it ends up calling into NPChannelBase::RemoveRoute which, if it's the last instance to that renderer, will remove the PluginChannel from the map. The key thing is that the PluginChannel is still alive as long as there are live NPObjects using it. So if the renderer creates another plugin instance, then a new PluginChannel will be created. When the old PluginChannel is destroyed though, the entry in the browser process' map would be incorrectly deleted even though there's another PluginChannel to that renderer. The fix is to make the map in PluginProcessHost ref counted. BUG=302530 R=ananta@chromium.org Review URL: https://codereview.chromium.org/25700008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226894 0039d316-1c4b-4281-b951-d872f2087c98
* Collect more data to send in crash reports for a crasher that's stumping me.jam@chromium.org2013-10-021-0/+3
| | | | | | | | | BUG=302530 R=brettw@chromium.org Review URL: https://codereview.chromium.org/25555006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226398 0039d316-1c4b-4281-b951-d872f2087c98
* Make BrowserMessageFilter not derive from IPC::ChannelProxy::MessageFilter. ↵jam@chromium.org2013-10-011-3/+0
| | | | | | | | | | This allows us to hide the OnMessageReceived which shouldn't be overridden from child classes, and also avoid the pattern of requiring an overridden method to have to call to the base class. R=scherkus@chromium.org, scherkus Review URL: https://codereview.chromium.org/24514003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226251 0039d316-1c4b-4281-b951-d872f2087c98
* Load NPAPI plugin resources through the browser process directly instead of ↵jam@chromium.org2013-09-111-3/+18
| | | | | | | | | | | | | | | going through the renderer. This is needed because when we have site isolation enabled we won't trust the renderer to fetch urls from arbitrary origins, which is something that NPAPI plugins can do. In a followup I'll implement range requests. For now this is behind the --direct-npapi-requests flag. BUG=286074 R=ananta@chromium.org, jschuh@chromium.org Review URL: https://codereview.chromium.org/23503043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222602 0039d316-1c4b-4281-b951-d872f2087c98
* Move webplugininfo.h to content/public.jam@chromium.org2013-07-211-5/+5
| | | | | | | | | BUG=237249 TBR=scottmg Review URL: https://codereview.chromium.org/19894003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212812 0039d316-1c4b-4281-b951-d872f2087c98
* Split the ProcessType enum into process types that content knows about ↵jam@chromium.org2013-03-221-0/+1
| | | | | | | | | | | (which will remain in src\content) and those that are for chrome (which moved to src\chrome). This way we won't get any more layering violations where nacl code is in content. Also move the NaCl command line switches to chrome. BUG=191682 Review URL: https://codereview.chromium.org/12662019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189763 0039d316-1c4b-4281-b951-d872f2087c98
* Move the remaning files in content\common to the content namespace.jam@chromium.org2012-10-241-15/+13
| | | | | | Review URL: https://codereview.chromium.org/11235068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163732 0039d316-1c4b-4281-b951-d872f2087c98
* Remove Legacy NPAPI Flash Sandbox supportjschuh@chromium.org2012-10-051-2/+0
| | | | | | | | BUG=153599 Review URL: https://chromiumcodereview.appspot.com/11049004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160310 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 155122 - Code to collect issue 97285 debugging info for crash reports.shess@chromium.org2012-09-061-5/+0
| | | | | | | | | | | | | | | | | | | | | | [TPM is suspicious of Windows renderer crash rate. Seems impossible, but who knows?] It is useful to record breakpad keys for debugging, which is not applicable to multi-process bugs. This adds infrastructure to allow collection of information across processes. Also, fix so that GetPluginChannelHost() can successfully fail without crashing. BUG=97285,141055 Review URL: https://chromiumcodereview.appspot.com/10908078 TBR=shess@chromium.org Review URL: https://chromiumcodereview.appspot.com/10908130 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155240 0039d316-1c4b-4281-b951-d872f2087c98
* Code to collect issue 97285 debugging info for crash reports.shess@chromium.org2012-09-061-0/+5
| | | | | | | | | | | | | | | | It is useful to record breakpad keys for debugging, which is not applicable to multi-process bugs. This adds infrastructure to allow collection of information across processes. Also, fix so that GetPluginChannelHost() can successfully fail without crashing. BUG=97285,141055 Review URL: https://chromiumcodereview.appspot.com/10908078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155122 0039d316-1c4b-4281-b951-d872f2087c98
* Remove #pragma once from contentajwong@chromium.org2012-07-111-1/+0
| | | | | | Review URL: https://chromiumcodereview.appspot.com/10696166 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146071 0039d316-1c4b-4281-b951-d872f2087c98
* Use IPC::Sender and IPC::Listener in content.brettw@chromium.org2012-06-251-2/+2
| | | | | | | | | | | | | This replaces uses of IPC::Message::Sender with IPC::Sender and IPC::Channel::Listener with IPC::Listener. I also fixed up header files where it was obvious. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10662005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143920 0039d316-1c4b-4281-b951-d872f2087c98
* Apply a rate limit on a per-plug-in basis to plug-in crashes.cevans@chromium.org2012-02-291-0/+1
| | | | | | | BUG=115758 Review URL: https://chromiumcodereview.appspot.com/9460038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124139 0039d316-1c4b-4281-b951-d872f2087c98
* Track (and eventually cap) Flash JIT sizejschuh@chromium.org2012-02-151-1/+2
| | | | | | | | 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
* Make content::ResourceContext be a real interface like the rest of the ↵jam@chromium.org2012-02-091-2/+2
| | | | | | | | | Content API (i.e. don't have setters/getters on it, and make all the functions pure virtual). BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9369009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121287 0039d316-1c4b-4281-b951-d872f2087c98
* Rename BrowserChildProcessHost implementation class to ↵jam@chromium.org2012-01-231-2/+2
| | | | | | | | | BrowserChildProcessHostImpl. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9117006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118758 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Content API around BrowserChildProcessHost, similar to what was done ↵jam@chromium.org2012-01-201-2/+21
| | | | | | | | | | | | with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=118415 Review URL: https://chromiumcodereview.appspot.com/9150017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118516 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 118415 - Add a Content API around BrowserChildProcessHost, similar to ↵jam@chromium.org2012-01-201-21/+2
| | | | | | | | | | | | | what was done with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9150017 TBR=jam@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118420 0039d316-1c4b-4281-b951-d872f2087c98
* Try to fix Linux components build.jam@chromium.org2012-01-201-1/+1
| | | | | | TBR=erg git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118417 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Content API around BrowserChildProcessHost, similar to what was done ↵jam@chromium.org2012-01-201-2/+21
| | | | | | | | | | | with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9150017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118415 0039d316-1c4b-4281-b951-d872f2087c98
* Move creation and ownership of ResourceDispatcherHost and PluginService to ↵jam@chromium.org2012-01-111-1/+1
| | | | | | | | | | | | | | | | content. This gives a few benefits: -avoid having each embedder know when to create/destruct these objects, as well as contained objects (i.e. those related to downloads) -avoid having to tell embedders about specifics of BrowserThread startup/shutdown -move ResourceDispatcherHost's getter to content where it belongs I've taken out the DnsParallelism field trial (not used anymore, confirmed with jar) as it was the only thing that caused MetricsService to depend on IOThread initialization, which also depended on MetricsService (through FieldTrials). This two-sided dependency always annoyed me and made the code hard to restructure. BUG=98716 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=117078 Review URL: http://codereview.chromium.org/9150016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117171 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 117078 - Move creation and ownership of ResourceDispatcherHost and ↵jam@chromium.org2012-01-101-1/+1
| | | | | | | | | | | | | | | | | | | PluginService to content. This gives a few benefits: -avoid having each embedder know when to create/destruct these objects, as well as contained objects (i.e. those related to downloads) -avoid having to tell embedders about specifics of BrowserThread startup/shutdown -move ResourceDispatcherHost's getter to content where it belongs Some code (extensions+promos) used the fact that RDH is NULL in unittests as a signal to not use the utility process. I've switches those unittests to set a flag on the objects instead. I've taken out the DnsParallelism field trial (not used anymore, confirmed with jar) as it was the only thing that caused MetricsService to depend on IOThread initialization, which also depended on MetricsService (through FieldTrials). This two-sided dependency always annoyed me and made the code hard to restructure. BUG=98716 Review URL: http://codereview.chromium.org/9150016 TBR=jam@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117096 0039d316-1c4b-4281-b951-d872f2087c98
* Move creation and ownership of ResourceDispatcherHost and PluginService to ↵jam@chromium.org2012-01-101-1/+1
| | | | | | | | | | | | | | | | | content. This gives a few benefits: -avoid having each embedder know when to create/destruct these objects, as well as contained objects (i.e. those related to downloads) -avoid having to tell embedders about specifics of BrowserThread startup/shutdown -move ResourceDispatcherHost's getter to content where it belongs Some code (extensions+promos) used the fact that RDH is NULL in unittests as a signal to not use the utility process. I've switches those unittests to set a flag on the objects instead. I've taken out the DnsParallelism field trial (not used anymore, confirmed with jar) as it was the only thing that caused MetricsService to depend on IOThread initialization, which also depended on MetricsService (through FieldTrials). This two-sided dependency always annoyed me and made the code hard to restructure. BUG=98716 Review URL: http://codereview.chromium.org/9150016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117078 0039d316-1c4b-4281-b951-d872f2087c98
* Don't make classes derive from ChildProcessHost, and instead have them use ↵jam@chromium.org2011-12-021-1/+5
| | | | | | | | | it through composition. This cleans up the code and makes it easier to understand (as well as more closely conform to the Google C++ style guide). It also makes it possible to add an interface around ChildProcessHost in a future change. BUG=98716 Review URL: http://codereview.chromium.org/8774040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112769 0039d316-1c4b-4281-b951-d872f2087c98
* Add OVERRIDE to content/.avi@chromium.org2011-11-171-2/+2
| | | | | | | | | BUG=104314 TEST=no change Review URL: http://codereview.chromium.org/8587009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110544 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove unneeded forward declarations in content/browser.thestig@chromium.org2011-11-101-2/+0
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8499042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109363 0039d316-1c4b-4281-b951-d872f2087c98
* more content exports needed for unit_tests and browser_tests.dpranke@chromium.org2011-09-301-1/+2
| | | | | | | | | | R=jam@chromium.org BUG=90442 TEST= Review URL: http://codereview.chromium.org/8082019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103584 0039d316-1c4b-4281-b951-d872f2087c98
* Reland r100733 - Cancel plugin channel requests when the renderer goes away.willchan@chromium.org2011-09-141-2/+10
| | | | | | | | | | | | | | | | | | | | | Logic: - Profile shutdown kills all renderer processes - When the RMF detects the channel closing, it kills off any plugin channel requests from: * PluginService (which needs to check the PluginServiceFilter on the FILE thread) * PluginProcessHost (which may need to wait for the channel to get established) - RMF uses the new OnPluginProcessHostFound() to cancel at the PluginService or PluginProcessHost Modified in Reland: * PluginProcessHost may be blocked on the browser<=>plugin channel to be established, OR on the plugin<=>renderer channel to be established. * Already covered the former case in the previous changelist (pending_requests_) but not the latter case (sent_requests_). * Cover both cases and add tests. BUG=94704 TEST=New PluginService tests Review URL: http://codereview.chromium.org/7887027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101181 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 100733 (caused more crashes) - Cancel plugin channel requests when ↵willchan@chromium.org2011-09-131-4/+0
| | | | | | | | | | | | | | | | | | | | | | the renderer goes away. Logic: - Profile shutdown kills all renderer processes - When the RMF detects the channel closing, it kills off any plugin channel requests from: * PluginService (which needs to check the PluginServiceFilter on the FILE thread) * PluginProcessHost (which may need to wait for the channel to get established) - RMF uses the new OnPluginProcessHostFound() to cancel at the PluginService or PluginProcessHost BUG=94704 TEST=New PluginService test, no known manual test Review URL: http://codereview.chromium.org/7867031 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/7889023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100989 0039d316-1c4b-4281-b951-d872f2087c98
* Cancel plugin channel requests when the renderer goes away.willchan@chromium.org2011-09-121-0/+4
| | | | | | | | | | | | | | | | | Logic: - Profile shutdown kills all renderer processes - When the RMF detects the channel closing, it kills off any plugin channel requests from: * PluginService (which needs to check the PluginServiceFilter on the FILE thread) * PluginProcessHost (which may need to wait for the channel to get established) - RMF uses the new OnPluginProcessHostFound() to cancel at the PluginService or PluginProcessHost BUG=94704 TEST=New PluginService test, no known manual test Review URL: http://codereview.chromium.org/7867031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100733 0039d316-1c4b-4281-b951-d872f2087c98
* Cancel pending plugin channel requests before destroying the ResourceContext.bauerb@chromium.org2011-09-121-0/+4
| | | | | | | | | | BUG=94704 TEST=none Review URL: http://codereview.chromium.org/7810021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100671 0039d316-1c4b-4281-b951-d872f2087c98
* Add PluginServiceFilter interface and ChromePluginServiceFilter.bauerb@chromium.org2011-09-021-1/+7
| | | | | | | | | | | This should get rid of all references to webkit::npapi::IsPluginEnabled in content/. BUG=80794 TEST=none Review URL: http://codereview.chromium.org/7387010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99355 0039d316-1c4b-4281-b951-d872f2087c98
* Tag IPC::Channel::Listener implementations with OVERRIDEevan@chromium.org2011-08-161-3/+3
| | | | | | Review URL: http://codereview.chromium.org/7661031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97021 0039d316-1c4b-4281-b951-d872f2087c98
* Make WebPluginInfo more genericcpu@chromium.org2011-08-141-5/+5
| | | | | | | | | | | | | - To account for pepper plugins, it grows a type field - move WebPluginInfo from webkit::npapi to webkit:: and move the files as well. This will allow us to remove hacks to get pepper plugins to load soon BUG=89248 TEST=none Review URL: http://codereview.chromium.org/7648017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96718 0039d316-1c4b-4281-b951-d872f2087c98
* Make Flash work properly when started in low-integrity mode so that UIPI ↵jschuh@chromium.org2011-06-071-0/+1
| | | | | | | | | | | 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
* Get rid of chrome dependencies from PluginProcessHost by moving dispatching ↵jam@chromium.org2011-05-181-4/+1
| | | | | | | | of chrome specific messages to a chrome IPC filter. Review URL: http://codereview.chromium.org/7036025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85767 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw_scoped_refptr_mismatch_checker.h ref_counted.cc ref_counted.h ref_counted_memory.cc ref_counted_memory.h ref_counted_unittest.cc scoped_callback_factory.h scoped_comptr_win.h scoped_handle.h scoped_native_library.cc scoped_native_library.h scoped_native_library_unittest.cc scoped_nsobject.h scoped_open_process.h scoped_ptr.h scoped_ptr_unittest.cc scoped_temp_dir.cc scoped_temp_dir.h scoped_temp_dir_unittest.cc scoped_vector.h singleton.h singleton_objc.h singleton_unittest.cc linked_ptr.h linked_ptr_unittest.cc weak_ptr.cc weak_ptr.h weak_ptr_unittest.cc BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6714032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
* Simplify ResolveProxyMsgHelper. Make it not special case renderer/plugin, ↵jam@chromium.org2011-03-151-15/+1
| | | | | | | | and derive from BrowserMessageFilter for easier filtering and replying. Review URL: http://codereview.chromium.org/6695009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78225 0039d316-1c4b-4281-b951-d872f2087c98
* Remove Gears from Chrome.aa@chromium.org2011-03-111-7/+0
| | | | | | | | | | There are probably a few more bits and pieces that can be removed, but I think this is the majority of it. BUG=51934 Review URL: http://codereview.chromium.org/6576020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77888 0039d316-1c4b-4281-b951-d872f2087c98
* Move the rest of the core files in chrome\browser to content\browser.jam@chromium.org2011-02-231-0/+177
TBR=avi Review URL: http://codereview.chromium.org/6538111 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75711 0039d316-1c4b-4281-b951-d872f2087c98