| Index: chrome/utility/chrome_content_utility_client.cc
|
| diff --git a/chrome/utility/chrome_content_utility_client.cc b/chrome/utility/chrome_content_utility_client.cc
|
| index 48acaa94ea95781f133a9d6958c52b39b8c47a53..cc5accf84d61cf4873a0797e03d24867e02d89c4 100644
|
| --- a/chrome/utility/chrome_content_utility_client.cc
|
| +++ b/chrome/utility/chrome_content_utility_client.cc
|
| @@ -11,7 +11,6 @@
|
| #include "base/files/file_path.h"
|
| #include "base/json/json_reader.h"
|
| #include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| #include "base/path_service.h"
|
| #include "base/scoped_native_library.h"
|
| #include "base/time/time.h"
|
| @@ -61,6 +60,11 @@
|
| #include "chrome/utility/media_galleries/picasa_albums_indexer.h"
|
| #endif // defined(OS_WIN) || defined(OS_MACOSX)
|
|
|
| +#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| +#include "chrome/utility/media_galleries/ipc_tunnel_data_reader.h"
|
| +#include "chrome/utility/media_galleries/media_metadata_parser.h"
|
| +#endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
| +
|
| #if defined(ENABLE_FULL_PRINTING)
|
| #include "chrome/common/crash_keys.h"
|
| #include "printing/backend/print_backend.h"
|
| @@ -289,11 +293,21 @@ typedef PdfFunctionsWin PdfFunctions;
|
| typedef PdfFunctionsBase PdfFunctions;
|
| #endif // OS_WIN
|
|
|
| +void SendMediaMetadataToHost(
|
| + scoped_ptr<extensions::api::media_galleries::MediaMetadata> metadata) {
|
| + Send(new ChromeUtilityHostMsg_ParseMediaMetadata_Finished(
|
| + true, *(metadata->ToValue().get())));
|
| +}
|
| +
|
| static base::LazyInstance<PdfFunctions> g_pdf_lib = LAZY_INSTANCE_INITIALIZER;
|
|
|
| } // namespace
|
|
|
| -ChromeContentUtilityClient::ChromeContentUtilityClient() {
|
| +ChromeContentUtilityClient::ChromeContentUtilityClient()
|
| +#ifdef !defined(OS_ANDROID) && !defined(OS_IOS)
|
| + : ipc_tunnel_data_reader_(NULL)
|
| +#endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
| +{
|
| #if !defined(OS_ANDROID)
|
| handlers_.push_back(new ProfileImportHandler());
|
| #endif // OS_ANDROID
|
| @@ -342,6 +356,11 @@ bool ChromeContentUtilityClient::OnMessageReceived(
|
|
|
| #if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_CheckMediaFile, OnCheckMediaFile)
|
| + IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseMediaMetadata,
|
| + OnParseMediaMetadata)
|
| + IPC_MESSAGE_HANDLER(
|
| + ChromeUtilityMsg_ParseMediaMetadata_RequestBlobBytes_Finished,
|
| + OnParseMediaMetadataRequestBlobBytesFinished)
|
| #endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
|
|
| #if defined(OS_CHROMEOS)
|
| @@ -759,6 +778,25 @@ void ChromeContentUtilityClient::OnCheckMediaFile(
|
| Send(new ChromeUtilityHostMsg_CheckMediaFile_Finished(check_success));
|
| ReleaseProcessIfNeeded();
|
| }
|
| +
|
| +void ChromeContentUtilityClient::OnParseMediaMetadata(
|
| + const std::string& mime_type) {
|
| + DCHECK(!media_metadata_parser_);
|
| + DCHECK(!ipc_tunnel_data_reader_);
|
| +
|
| + ipc_tunnel_data_reader_ = new metadata::IPCTunnelDataReader;
|
| + media_metadata_parser_.reset(
|
| + new metadata::MediaMetadataParser(ipc_tunnel_data_reader_, mime_type));
|
| + media_metadata_parser_->Start(base::Bind(&SendMediaMetadataToHost));
|
| +}
|
| +
|
| +void ChromeContentUtilityClient::OnParseMediaMetadataRequestBlobBytesFinished(
|
| + int64 request_id,
|
| + const std::string& bytes) {
|
| + if (!ipc_tunnel_data_reader_)
|
| + return;
|
| + ipc_tunnel_data_reader_->ReceiveBytes(request_id, bytes);
|
| +}
|
| #endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
|
|
| #if defined(OS_WIN)
|
|
|