Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1200)

Unified Diff: chrome/browser/extensions/extension_webnavigation_api.cc

Issue 3561008: Implement the frame id required for the web navigation api. (Closed)
Patch Set: updates Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_webnavigation_api.cc
diff --git a/chrome/browser/extensions/extension_webnavigation_api.cc b/chrome/browser/extensions/extension_webnavigation_api.cc
index 589d5b63077db74685d570f885c718db7ce805bb..6281a06e5fd066338fb03aa4230117fc916d5b97 100644
--- a/chrome/browser/extensions/extension_webnavigation_api.cc
+++ b/chrome/browser/extensions/extension_webnavigation_api.cc
@@ -21,6 +21,21 @@
namespace keys = extension_webnavigation_api_constants;
+namespace {
+
+// Returns 0 if the navigation happens in the main frame, or the frame ID
+// modulo 32 bits otherwise.
+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();
+}
+
+} // namespace
+
// static
ExtensionWebNavigationEventRouter*
ExtensionWebNavigationEventRouter::GetInstance() {
@@ -75,11 +90,9 @@ void ExtensionWebNavigationEventRouter::FrameProvisionalLoadStart(
ExtensionTabUtil::GetTabId(controller->tab_contents()));
dict->SetString(keys::kUrlKey,
details->url().spec());
- dict->SetInteger(keys::kFrameIdKey, 0);
+ dict->SetInteger(keys::kFrameIdKey, GetFrameId(details));
dict->SetInteger(keys::kRequestIdKey, 0);
- dict->SetReal(keys::kTimeStampKey,
- static_cast<double>(
- (base::Time::Now() - base::Time::UnixEpoch()).InMilliseconds()));
+ dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;
@@ -96,16 +109,14 @@ void ExtensionWebNavigationEventRouter::FrameProvisionalLoadCommitted(
ExtensionTabUtil::GetTabId(controller->tab_contents()));
dict->SetString(keys::kUrlKey,
details->url().spec());
- dict->SetInteger(keys::kFrameIdKey, 0);
+ dict->SetInteger(keys::kFrameIdKey, GetFrameId(details));
dict->SetString(keys::kTransitionTypeKey,
PageTransition::CoreTransitionString(
details->transition_type()));
dict->SetString(keys::kTransitionQualifiersKey,
PageTransition::QualifierString(
details->transition_type()));
- dict->SetReal(keys::kTimeStampKey,
- static_cast<double>(
- (base::Time::Now() - base::Time::UnixEpoch()).InMilliseconds()));
+ dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;
@@ -122,12 +133,10 @@ void ExtensionWebNavigationEventRouter::FailProvisionalLoadWithError(
ExtensionTabUtil::GetTabId(controller->tab_contents()));
dict->SetString(keys::kUrlKey,
details->url().spec());
- dict->SetInteger(keys::kFrameIdKey, 0);
+ dict->SetInteger(keys::kFrameIdKey, GetFrameId(details));
dict->SetString(keys::kErrorKey,
std::string(net::ErrorToString(details->error_code())));
- dict->SetReal(keys::kTimeStampKey,
- static_cast<double>(
- (base::Time::Now() - base::Time::UnixEpoch()).InMilliseconds()));
+ dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
args.Append(dict);
std::string json_args;
« no previous file with comments | « chrome/browser/extensions/extension_webnavigation_api.h ('k') | chrome/browser/renderer_host/render_view_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698