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

Side by Side Diff: chrome/browser/media/router/discovery/safe_dial_device_description_parser.cc

Issue 2745653008: [Media Router] Parse device description xml in utility process (Closed)
Patch Set: use mojo instead of IPC Created 3 years, 9 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/media/router/discovery/safe_dial_device_description_par ser.h"
6
7 #include <utility>
8
9 #include "chrome/common/extensions/chrome_utility_extensions_messages.h"
10 #include "chrome/grit/generated_resources.h"
11 #include "content/public/browser/browser_thread.h"
12 #include "ui/base/l10n/l10n_util.h"
13
14 using content::BrowserThread;
15 using content::UtilityProcessHost;
16
17 namespace media_router {
18
19 SafeDialDeviceDescriptionParser::SafeDialDeviceDescriptionParser() {}
20
21 SafeDialDeviceDescriptionParser::~SafeDialDeviceDescriptionParser() {}
22
23 void SafeDialDeviceDescriptionParser::Start(
24 const std::string& xml_text,
25 const DeviceDescriptionCallback& callback) {
26 DCHECK_CURRENTLY_ON(BrowserThread::IO);
27 DCHECK(!utility_process_mojo_client_);
28 DCHECK(callback);
29
30 device_description_callback_ = callback;
31
32 utility_process_mojo_client_ =
33 base::MakeUnique<content::UtilityProcessMojoClient<
34 extensions::mojom::DialDeviceDescriptionParser>>(
35 l10n_util::GetStringUTF16(
36 IDS_UTILITY_PROCESS_DIAL_DEVICE_DESCRIPTION_PARSER_NAME));
37
38 utility_process_mojo_client_->set_error_callback(base::Bind(
39 &SafeDialDeviceDescriptionParser::ParseDialDeviceDescriptionFailed,
mark a. foltz 2017/03/17 19:05:46 Conventionally, methods used only as callbacks sta
zhaobin 2017/03/18 00:17:38 Done.
40 this));
41 utility_process_mojo_client_->Start(); // Start the utility process
mark a. foltz 2017/03/17 19:05:46 I assume this starts the process in the background
zhaobin 2017/03/18 00:17:38 Done.
42 utility_process_mojo_client_->service()->ParseDialDeviceDescription(
43 xml_text,
44 base::Bind(
45 &SafeDialDeviceDescriptionParser::ParseDialDeviceDescriptionDone,
mark a. foltz 2017/03/17 19:05:46 OnParseDeviceDescriptionComplete
zhaobin 2017/03/18 00:17:38 Done.
46 this));
47 }
48
49 void SafeDialDeviceDescriptionParser::ParseDialDeviceDescriptionDone(
50 bool result,
51 const media_router::DialDeviceDescription& device_description,
52 const std::string& logging_xml) {
53 DCHECK_CURRENTLY_ON(BrowserThread::IO);
mark a. foltz 2017/03/17 19:05:46 Slightly prefer base::ThreadChecker. I suppose th
zhaobin 2017/03/18 00:17:38 Done.
54
55 utility_process_mojo_client_.reset(); // Terminate the utility process.
56
57 DCHECK(!device_description_callback_.is_null());
58 device_description_callback_.Run(result, device_description, logging_xml);
59 }
60
61 void SafeDialDeviceDescriptionParser::ParseDialDeviceDescriptionFailed() {
62 DCHECK_CURRENTLY_ON(BrowserThread::IO);
63
64 utility_process_mojo_client_.reset(); // Terminate the utility process.
65
66 DCHECK(!device_description_callback_.is_null());
67 device_description_callback_.Run(false, media_router::DialDeviceDescription(),
68 "");
69 }
70
71 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698