Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: chrome/utility/extensions/extensions_handler.cc

Issue 2639503002: Convert utility process CheckMediaFile IPC to mojo (Closed)
Patch Set: Build fix: IPC::Send is now used on #ifdef WIN and OSX only. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW
« chrome/common/extensions/media_parser.mojom ('K') | « chrome/common/extensions/media_parser.mojom ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698