summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/testing_automation_provider.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/automation/testing_automation_provider.h')
-rw-r--r--chrome/browser/automation/testing_automation_provider.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/chrome/browser/automation/testing_automation_provider.h b/chrome/browser/automation/testing_automation_provider.h
index 50c4c5e..2df1da2 100644
--- a/chrome/browser/automation/testing_automation_provider.h
+++ b/chrome/browser/automation/testing_automation_provider.h
@@ -13,6 +13,8 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
+#include "chrome/browser/automation/automation_event_observer.h"
+#include "chrome/browser/automation/automation_event_queue.h"
#include "chrome/browser/automation/automation_provider.h"
#include "chrome/browser/automation/automation_provider_json.h"
#include "chrome/browser/history/history.h"
@@ -944,6 +946,43 @@ class TestingAutomationProvider : public AutomationProvider,
void ExecuteJavascriptJSON(
base::DictionaryValue* args, IPC::Message* reply_message);
+ // Creates a DomRaisedEventObserver associated with the AutomationEventQueue.
+ // Example:
+ // input: { "event_name": "login complete",
+ // "windex": 1,
+ // "tab_index": 1,
+ // "frame_xpath": "//frames[1]",
+ // }
+ // output: { "observer_id": 1 }
+ void AddDomRaisedEventObserver(
+ base::DictionaryValue* args, IPC::Message* reply_message);
+
+ // Removes an event observer associated with the AutomationEventQueue.
+ // Example:
+ // input: { "observer_id": 1 }
+ // output: none
+ void RemoveEventObserver(
+ base::DictionaryValue* args, IPC::Message* reply_message);
+
+ // Retrieves an event from the AutomationEventQueue.
+ // Blocks if 'blocking' is true, otherwise returns immediately.
+ // Example:
+ // input: { "observer_id": 1,
+ // "blocking": true,
+ // }
+ // output: { "type": "raised",
+ // "name": "login complete"
+ // "id": 1,
+ // }
+ void GetNextEvent(base::DictionaryValue* args, IPC::Message* reply_message);
+
+ // Removes all events and observers attached to the AutomationEventQueue.
+ // Example:
+ // input: none
+ // output: none
+ void ClearEventQueue(
+ base::DictionaryValue* args, IPC::Message* reply_message);
+
// Executes javascript in the specified frame of a render view.
// Uses the JSON interface. Waits for a result from the
// |DOMAutomationController|. The javascript must send a string.
@@ -1563,6 +1602,10 @@ class TestingAutomationProvider : public AutomationProvider,
// The stored data for the ImportSettings operation.
ImportSettingsData import_settings_data_;
+ // The automation event observer queue. It is lazily created when an observer
+ // is added to avoid overhead when not needed.
+ scoped_ptr<AutomationEventQueue> automation_event_queue_;
+
DISALLOW_COPY_AND_ASSIGN(TestingAutomationProvider);
};