| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/utility/extensions/extensions_handler.h" | 5 #include "chrome/utility/extensions/extensions_handler.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 | 38 |
| 39 #if defined(OS_WIN) || defined(OS_MACOSX) | 39 #if defined(OS_WIN) || defined(OS_MACOSX) |
| 40 #include "chrome/utility/media_galleries/iapps_xml_utils.h" | 40 #include "chrome/utility/media_galleries/iapps_xml_utils.h" |
| 41 #include "chrome/utility/media_galleries/itunes_library_parser.h" | 41 #include "chrome/utility/media_galleries/itunes_library_parser.h" |
| 42 #include "chrome/utility/media_galleries/picasa_album_table_reader.h" | 42 #include "chrome/utility/media_galleries/picasa_album_table_reader.h" |
| 43 #include "chrome/utility/media_galleries/picasa_albums_indexer.h" | 43 #include "chrome/utility/media_galleries/picasa_albums_indexer.h" |
| 44 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 44 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
| 45 | 45 |
| 46 namespace { | 46 namespace { |
| 47 | 47 |
| 48 #if defined(OS_WIN) || defined(OS_MACOSX) |
| 48 bool Send(IPC::Message* message) { | 49 bool Send(IPC::Message* message) { |
| 49 return content::UtilityThread::Get()->Send(message); | 50 return content::UtilityThread::Get()->Send(message); |
| 50 } | 51 } |
| 52 #endif |
| 51 | 53 |
| 52 void ReleaseProcessIfNeeded() { | 54 void ReleaseProcessIfNeeded() { |
| 53 content::UtilityThread::Get()->ReleaseProcessIfNeeded(); | 55 content::UtilityThread::Get()->ReleaseProcessIfNeeded(); |
| 54 } | 56 } |
| 55 | 57 |
| 56 class MediaParserImpl : public extensions::mojom::MediaParser { | 58 class MediaParserImpl : public extensions::mojom::MediaParser { |
| 57 public: | 59 public: |
| 58 static void Create(ChromeContentUtilityClient* utility_client, | 60 static void Create(ChromeContentUtilityClient* utility_client, |
| 59 extensions::mojom::MediaParserRequest request) { | 61 extensions::mojom::MediaParserRequest request) { |
| 60 mojo::MakeStrongBinding(base::MakeUnique<MediaParserImpl>(utility_client), | 62 mojo::MakeStrongBinding(base::MakeUnique<MediaParserImpl>(utility_client), |
| (...skipping 22 matching lines...) Expand all Loading... |
| 83 | 85 |
| 84 static void ParseMediaMetadataDone( | 86 static void ParseMediaMetadataDone( |
| 85 const ParseMediaMetadataCallback& callback, | 87 const ParseMediaMetadataCallback& callback, |
| 86 metadata::MediaMetadataParser* /* parser */, | 88 metadata::MediaMetadataParser* /* parser */, |
| 87 const extensions::api::media_galleries::MediaMetadata& metadata, | 89 const extensions::api::media_galleries::MediaMetadata& metadata, |
| 88 const std::vector<metadata::AttachedImage>& attached_images) { | 90 const std::vector<metadata::AttachedImage>& attached_images) { |
| 89 callback.Run(true, metadata.ToValue(), attached_images); | 91 callback.Run(true, metadata.ToValue(), attached_images); |
| 90 ReleaseProcessIfNeeded(); | 92 ReleaseProcessIfNeeded(); |
| 91 } | 93 } |
| 92 | 94 |
| 95 void CheckMediaFile(int64_t decode_time_ms, |
| 96 base::File file, |
| 97 const CheckMediaFileCallback& callback) override { |
| 98 #if !defined(MEDIA_DISABLE_FFMPEG) |
| 99 media::MediaFileChecker checker(std::move(file)); |
| 100 const bool check_success = |
| 101 checker.Start(base::TimeDelta::FromMilliseconds(decode_time_ms)); |
| 102 callback.Run(check_success); |
| 103 #else |
| 104 callback.Run(false); |
| 105 #endif |
| 106 ReleaseProcessIfNeeded(); |
| 107 } |
| 108 |
| 93 ChromeContentUtilityClient* const utility_client_; | 109 ChromeContentUtilityClient* const utility_client_; |
| 94 | 110 |
| 95 DISALLOW_COPY_AND_ASSIGN(MediaParserImpl); | 111 DISALLOW_COPY_AND_ASSIGN(MediaParserImpl); |
| 96 }; | 112 }; |
| 97 | 113 |
| 98 } // namespace | 114 } // namespace |
| 99 | 115 |
| 100 namespace extensions { | 116 namespace extensions { |
| 101 | 117 |
| 102 ExtensionsHandler::ExtensionsHandler() { | 118 ExtensionsHandler::ExtensionsHandler() { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 121 // Mojo services to the interface registry. | 137 // Mojo services to the interface registry. |
| 122 if (running_elevated) | 138 if (running_elevated) |
| 123 return; | 139 return; |
| 124 | 140 |
| 125 registry->AddInterface(base::Bind(&MediaParserImpl::Create, utility_client)); | 141 registry->AddInterface(base::Bind(&MediaParserImpl::Create, utility_client)); |
| 126 } | 142 } |
| 127 | 143 |
| 128 bool ExtensionsHandler::OnMessageReceived(const IPC::Message& message) { | 144 bool ExtensionsHandler::OnMessageReceived(const IPC::Message& message) { |
| 129 bool handled = true; | 145 bool handled = true; |
| 130 IPC_BEGIN_MESSAGE_MAP(ExtensionsHandler, message) | 146 IPC_BEGIN_MESSAGE_MAP(ExtensionsHandler, message) |
| 131 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_CheckMediaFile, OnCheckMediaFile) | |
| 132 | |
| 133 #if defined(OS_WIN) | 147 #if defined(OS_WIN) |
| 134 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseITunesPrefXml, | 148 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseITunesPrefXml, |
| 135 OnParseITunesPrefXml) | 149 OnParseITunesPrefXml) |
| 136 #endif // defined(OS_WIN) | 150 #endif // defined(OS_WIN) |
| 137 | 151 |
| 138 #if defined(OS_WIN) || defined(OS_MACOSX) | 152 #if defined(OS_WIN) || defined(OS_MACOSX) |
| 139 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseITunesLibraryXmlFile, | 153 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseITunesLibraryXmlFile, |
| 140 OnParseITunesLibraryXmlFile) | 154 OnParseITunesLibraryXmlFile) |
| 141 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParsePicasaPMPDatabase, | 155 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParsePicasaPMPDatabase, |
| 142 OnParsePicasaPMPDatabase) | 156 OnParsePicasaPMPDatabase) |
| 143 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_IndexPicasaAlbumsContents, | 157 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_IndexPicasaAlbumsContents, |
| 144 OnIndexPicasaAlbumsContents) | 158 OnIndexPicasaAlbumsContents) |
| 145 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 159 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
| 146 | 160 |
| 147 #if defined(OS_WIN) | 161 #if defined(OS_WIN) |
| 148 IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_GetWiFiCredentials, | 162 IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_GetWiFiCredentials, |
| 149 OnGetWiFiCredentials) | 163 OnGetWiFiCredentials) |
| 150 #endif // defined(OS_WIN) | 164 #endif // defined(OS_WIN) |
| 151 | 165 |
| 152 IPC_MESSAGE_UNHANDLED(handled = false) | 166 IPC_MESSAGE_UNHANDLED(handled = false) |
| 153 IPC_END_MESSAGE_MAP() | 167 IPC_END_MESSAGE_MAP() |
| 154 | 168 |
| 155 return handled || utility_handler_.OnMessageReceived(message); | 169 return handled || utility_handler_.OnMessageReceived(message); |
| 156 } | 170 } |
| 157 | 171 |
| 158 void ExtensionsHandler::OnCheckMediaFile( | |
| 159 int64_t milliseconds_of_decoding, | |
| 160 const IPC::PlatformFileForTransit& media_file) { | |
| 161 #if !defined(MEDIA_DISABLE_FFMPEG) | |
| 162 media::MediaFileChecker checker( | |
| 163 IPC::PlatformFileForTransitToFile(media_file)); | |
| 164 const bool check_success = checker.Start( | |
| 165 base::TimeDelta::FromMilliseconds(milliseconds_of_decoding)); | |
| 166 Send(new ChromeUtilityHostMsg_CheckMediaFile_Finished(check_success)); | |
| 167 #else | |
| 168 Send(new ChromeUtilityHostMsg_CheckMediaFile_Finished(false)); | |
| 169 #endif | |
| 170 ReleaseProcessIfNeeded(); | |
| 171 } | |
| 172 | |
| 173 #if defined(OS_WIN) | 172 #if defined(OS_WIN) |
| 174 void ExtensionsHandler::OnParseITunesPrefXml( | 173 void ExtensionsHandler::OnParseITunesPrefXml( |
| 175 const std::string& itunes_xml_data) { | 174 const std::string& itunes_xml_data) { |
| 176 base::FilePath library_path( | 175 base::FilePath library_path( |
| 177 itunes::FindLibraryLocationInPrefXml(itunes_xml_data)); | 176 itunes::FindLibraryLocationInPrefXml(itunes_xml_data)); |
| 178 Send(new ChromeUtilityHostMsg_GotITunesDirectory(library_path)); | 177 Send(new ChromeUtilityHostMsg_GotITunesDirectory(library_path)); |
| 179 ReleaseProcessIfNeeded(); | 178 ReleaseProcessIfNeeded(); |
| 180 } | 179 } |
| 181 #endif // defined(OS_WIN) | 180 #endif // defined(OS_WIN) |
| 182 | 181 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 | 233 |
| 235 std::string key_data; | 234 std::string key_data; |
| 236 std::string error; | 235 std::string error; |
| 237 wifi_service->GetKeyFromSystem(network_guid, &key_data, &error); | 236 wifi_service->GetKeyFromSystem(network_guid, &key_data, &error); |
| 238 | 237 |
| 239 Send(new ChromeUtilityHostMsg_GotWiFiCredentials(key_data, error.empty())); | 238 Send(new ChromeUtilityHostMsg_GotWiFiCredentials(key_data, error.empty())); |
| 240 } | 239 } |
| 241 #endif // defined(OS_WIN) | 240 #endif // defined(OS_WIN) |
| 242 | 241 |
| 243 } // namespace extensions | 242 } // namespace extensions |
| OLD | NEW |