OLD | NEW |
1 // Copyright (c) 2012 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 #include "ppapi/proxy/plugin_globals.h" | 5 #include "ppapi/proxy/plugin_globals.h" |
6 | 6 |
7 #include "base/task_runner.h" | 7 #include "base/task_runner.h" |
8 #include "base/threading/thread.h" | 8 #include "base/threading/thread.h" |
9 #include "ipc/ipc_message.h" | 9 #include "ipc/ipc_message.h" |
10 #include "ipc/ipc_sender.h" | 10 #include "ipc/ipc_sender.h" |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 GetMainThreadMessageLoop()->PostDelayedTask( | 185 GetMainThreadMessageLoop()->PostDelayedTask( |
186 FROM_HERE, | 186 FROM_HERE, |
187 RunWhileLocked(base::Bind(&PluginGlobals::OnReleaseKeepaliveThrottle, | 187 RunWhileLocked(base::Bind(&PluginGlobals::OnReleaseKeepaliveThrottle, |
188 weak_factory_.GetWeakPtr())), | 188 weak_factory_.GetWeakPtr())), |
189 base::TimeDelta::FromMilliseconds( | 189 base::TimeDelta::FromMilliseconds( |
190 keepalive_throttle_interval_milliseconds_)); | 190 keepalive_throttle_interval_milliseconds_)); |
191 } | 191 } |
192 } | 192 } |
193 | 193 |
194 IPC::Sender* PluginGlobals::GetBrowserSender() { | 194 IPC::Sender* PluginGlobals::GetBrowserSender() { |
195 // CAUTION: This function is called without the ProxyLock. See also | 195 if (!browser_sender_.get()) { |
196 // InterfaceList::GetInterfaceForPPB. | 196 browser_sender_.reset( |
| 197 new BrowserSender(plugin_proxy_delegate_->GetBrowserSender())); |
| 198 } |
| 199 |
197 return browser_sender_.get(); | 200 return browser_sender_.get(); |
198 } | 201 } |
199 | 202 |
200 std::string PluginGlobals::GetUILanguage() { | 203 std::string PluginGlobals::GetUILanguage() { |
201 return plugin_proxy_delegate_->GetUILanguage(); | 204 return plugin_proxy_delegate_->GetUILanguage(); |
202 } | 205 } |
203 | 206 |
204 void PluginGlobals::SetActiveURL(const std::string& url) { | 207 void PluginGlobals::SetActiveURL(const std::string& url) { |
205 plugin_proxy_delegate_->SetActiveURL(url); | 208 plugin_proxy_delegate_->SetActiveURL(url); |
206 } | 209 } |
207 | 210 |
208 PP_Resource PluginGlobals::CreateBrowserFont( | 211 PP_Resource PluginGlobals::CreateBrowserFont( |
209 Connection connection, | 212 Connection connection, |
210 PP_Instance instance, | 213 PP_Instance instance, |
211 const PP_BrowserFont_Trusted_Description& desc, | 214 const PP_BrowserFont_Trusted_Description& desc, |
212 const ppapi::Preferences& prefs) { | 215 const ppapi::Preferences& prefs) { |
213 return plugin_proxy_delegate_->CreateBrowserFont( | 216 return plugin_proxy_delegate_->CreateBrowserFont( |
214 connection, instance, desc, prefs); | 217 connection, instance, desc, prefs); |
215 } | 218 } |
216 | 219 |
217 void PluginGlobals::SetPluginProxyDelegate(PluginProxyDelegate* delegate) { | |
218 plugin_proxy_delegate_ = delegate; | |
219 browser_sender_.reset( | |
220 new BrowserSender(plugin_proxy_delegate_->GetBrowserSender())); | |
221 } | |
222 | |
223 MessageLoopResource* PluginGlobals::loop_for_main_thread() { | 220 MessageLoopResource* PluginGlobals::loop_for_main_thread() { |
224 return loop_for_main_thread_.get(); | 221 return loop_for_main_thread_.get(); |
225 } | 222 } |
226 | 223 |
227 void PluginGlobals::set_keepalive_throttle_interval_milliseconds(unsigned i) { | 224 void PluginGlobals::set_keepalive_throttle_interval_milliseconds(unsigned i) { |
228 keepalive_throttle_interval_milliseconds_ = i; | 225 keepalive_throttle_interval_milliseconds_ = i; |
229 } | 226 } |
230 | 227 |
231 bool PluginGlobals::IsPluginGlobals() const { | 228 bool PluginGlobals::IsPluginGlobals() const { |
232 return true; | 229 return true; |
233 } | 230 } |
234 | 231 |
235 void PluginGlobals::OnReleaseKeepaliveThrottle() { | 232 void PluginGlobals::OnReleaseKeepaliveThrottle() { |
236 ppapi::ProxyLock::AssertAcquiredDebugOnly(); | 233 ppapi::ProxyLock::AssertAcquiredDebugOnly(); |
237 plugin_recently_active_ = false; | 234 plugin_recently_active_ = false; |
238 } | 235 } |
239 | 236 |
240 } // namespace proxy | 237 } // namespace proxy |
241 } // namespace ppapi | 238 } // namespace ppapi |
OLD | NEW |