summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfelt@chromium.org <felt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-25 18:09:41 +0000
committerfelt@chromium.org <felt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-25 18:09:41 +0000
commitfe87f68c3d1e2a67eb66df35e37ae91e9e21e9b9 (patch)
tree9a931077ec8322d669cabd2eead0aa93a74f89ba
parenta908b5bedfbf2495fcb9390fade5bdc17875e22b (diff)
downloadchromium_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.cc13
-rw-r--r--chrome/browser/extensions/dom_actions.cc26
-rw-r--r--chrome/browser/extensions/dom_actions.h6
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;