Index: trunk/src/content/renderer/pepper/pepper_browser_connection.cc |
=================================================================== |
--- trunk/src/content/renderer/pepper/pepper_browser_connection.cc (revision 221543) |
+++ trunk/src/content/renderer/pepper/pepper_browser_connection.cc (working copy) |
@@ -36,6 +36,7 @@ |
OnMsgCreateResourceHostsFromHostReply) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
+ |
return handled; |
} |
@@ -73,6 +74,16 @@ |
nested_msgs)); |
} |
+void PepperBrowserConnection::SendBrowserFileRefGetInfo( |
+ int child_process_id, |
+ const std::vector<PP_Resource>& resources, |
+ const FileRefGetInfoCallback& callback) { |
+ int32_t sequence_number = GetNextSequence(); |
+ get_info_map_[sequence_number] = callback; |
+ Send(new PpapiHostMsg_FileRef_GetInfoForRenderer( |
+ routing_id(), child_process_id, sequence_number, resources)); |
+} |
+ |
void PepperBrowserConnection::OnMsgCreateResourceHostsFromHostReply( |
int32_t sequence_number, |
const std::vector<int>& pending_resource_host_ids) { |
@@ -88,6 +99,25 @@ |
} |
} |
+void PepperBrowserConnection::OnMsgFileRefGetInfoReply( |
+ int32_t sequence_number, |
+ const std::vector<PP_Resource>& resources, |
+ const std::vector<PP_FileSystemType>& types, |
+ const std::vector<std::string>& file_system_url_specs, |
+ const std::vector<base::FilePath>& external_paths) { |
+ // Check that the message is destined for the plugin this object is associated |
+ // with. |
+ std::map<int32_t, FileRefGetInfoCallback>::iterator it = |
+ get_info_map_.find(sequence_number); |
+ if (it != get_info_map_.end()) { |
+ FileRefGetInfoCallback callback = it->second; |
+ get_info_map_.erase(it); |
+ callback.Run(resources, types, file_system_url_specs, external_paths); |
+ } else { |
+ NOTREACHED(); |
+ } |
+} |
+ |
int32_t PepperBrowserConnection::GetNextSequence() { |
// Return the value with wraparound, making sure we don't make a sequence |
// number with a 0 ID. Note that signed wraparound is undefined in C++ so we |