Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(315)

Side by Side Diff: content/ppapi_plugin/ppapi_thread.h

Issue 10378057: Broker out PPAPI handle duplication (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_PPAPI_PLUGIN_PPAPI_THREAD_H_ 5 #ifndef CONTENT_PPAPI_PLUGIN_PPAPI_THREAD_H_
6 #define CONTENT_PPAPI_PLUGIN_PPAPI_THREAD_H_ 6 #define CONTENT_PPAPI_PLUGIN_PPAPI_THREAD_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
11 11
(...skipping 21 matching lines...) Expand all
33 class PpapiThread : public ChildThread, 33 class PpapiThread : public ChildThread,
34 public ppapi::proxy::PluginDispatcher::PluginDelegate, 34 public ppapi::proxy::PluginDispatcher::PluginDelegate,
35 public ppapi::proxy::PluginProxyDelegate { 35 public ppapi::proxy::PluginProxyDelegate {
36 public: 36 public:
37 PpapiThread(const CommandLine& command_line, bool is_broker); 37 PpapiThread(const CommandLine& command_line, bool is_broker);
38 virtual ~PpapiThread(); 38 virtual ~PpapiThread();
39 39
40 private: 40 private:
41 // ChildThread overrides. 41 // ChildThread overrides.
42 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; 42 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
43 virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
43 44
44 // PluginDispatcher::PluginDelegate implementation. 45 // PluginDispatcher::PluginDelegate implementation.
45 virtual std::set<PP_Instance>* GetGloballySeenInstanceIDSet() OVERRIDE; 46 virtual std::set<PP_Instance>* GetGloballySeenInstanceIDSet() OVERRIDE;
46 virtual base::MessageLoopProxy* GetIPCMessageLoop() OVERRIDE; 47 virtual base::MessageLoopProxy* GetIPCMessageLoop() OVERRIDE;
47 virtual base::WaitableEvent* GetShutdownEvent() OVERRIDE; 48 virtual base::WaitableEvent* GetShutdownEvent() OVERRIDE;
49 virtual IPC::PlatformFileForTransit ShareHandleWithRemote(
50 base::PlatformFile handle,
51 const IPC::SyncChannel& channel,
52 bool should_close_source) OVERRIDE;
48 virtual uint32 Register( 53 virtual uint32 Register(
49 ppapi::proxy::PluginDispatcher* plugin_dispatcher) OVERRIDE; 54 ppapi::proxy::PluginDispatcher* plugin_dispatcher) OVERRIDE;
50 virtual void Unregister(uint32 plugin_dispatcher_id) OVERRIDE; 55 virtual void Unregister(uint32 plugin_dispatcher_id) OVERRIDE;
51 56
52 // PluginProxyDelegate. 57 // PluginProxyDelegate.
53 virtual bool SendToBrowser(IPC::Message* msg) OVERRIDE; 58 virtual bool SendToBrowser(IPC::Message* msg) OVERRIDE;
54 virtual void PreCacheFont(const void* logfontw) OVERRIDE; 59 virtual void PreCacheFont(const void* logfontw) OVERRIDE;
55 60
56 // Message handlers. 61 // Message handlers.
57 void OnMsgLoadPlugin(const FilePath& path); 62 void OnMsgLoadPlugin(const FilePath& path);
58 void OnMsgCreateChannel(base::ProcessHandle host_process_handle, 63 void OnMsgCreateChannel(int renderer_id,
59 int renderer_id,
60 bool incognito); 64 bool incognito);
61 void OnMsgSetNetworkState(bool online); 65 void OnMsgSetNetworkState(bool online);
62 void OnPluginDispatcherMessageReceived(const IPC::Message& msg); 66 void OnPluginDispatcherMessageReceived(const IPC::Message& msg);
63 67
64 // Sets up the channel to the given renderer. On success, returns true and 68 // Sets up the channel to the given renderer. On success, returns true and
65 // fills the given ChannelHandle with the information from the new channel. 69 // fills the given ChannelHandle with the information from the new channel.
66 bool SetupRendererChannel(base::ProcessHandle host_process_handle, 70 bool SetupRendererChannel(int renderer_id,
67 int renderer_id,
68 bool incognito, 71 bool incognito,
69 IPC::ChannelHandle* handle); 72 IPC::ChannelHandle* handle);
70 73
71 // Sets up the name of the plugin for logging using the given path. 74 // Sets up the name of the plugin for logging using the given path.
72 void SavePluginName(const FilePath& path); 75 void SavePluginName(const FilePath& path);
73 76
74 // True if running in a broker process rather than a normal plugin process. 77 // True if running in a broker process rather than a normal plugin process.
75 bool is_broker_; 78 bool is_broker_;
76 79
77 base::ScopedNativeLibrary library_; 80 base::ScopedNativeLibrary library_;
(...skipping 18 matching lines...) Expand all
96 // See Dispatcher::Delegate::GetGloballySeenInstanceIDSet. 99 // See Dispatcher::Delegate::GetGloballySeenInstanceIDSet.
97 std::set<PP_Instance> globally_seen_instance_ids_; 100 std::set<PP_Instance> globally_seen_instance_ids_;
98 101
99 // The PluginDispatcher instances contained in the map are not owned by it. 102 // The PluginDispatcher instances contained in the map are not owned by it.
100 std::map<uint32, ppapi::proxy::PluginDispatcher*> plugin_dispatchers_; 103 std::map<uint32, ppapi::proxy::PluginDispatcher*> plugin_dispatchers_;
101 uint32 next_plugin_dispatcher_id_; 104 uint32 next_plugin_dispatcher_id_;
102 105
103 // The WebKitPlatformSupport implementation. 106 // The WebKitPlatformSupport implementation.
104 scoped_ptr<PpapiWebKitPlatformSupportImpl> webkit_platform_support_; 107 scoped_ptr<PpapiWebKitPlatformSupportImpl> webkit_platform_support_;
105 108
109 // Caches the handle to the peer process if this is a broker.
110 base::ProcessHandle peer_handle_;
111
106 DISALLOW_IMPLICIT_CONSTRUCTORS(PpapiThread); 112 DISALLOW_IMPLICIT_CONSTRUCTORS(PpapiThread);
107 }; 113 };
108 114
109 #endif // CONTENT_PPAPI_PLUGIN_PPAPI_THREAD_H_ 115 #endif // CONTENT_PPAPI_PLUGIN_PPAPI_THREAD_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698