diff options
author | rdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-01 18:06:08 +0000 |
---|---|---|
committer | rdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-01 18:06:08 +0000 |
commit | 370c6bed8312fe1b305f6b519ae1c4afe79ceeb8 (patch) | |
tree | 6d3a22087146dc31e7bcd2d186e020f645f1931c /extensions/renderer/dom_activity_logger.h | |
parent | 2eedc20357a869f33ecd72cd94d08ed0794e4c1c (diff) | |
download | chromium_src-370c6bed8312fe1b305f6b519ae1c4afe79ceeb8.zip chromium_src-370c6bed8312fe1b305f6b519ae1c4afe79ceeb8.tar.gz chromium_src-370c6bed8312fe1b305f6b519ae1c4afe79ceeb8.tar.bz2 |
Resubmit: Extend DOMActivityLogger interface for upcoming change
Resubmit of https://codereview.chromium.org/247953008/
---------------
In order to reduce pain (hopefully to zero) for sheriffs and fellow developers
who prefer their trees green rather than red, let's make landing the change
at https://codereview.chromium.org/213783002/ as safe as possible.
Step 1: This CL. Extend DOMActivityLogger with new methods for logGetter,
logSetter, and logMethod, which have the same functionality as the current
log() method.
Step 2: https://codereview.chromium.org/213783002/ - The implementation change
in blink to switch from using log() to using logX.
Step 3: Cleanup -- remove old log method from chrome.
BUG=356890
Review URL: https://codereview.chromium.org/265633002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267582 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions/renderer/dom_activity_logger.h')
-rw-r--r-- | extensions/renderer/dom_activity_logger.h | 52 |
1 files changed, 45 insertions, 7 deletions
diff --git a/extensions/renderer/dom_activity_logger.h b/extensions/renderer/dom_activity_logger.h index e4b1c2b..e2fa40c 100644 --- a/extensions/renderer/dom_activity_logger.h +++ b/extensions/renderer/dom_activity_logger.h @@ -8,7 +8,18 @@ #include <string> #include "base/macros.h" +#include "extensions/common/dom_action_types.h" #include "third_party/WebKit/public/web/WebDOMActivityLogger.h" +#include "v8/include/v8.h" + +namespace base { +class ListValue; +} + +namespace blink { +class WebString; +class WebURL; +} namespace content { class V8ValueConverter; @@ -16,8 +27,6 @@ class V8ValueConverter; namespace extensions { -class ActivityLogConverterStrategy; - // Used to log DOM API calls from within WebKit. The events are sent via IPC to // extensions::ActivityLog for recording and display. class DOMActivityLogger: public blink::WebDOMActivityLogger { @@ -26,16 +35,13 @@ class DOMActivityLogger: public blink::WebDOMActivityLogger { explicit DOMActivityLogger(const std::string& extension_id); virtual ~DOMActivityLogger(); - // Marshalls the arguments into an ExtensionHostMsg_DOMAction_Params - // and sends it over to the browser (via IPC) for appending it to the - // extension activity log. - // (Overrides the log method in blink::WebDOMActivityLogger) + // This will soon be deprecated, and converted to the logX methods below. virtual void log(const blink::WebString& api_name, int argc, const v8::Handle<v8::Value> argv[], const blink::WebString& call_type, const blink::WebURL& url, - const blink::WebString& title) OVERRIDE; + const blink::WebString& title); // Check (using the WebKit API) if there is no logger attached to the world // corresponding to world_id, and if so, construct a new logger and attach it. @@ -44,6 +50,38 @@ class DOMActivityLogger: public blink::WebDOMActivityLogger { const std::string& extension_id); private: + // blink::WebDOMActivityLogger implementation. + // Marshals the arguments into an ExtensionHostMsg_DOMAction_Params and sends + // it over to the browser (via IPC) for appending it to the extension activity + // log. + // These methods don't have the OVERRIDE keyword due to the complexities it + // introduces when changes blink apis. + virtual void logGetter(const blink::WebString& api_name, + const blink::WebURL& url, + const blink::WebString& title); + virtual void logSetter(const blink::WebString& api_name, + const v8::Handle<v8::Value>& new_value, + const blink::WebURL& url, + const blink::WebString& title); + virtual void logSetter(const blink::WebString& api_name, + const v8::Handle<v8::Value>& new_value, + const v8::Handle<v8::Value>& old_value, + const blink::WebURL& url, + const blink::WebString& title); + virtual void logMethod(const blink::WebString& api_name, + int argc, + const v8::Handle<v8::Value>* argv, + const blink::WebURL& url, + const blink::WebString& title); + + // Helper function to actually send the message across IPC. + void SendDomActionMessage(const std::string& api_call, + const GURL& url, + const base::string16& url_title, + DomActionType::Type call_type, + scoped_ptr<base::ListValue> args); + + // The id of the extension with which this logger is associated. std::string extension_id_; DISALLOW_COPY_AND_ASSIGN(DOMActivityLogger); |