| Index: content/renderer/dom_automation_controller.h
|
| diff --git a/content/renderer/dom_automation_controller.h b/content/renderer/dom_automation_controller.h
|
| index 8098b29b93d7180a842a7e84ea347bb0fdc0d425..0f6a74a30cb0aaff200227a9035861d082efbc3d 100644
|
| --- a/content/renderer/dom_automation_controller.h
|
| +++ b/content/renderer/dom_automation_controller.h
|
| @@ -5,8 +5,8 @@
|
| #ifndef CONTENT_RENDERER_DOM_AUTOMATION_CONTROLLER_H_
|
| #define CONTENT_RENDERER_DOM_AUTOMATION_CONTROLLER_H_
|
|
|
| -#include "base/basictypes.h"
|
| -#include "gin/wrappable.h"
|
| +#include "ipc/ipc_sender.h"
|
| +#include "webkit/renderer/cpp_bound_class.h"
|
|
|
| /* DomAutomationController class:
|
| Bound to Javascript window.domAutomationController object.
|
| @@ -50,7 +50,7 @@
|
|
|
| (0) Initialization step where DAController is bound to the renderer
|
| and the view_id of the renderer is supplied to the DAController for
|
| - routing message in (5).
|
| + routing message in (5). (routing_id_)
|
| (1) A 'javascript:' url is sent from the test process to master as an IPC
|
| message. A unique routing id is generated at this stage (automation_id_)
|
| (2) The automation_id_ of step (1) is supplied to DAController by calling
|
| @@ -61,8 +61,8 @@
|
| (4) A callback is generated as a result of domAutomationController.send()
|
| into Cpp. The supplied value is received as a result of this callback.
|
| (5) The value received in (4) is sent to the master along with the
|
| - stored automation_id_ as an IPC message. The frame_'s RenderFrameImpl is
|
| - used to route the message. (IPC messages, ViewHostMsg_*DomAutomation* )
|
| + stored automation_id_ as an IPC message. routing_id_ is used to route
|
| + the message. (IPC messages, ViewHostMsg_*DomAutomation* )
|
| (6) The value and the automation_id_ is extracted out of the message received
|
| in (5). This value is relayed to AProxy using another IPC message.
|
| automation_id_ is used to route the message.
|
| @@ -70,50 +70,57 @@
|
|
|
| */
|
|
|
| -namespace blink {
|
| -class WebFrame;
|
| -}
|
| -
|
| -namespace gin {
|
| -class Arguments;
|
| -}
|
| -
|
| namespace content {
|
|
|
| -class DomAutomationController : public gin::Wrappable<DomAutomationController> {
|
| +// TODO(vibhor): Add another method-pair like sendLater() and sendNow()
|
| +// sendLater() should keep building a json serializer
|
| +// sendNow() should send the above serializer as a string.
|
| +class DomAutomationController : public webkit_glue::CppBoundClass {
|
| public:
|
| - static gin::WrapperInfo kWrapperInfo;
|
| -
|
| - static void Install(blink::WebFrame* frame);
|
| + DomAutomationController();
|
|
|
| // Makes the renderer send a javascript value to the app.
|
| - // The value to be sent can be either of type String,
|
| - // Number (double casted to int32) or Boolean. Any other type or no
|
| - // argument at all is ignored.
|
| - bool Send(const gin::Arguments& args);
|
| + // The value to be sent can be either of type NPString,
|
| + // Number (double casted to int32) or boolean.
|
| + // The function returns true/false based on the result of actual send over
|
| + // IPC. It sets the return value to null on unexpected errors or arguments.
|
| + void Send(const webkit_glue::CppArgumentList& args,
|
| + webkit_glue::CppVariant* result);
|
|
|
| // Makes the renderer send a javascript value to the app.
|
| - // The value should be properly formed JSON.
|
| - bool SendJSON(const std::string& json);
|
| + // The value must be a NPString and should be properly formed JSON.
|
| + // This function does not modify/escape the returned string in any way.
|
| + void SendJSON(const webkit_glue::CppArgumentList& args,
|
| + webkit_glue::CppVariant* result);
|
|
|
| // Sends a string with a provided Automation Id.
|
| - bool SendWithId(int automation_id, const std::string& str);
|
| + // Expects two javascript values; the first must be a number type and will be
|
| + // used as the Automation Id, the second must be of type NPString.
|
| + // The function returns true/false to the javascript based on the success
|
| + // of the send over IPC. It sets the javascript return value to null on
|
| + // unexpected errors or arguments.
|
| + void SendWithId(const webkit_glue::CppArgumentList& args,
|
| + webkit_glue::CppVariant* result);
|
|
|
| - bool SetAutomationId(int automation_id);
|
| + void SetAutomationId(const webkit_glue::CppArgumentList& args,
|
| + webkit_glue::CppVariant* result);
|
| +
|
| + // TODO(vibhor): Implement later
|
| + // static CppBindingObjectMethod sendLater;
|
| + // static CppBindingObjectMethod sendNow;
|
| +
|
| + void set_routing_id(int routing_id) { routing_id_ = routing_id; }
|
| +
|
| + void set_message_sender(IPC::Sender* sender) {
|
| + sender_ = sender;
|
| + }
|
|
|
| private:
|
| - explicit DomAutomationController(blink::WebFrame* frame);
|
| - virtual ~DomAutomationController();
|
| + IPC::Sender* sender_;
|
|
|
| - // gin::WrappableBase
|
| - virtual gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
|
| - v8::Isolate* isolate) OVERRIDE;
|
| -
|
| - blink::WebFrame* frame_;
|
| -
|
| + // Refer to the comments at the top of the file for more details.
|
| + int routing_id_; // routing id to be used by first channel.
|
| int automation_id_; // routing id to be used by the next channel.
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DomAutomationController);
|
| };
|
|
|
| } // namespace content
|
|
|