diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-11 08:06:02 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-11 08:06:02 +0000 |
commit | 1087a763ae4366d681d176e101d9cf029e63e0be (patch) | |
tree | 9a9020164e445bcbbbb6ddfef925121106d4f4f9 /chrome/browser/extensions/extension_webnavigation_api.cc | |
parent | 43d3bf86f38f57be9be0e9a90fcdb8dff9b62f59 (diff) | |
download | chromium_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.cc | 11 |
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; |