| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/renderer/pepper_plugin_delegate_impl.h" | 5 #include "content/renderer/pepper_plugin_delegate_impl.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <queue> | 8 #include <queue> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 1023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1034 base::PlatformFileError error_code, | 1034 base::PlatformFileError error_code, |
| 1035 base::PlatformFile file, | 1035 base::PlatformFile file, |
| 1036 int message_id) { | 1036 int message_id) { |
| 1037 AsyncOpenFileCallback* callback = | 1037 AsyncOpenFileCallback* callback = |
| 1038 pending_async_open_files_.Lookup(message_id); | 1038 pending_async_open_files_.Lookup(message_id); |
| 1039 DCHECK(callback); | 1039 DCHECK(callback); |
| 1040 pending_async_open_files_.Remove(message_id); | 1040 pending_async_open_files_.Remove(message_id); |
| 1041 callback->Run(error_code, base::PassPlatformFile(&file)); | 1041 callback->Run(error_code, base::PassPlatformFile(&file)); |
| 1042 // Make sure we won't leak file handle if the requester has died. | 1042 // Make sure we won't leak file handle if the requester has died. |
| 1043 if (file != base::kInvalidPlatformFileValue) | 1043 if (file != base::kInvalidPlatformFileValue) |
| 1044 base::FileUtilProxy::Close(GetFileThreadMessageLoopProxy(), file, NULL); | 1044 GetFileThreadMessageLoopProxy()->PostTask( |
| 1045 FROM_HERE, |
| 1046 base::IgnoreReturn(base::Callback<bool(void)>( |
| 1047 base::Bind(&base::ClosePlatformFile, file)))); |
| 1045 delete callback; | 1048 delete callback; |
| 1046 } | 1049 } |
| 1047 | 1050 |
| 1048 void PepperPluginDelegateImpl::OnSetFocus(bool has_focus) { | 1051 void PepperPluginDelegateImpl::OnSetFocus(bool has_focus) { |
| 1049 for (std::set<webkit::ppapi::PluginInstance*>::iterator i = | 1052 for (std::set<webkit::ppapi::PluginInstance*>::iterator i = |
| 1050 active_instances_.begin(); | 1053 active_instances_.begin(); |
| 1051 i != active_instances_.end(); ++i) | 1054 i != active_instances_.end(); ++i) |
| 1052 (*i)->SetContentAreaFocus(has_focus); | 1055 (*i)->SetContentAreaFocus(has_focus); |
| 1053 } | 1056 } |
| 1054 | 1057 |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1247 virtual void DidWrite(int64 bytes, bool complete) { | 1250 virtual void DidWrite(int64 bytes, bool complete) { |
| 1248 NOTREACHED(); | 1251 NOTREACHED(); |
| 1249 } | 1252 } |
| 1250 | 1253 |
| 1251 virtual void DidOpenFile( | 1254 virtual void DidOpenFile( |
| 1252 base::PlatformFile file, | 1255 base::PlatformFile file, |
| 1253 base::ProcessHandle unused) { | 1256 base::ProcessHandle unused) { |
| 1254 callback_.Run(base::PLATFORM_FILE_OK, base::PassPlatformFile(&file)); | 1257 callback_.Run(base::PLATFORM_FILE_OK, base::PassPlatformFile(&file)); |
| 1255 // Make sure we won't leak file handle if the requester has died. | 1258 // Make sure we won't leak file handle if the requester has died. |
| 1256 if (file != base::kInvalidPlatformFileValue) { | 1259 if (file != base::kInvalidPlatformFileValue) { |
| 1257 base::FileUtilProxy::Close(RenderThreadImpl::current()-> | 1260 RenderThreadImpl::current()->GetFileThreadMessageLoopProxy()->PostTask( |
| 1258 GetFileThreadMessageLoopProxy(), file, NULL); | 1261 FROM_HERE, |
| 1262 base::IgnoreReturn(base::Callback<bool(void)>( |
| 1263 base::Bind(&base::ClosePlatformFile, file)))); |
| 1259 } | 1264 } |
| 1260 } | 1265 } |
| 1261 | 1266 |
| 1262 private: // TODO(ericu): Delete this? | 1267 private: // TODO(ericu): Delete this? |
| 1263 webkit::ppapi::PluginDelegate::AsyncOpenFileCallback callback_; | 1268 webkit::ppapi::PluginDelegate::AsyncOpenFileCallback callback_; |
| 1264 }; | 1269 }; |
| 1265 | 1270 |
| 1266 bool PepperPluginDelegateImpl::AsyncOpenFileSystemURL( | 1271 bool PepperPluginDelegateImpl::AsyncOpenFileSystemURL( |
| 1267 const GURL& path, int flags, const AsyncOpenFileCallback& callback) { | 1272 const GURL& path, int flags, const AsyncOpenFileCallback& callback) { |
| 1268 | 1273 |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1644 | 1649 |
| 1645 int PepperPluginDelegateImpl::GetRoutingId() const { | 1650 int PepperPluginDelegateImpl::GetRoutingId() const { |
| 1646 return render_view_->routing_id(); | 1651 return render_view_->routing_id(); |
| 1647 } | 1652 } |
| 1648 | 1653 |
| 1649 void PepperPluginDelegateImpl::PublishInitialPolicy( | 1654 void PepperPluginDelegateImpl::PublishInitialPolicy( |
| 1650 scoped_refptr<webkit::ppapi::PluginInstance> instance, | 1655 scoped_refptr<webkit::ppapi::PluginInstance> instance, |
| 1651 const std::string& policy) { | 1656 const std::string& policy) { |
| 1652 instance->HandlePolicyUpdate(policy); | 1657 instance->HandlePolicyUpdate(policy); |
| 1653 } | 1658 } |
| OLD | NEW |