summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_webnavigation_api.cc
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-11 08:06:02 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-11 08:06:02 +0000
commit1087a763ae4366d681d176e101d9cf029e63e0be (patch)
tree9a9020164e445bcbbbb6ddfef925121106d4f4f9 /chrome/browser/extensions/extension_webnavigation_api.cc
parent43d3bf86f38f57be9be0e9a90fcdb8dff9b62f59 (diff)
downloadchromium_src-1087a763ae4366d681d176e101d9cf029e63e0be.zip
chromium_src-1087a763ae4366d681d176e101d9cf029e63e0be.tar.gz
chromium_src-1087a763ae4366d681d176e101d9cf029e63e0be.tar.bz2
Unremoving the timeStamp property from webNavigation and webRequest extension APIs.
* Reverts r79631: "Remove the timeStamp property from the webNavigation extension API." * Reverts r79314: "Remove the timeStamp property from webRequest extension events." * Adds the `timeStamp` property to WebRequest's `onBeforeSendHeaders` event. * Updates documentation to note that the timestamps are only _internally_ consistent. Comparing timestamps to the extension's clock might result in Unexpected Events From The Futureā„¢. BUG=60101 TEST=browser_tests Review URL: http://codereview.chromium.org/6812047 Patch from Mike West <mkwst@chromium.org>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81076 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_webnavigation_api.cc')
-rw-r--r--chrome/browser/extensions/extension_webnavigation_api.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_webnavigation_api.cc b/chrome/browser/extensions/extension_webnavigation_api.cc
index c58ecd0..1eae3a6 100644
--- a/chrome/browser/extensions/extension_webnavigation_api.cc
+++ b/chrome/browser/extensions/extension_webnavigation_api.cc
@@ -40,6 +40,11 @@ int GetFrameId(ProvisionalLoadDetails* details) {
return details->main_frame() ? 0 : static_cast<int>(details->frame_id());
}
+// Returns |time| as milliseconds since the epoch.
+double MilliSecondsFromTime(const base::Time& time) {
+ return 1000 * time.ToDoubleT();
+}
+
// Dispatches events to the extension message service.
void DispatchEvent(Profile* profile,
const char* event_name,
@@ -62,6 +67,7 @@ void DispatchOnBeforeNavigate(NavigationController* controller,
dict->SetInteger(keys::kFrameIdKey, GetFrameId(details));
dict->SetString(keys::kRequestIdKey,
base::Uint64ToString(request_id));
+ dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;
@@ -89,6 +95,7 @@ void DispatchOnCommitted(NavigationController* controller,
if (details->transition_type() & PageTransition::FORWARD_BACK)
qualifiers->Append(Value::CreateStringValue("forward_back"));
dict->Set(keys::kTransitionQualifiersKey, qualifiers);
+ dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;
@@ -108,6 +115,7 @@ void DispatchOnDOMContentLoaded(NavigationController* controller,
dict->SetString(keys::kUrlKey, url.spec());
dict->SetInteger(keys::kFrameIdKey,
is_main_frame ? 0 : static_cast<int>(frame_id));
+ dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;
@@ -127,6 +135,7 @@ void DispatchOnCompleted(NavigationController* controller,
dict->SetString(keys::kUrlKey, url.spec());
dict->SetInteger(keys::kFrameIdKey,
is_main_frame ? 0 : static_cast<int>(frame_id));
+ dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;
@@ -353,6 +362,7 @@ void ExtensionWebNavigationEventRouter::FailProvisionalLoadWithError(
dict->SetInteger(keys::kFrameIdKey, GetFrameId(details));
dict->SetString(keys::kErrorKey,
std::string(net::ErrorToString(details->error_code())));
+ dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;
@@ -371,6 +381,7 @@ void ExtensionWebNavigationEventRouter::CreatingNewWindow(
dict->SetString(keys::kSourceUrlKey, details->opener_url.spec());
dict->SetString(keys::kUrlKey,
details->target_url.possibly_invalid_spec());
+ dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;