diff options
author | felt@chromium.org <felt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-25 18:09:41 +0000 |
---|---|---|
committer | felt@chromium.org <felt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-25 18:09:41 +0000 |
commit | fe87f68c3d1e2a67eb66df35e37ae91e9e21e9b9 (patch) | |
tree | 9a931077ec8322d669cabd2eead0aa93a74f89ba | |
parent | a908b5bedfbf2495fcb9390fade5bdc17875e22b (diff) | |
download | chromium_src-fe87f68c3d1e2a67eb66df35e37ae91e9e21e9b9.zip chromium_src-fe87f68c3d1e2a67eb66df35e37ae91e9e21e9b9.tar.gz chromium_src-fe87f68c3d1e2a67eb66df35e37ae91e9e21e9b9.tar.bz2 |
ActivityLog - translate DOM Action extras into verb types
Ulfar & Ankur's DOM logging code uses the extras field to specify "Getter", "Setter", or "Method". This CL uses that piece of data to populate the DOMActionType field. It also adds the special label for XHRs.
BUG=229703
Review URL: https://chromiumcodereview.appspot.com/14349007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196433 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/extensions/activity_log.cc | 13 | ||||
-rw-r--r-- | chrome/browser/extensions/dom_actions.cc | 26 | ||||
-rw-r--r-- | chrome/browser/extensions/dom_actions.h | 6 |
3 files changed, 34 insertions, 11 deletions
diff --git a/chrome/browser/extensions/activity_log.cc b/chrome/browser/extensions/activity_log.cc index 6fe5f52..63a2de8 100644 --- a/chrome/browser/extensions/activity_log.cc +++ b/chrome/browser/extensions/activity_log.cc @@ -347,13 +347,24 @@ void ActivityLog::LogDOMAction(const Extension* extension, const ListValue* args, const std::string& extra) { if (!IsLogEnabled()) return; + DOMAction::DOMActionType action = DOMAction::MODIFIED; + if (extra == "Getter") { + action = DOMAction::GETTER; + } else if (extra == "Setter") { + action = DOMAction::SETTER; + } else if (api_call == "XMLHttpRequest.open") { + // Has to come before the Method check because XHR is also a Method. + action = DOMAction::XHR; + } else if (extra == "Method") { + action = DOMAction::METHOD; + } LogDOMActionInternal(extension, url, url_title, api_call, args, extra, - DOMAction::MODIFIED); + action); } void ActivityLog::LogWebRequestAction(const Extension* extension, diff --git a/chrome/browser/extensions/dom_actions.cc b/chrome/browser/extensions/dom_actions.cc index ffb8665..a923e81 100644 --- a/chrome/browser/extensions/dom_actions.cc +++ b/chrome/browser/extensions/dom_actions.cc @@ -100,16 +100,20 @@ std::string DOMAction::PrettyPrintForDebug() { std::string DOMAction::VerbAsString() const { switch (verb_) { - case MODIFIED: - return "MODIFIED"; - case READ: - return "READ"; + case GETTER: + return "GETTER"; + case SETTER: + return "SETTER"; + case METHOD: + return "METHOD"; case INSERTED: return "INSERTED"; case XHR: return "XHR"; case WEBREQUEST: return "WEBREQUEST"; + case MODIFIED: // legacy + return "MODIFIED"; default: NOTREACHED(); return NULL; @@ -118,16 +122,22 @@ std::string DOMAction::VerbAsString() const { DOMAction::DOMActionType DOMAction::StringAsDOMActionType( const std::string& str) { - if (str == "MODIFIED") { - return MODIFIED; - } else if (str == "READ") { - return READ; + if (str == "GETTER") { + return GETTER; + } else if (str == "SETTER") { + return SETTER; + } else if (str == "METHOD") { + return METHOD; } else if (str == "INSERTED") { return INSERTED; } else if (str == "XHR") { return XHR; } else if (str == "WEBREQUEST") { return WEBREQUEST; + } else if (str == "MODIFIED") { // legacy + return MODIFIED; + } else if (str == "READ") { // legacy + return GETTER; } else { NOTREACHED(); return MODIFIED; // this should never happen! diff --git a/chrome/browser/extensions/dom_actions.h b/chrome/browser/extensions/dom_actions.h index 13d5e07..59ec0b3 100644 --- a/chrome/browser/extensions/dom_actions.h +++ b/chrome/browser/extensions/dom_actions.h @@ -16,11 +16,13 @@ namespace extensions { class DOMAction : public Action { public: enum DOMActionType { - MODIFIED, // For Content Script DOM manipulations - READ, // For Content Script DOM manipulations + GETTER, // For Content Script DOM manipulations + SETTER, // For Content Script DOM manipulations + METHOD, // For Content Script DOM manipulations INSERTED, // For when Content Scripts are added to pages XHR, // When an extension core sends an XHR WEBREQUEST, // When a page request is modified with the WebRequest API + MODIFIED, // For legacy, also used as a catch-all }; static const char* kTableName; |