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

Side by Side Diff: chrome/browser/extensions/api/ping_private/ping_private_api.cc

Issue 17210002: Connectivity Diagnostics API: chrome.diagnostics.sendPacket (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 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 "ping_private_api.h"
6
7 #include "base/values.h"
8
9 #if defined(OS_CHROMEOS)
10 #include "chromeos/dbus/packet_sender.h"
11 #endif // defined(OS_CHROMEOS)
12
13 namespace SendPacket = extensions::api::ping_private::SendPacket;
14
15 namespace extensions {
16
17 PingPrivateSendPacketFunction::PingPrivateSendPacketFunction() {}
18
19 PingPrivateSendPacketFunction::~PingPrivateSendPacketFunction() {}
20
21 bool PingPrivateSendPacketFunction::Prepare() {
22 parameters_ = SendPacket::Params::Create(*args_);
23 EXTENSION_FUNCTION_VALIDATE(parameters_.get());
24 return true;
25 }
26
27 void PingPrivateSendPacketFunction::AsyncWorkStart() {
28 std::string ip = parameters_->options.ip;
xiaowenx 2013/06/17 06:19:38 const std::string& ip = parameters_->options.ip;
Bei Zhang 2013/06/17 07:30:54 Done.
29 std::string type = "icmp";
xiaowenx 2013/06/17 05:26:41 We should return error if the user gives any proto
Bei Zhang 2013/06/17 07:30:54 Actually we should remove this option for now. We
30 long ttl = 1;
xiaowenx 2013/06/17 06:19:38 The generated code for SendPacketOptions.ttl is of
Bei Zhang 2013/06/17 07:30:54 Nice catch! It definitely should.
31 long timeout = 5000;
xiaowenx 2013/06/17 07:19:31 timeout is specified in seconds, so you probably w
Bei Zhang 2013/06/17 07:30:54 If sub-second timeout could not be specified, then
32 long size = 4;
33
34
xiaowenx 2013/06/17 06:19:38 is the extra empty line needed?
Bei Zhang 2013/06/17 07:30:54 Done.
35 if (parameters_->options.ttl.get())
xiaowenx 2013/06/17 06:19:38 .get() isn't needed: https://code.google.com/p/chr
Bei Zhang 2013/06/17 07:30:54 Hmm, I didn't know this. Yet I've never seen any c
36 ttl = *parameters_->options.ttl;
xiaowenx 2013/06/17 06:19:38 Maybe this kind of syntax would be easier: int ttl
Bei Zhang 2013/06/17 07:30:54 Done.
37 if (parameters_->options.timeout.get())
38 timeout = *parameters_->options.timeout;
39 if (parameters_->options.size.get())
40 size = *parameters_->options.size;
41
42 #if defined(OS_CHROMEOS)
43 chromeos::PacketSender::GetInstance()->Send(ip, type, ttl, timeout, size,
44 base::Bind(&PingPrivateSendPacketFunction::OnComplete, this));
45 #else
46 SetError("Not implemented");
47 AsyncWorkCompleted();
48 #endif
49 }
50
51 bool PingPrivateSendPacketFunction::Respond() {
52 return error_.empty();
53 }
54
55 void PingPrivateSendPacketFunction::OnComplete(bool suceeded,
56 std::string ip, int latency) {
57 extensions::api::ping_private::SendPacketResult result;
58 result.ip = ip;
59 result.latency = latency;
60 SetResult(result.ToValue().release());
61 AsyncWorkCompleted();
62 }
63
64 } // namespace extensions
65
xiaowenx 2013/06/17 06:19:38 is the extra empty line needed?
Bei Zhang 2013/06/17 07:30:54 Done.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698