summaryrefslogtreecommitdiffstats
path: root/extensions/shell
diff options
context:
space:
mode:
authorjamescook <jamescook@chromium.org>2015-01-27 09:38:35 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-27 17:39:28 +0000
commit8d2f9f9704898dcf70a8f8763a6571c6dbcc5fa9 (patch)
treea728b797bedc4f9c38ebd7589164ac889faef855 /extensions/shell
parent05cea38cd18a82c5e4e7512561f88eb407a5a87e (diff)
downloadchromium_src-8d2f9f9704898dcf70a8f8763a6571c6dbcc5fa9.zip
chromium_src-8d2f9f9704898dcf70a8f8763a6571c6dbcc5fa9.tar.gz
chromium_src-8d2f9f9704898dcf70a8f8763a6571c6dbcc5fa9.tar.bz2
chromeos: Add DBus binding for privetd Ping command
Extend PrivetDaemonClient to invoke the "Ping" D-Bus method on org.chromium.privetd.Manager. This is connected to the chrome.shell.gcd API for manual testing, but that will be deleted soon in favor of talking to privetd as part of Chrome OS OOBE. Manual tests require adding user chronos to group privetd in /etc/groups until https://code.google.com/p/brillo/issues/detail?id=3 lands. BUG=428848 TEST=added chromeos_unittests PrivetDaemonClient.* Review URL: https://codereview.chromium.org/869153005 Cr-Commit-Position: refs/heads/master@{#313298}
Diffstat (limited to 'extensions/shell')
-rw-r--r--extensions/shell/browser/api/shell_gcd/shell_gcd_api.cc16
-rw-r--r--extensions/shell/browser/api/shell_gcd/shell_gcd_api.h12
-rw-r--r--extensions/shell/browser/api/shell_gcd/shell_gcd_api_unittest.cc9
-rw-r--r--extensions/shell/common/api/shell_gcd.idl35
4 files changed, 21 insertions, 51 deletions
diff --git a/extensions/shell/browser/api/shell_gcd/shell_gcd_api.cc b/extensions/shell/browser/api/shell_gcd/shell_gcd_api.cc
index 2cbb133..637e8ce 100644
--- a/extensions/shell/browser/api/shell_gcd/shell_gcd_api.cc
+++ b/extensions/shell/browser/api/shell_gcd/shell_gcd_api.cc
@@ -13,23 +13,21 @@ namespace gcd = extensions::shell::api::shell_gcd;
namespace extensions {
-ShellGcdGetSetupStatusFunction::ShellGcdGetSetupStatusFunction() {
+ShellGcdPingFunction::ShellGcdPingFunction() {
}
-ShellGcdGetSetupStatusFunction::~ShellGcdGetSetupStatusFunction() {
+ShellGcdPingFunction::~ShellGcdPingFunction() {
}
-ExtensionFunction::ResponseAction ShellGcdGetSetupStatusFunction::Run() {
+ExtensionFunction::ResponseAction ShellGcdPingFunction::Run() {
// |this| is refcounted so we don't need the usual DBus callback WeakPtr.
- chromeos::DBusThreadManager::Get()->GetPrivetDaemonClient()->GetSetupStatus(
- base::Bind(&ShellGcdGetSetupStatusFunction::OnSetupStatus, this));
+ chromeos::DBusThreadManager::Get()->GetPrivetDaemonClient()->Ping(
+ base::Bind(&ShellGcdPingFunction::OnPing, this));
return RespondLater();
}
-void ShellGcdGetSetupStatusFunction::OnSetupStatus(
- const std::string& status_string) {
- gcd::SetupStatus status = gcd::ParseSetupStatus(status_string);
- Respond(ArgumentList(gcd::GetSetupStatus::Results::Create(status)));
+void ShellGcdPingFunction::OnPing(bool success) {
+ Respond(OneArgument(new base::FundamentalValue(success)));
}
} // namespace extensions
diff --git a/extensions/shell/browser/api/shell_gcd/shell_gcd_api.h b/extensions/shell/browser/api/shell_gcd/shell_gcd_api.h
index defcd9b..986f32f 100644
--- a/extensions/shell/browser/api/shell_gcd/shell_gcd_api.h
+++ b/extensions/shell/browser/api/shell_gcd/shell_gcd_api.h
@@ -11,23 +11,23 @@
namespace extensions {
// See shell_gcd.idl for documentation.
-class ShellGcdGetSetupStatusFunction : public UIThreadExtensionFunction {
+class ShellGcdPingFunction : public UIThreadExtensionFunction {
public:
- DECLARE_EXTENSION_FUNCTION("shell.gcd.getSetupStatus", UNKNOWN);
+ DECLARE_EXTENSION_FUNCTION("shell.gcd.ping", UNKNOWN);
- ShellGcdGetSetupStatusFunction();
+ ShellGcdPingFunction();
protected:
- ~ShellGcdGetSetupStatusFunction() override;
+ ~ShellGcdPingFunction() override;
// ExtensionFunction:
ResponseAction Run() override;
private:
// Callback for status from DBus call to GCD privet daemon.
- void OnSetupStatus(const std::string& status_string);
+ void OnPing(bool success);
- DISALLOW_COPY_AND_ASSIGN(ShellGcdGetSetupStatusFunction);
+ DISALLOW_COPY_AND_ASSIGN(ShellGcdPingFunction);
};
} // namespace extensions
diff --git a/extensions/shell/browser/api/shell_gcd/shell_gcd_api_unittest.cc b/extensions/shell/browser/api/shell_gcd/shell_gcd_api_unittest.cc
index a22c9f2..046fc7a 100644
--- a/extensions/shell/browser/api/shell_gcd/shell_gcd_api_unittest.cc
+++ b/extensions/shell/browser/api/shell_gcd/shell_gcd_api_unittest.cc
@@ -30,18 +30,17 @@ class ShellGcdApiTest : public ApiUnitTest {
}
private:
-
DISALLOW_COPY_AND_ASSIGN(ShellGcdApiTest);
};
TEST_F(ShellGcdApiTest, GetBootstrapStatus) {
// Function succeeds and returns a result (for its callback).
scoped_ptr<base::Value> result =
- RunFunctionAndReturnValue(new ShellGcdGetSetupStatusFunction, "[{}]");
+ RunFunctionAndReturnValue(new ShellGcdPingFunction, "[{}]");
ASSERT_TRUE(result.get());
- std::string value;
- result->GetAsString(&value);
- EXPECT_EQ("completed", value);
+ bool success = false;
+ result->GetAsBoolean(&success);
+ EXPECT_TRUE(success);
}
} // namespace extensions
diff --git a/extensions/shell/common/api/shell_gcd.idl b/extensions/shell/common/api/shell_gcd.idl
index c55aad6..7f2175a 100644
--- a/extensions/shell/common/api/shell_gcd.idl
+++ b/extensions/shell/common/api/shell_gcd.idl
@@ -6,38 +6,11 @@
// running on Chrome OS Core. The actual bootstrapping and GCD registration is
// handled by the privetd and buffet system daemons.
namespace shell.gcd {
-
- enum SetupStatus {
- // Not yet configured. Waiting for a connection from the phone or laptop
- // setup app.
- unconfigured,
-
- // Displaying code for user to verify they wish to set up this device.
- confirmingSetup,
-
- // Establishing a secure connection to the setup device and exchanging the
- // Wi-Fi credentials.
- exchangingCredentials,
-
- // Connecting to the local network.
- connectingToNetwork,
-
- // Registering with the GCD backend.
- registering,
-
- // Setup completed.
- completed
- };
-
- callback SetupStatusCallback = void(SetupStatus status);
+
+ callback PingCallback = void(boolean success);
interface Functions {
- // Returns the current setup status via |callback|.
- static void getSetupStatus(SetupStatusCallback callback);
- };
-
- interface Events {
- // Notifies that setup has transitioned to a new |status|.
- static void onSetupStatusChanged(SetupStatus status);
+ // Attempts to ping the daemon via D-Bus.
+ static void ping(PingCallback callback);
};
};