summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider_json.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/automation/automation_provider_json.h')
-rw-r--r--chrome/browser/automation/automation_provider_json.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/chrome/browser/automation/automation_provider_json.h b/chrome/browser/automation/automation_provider_json.h
new file mode 100644
index 0000000..a203c58
--- /dev/null
+++ b/chrome/browser/automation/automation_provider_json.h
@@ -0,0 +1,40 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Support utilities for the JSON automation interface used by PyAuto.
+
+#ifndef CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_JSON_H_
+#define CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_JSON_H_
+
+#include <string>
+
+#include "base/values.h"
+#include "ipc/ipc_message.h"
+#include "chrome/browser/automation/automation_provider.h"
+
+// Helper to ensure we always send a reply message for JSON automation requests.
+class AutomationJSONReply {
+ public:
+ // Creates a new reply object for the IPC message |reply_message| for
+ // |provider|. The caller is expected to call SendSuccess() or SendError()
+ // before destroying this object.
+ AutomationJSONReply(AutomationProvider* provider,
+ IPC::Message* reply_message);
+
+ ~AutomationJSONReply();
+
+ // Send a success reply along with data contained in |value|.
+ // An empty message will be sent if |value| is NULL.
+ void SendSuccess(const Value* value);
+
+ // Send an error reply along with error message |error_message|.
+ void SendError(const std::string& error_message);
+
+ private:
+ AutomationProvider* provider_;
+ IPC::Message* message_;
+};
+
+#endif // CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_JSON_H_
+