Index: chrome/browser/extensions/extension_webnavigation_api.cc |
=================================================================== |
--- chrome/browser/extensions/extension_webnavigation_api.cc (revision 59641) |
+++ chrome/browser/extensions/extension_webnavigation_api.cc (working copy) |
@@ -13,11 +13,9 @@ |
#include "chrome/browser/extensions/extension_tabs_module.h" |
#include "chrome/browser/extensions/extension_webnavigation_api_constants.h" |
#include "chrome/browser/profile.h" |
-#include "chrome/browser/tab_contents/navigation_controller.h" |
-#include "chrome/browser/tab_contents/provisional_load_details.h" |
+#include "chrome/browser/tab_contents/navigation_entry.h" |
#include "chrome/common/notification_type.h" |
#include "chrome/common/notification_service.h" |
-#include "net/base/net_errors.h" |
namespace keys = extension_webnavigation_api_constants; |
@@ -30,14 +28,8 @@ |
void ExtensionWebNavigationEventRouter::Init() { |
if (registrar_.IsEmpty()) { |
registrar_.Add(this, |
- NotificationType::FRAME_PROVISIONAL_LOAD_START, |
+ NotificationType::NAV_ENTRY_COMMITTED, |
NotificationService::AllSources()); |
- registrar_.Add(this, |
- NotificationType::FRAME_PROVISIONAL_LOAD_COMMITTED, |
- NotificationService::AllSources()); |
- registrar_.Add(this, |
- NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR, |
- NotificationService::AllSources()); |
} |
} |
@@ -46,64 +38,35 @@ |
const NotificationSource& source, |
const NotificationDetails& details) { |
switch (type.value) { |
- case NotificationType::FRAME_PROVISIONAL_LOAD_START: |
- FrameProvisionalLoadStart( |
+ case NotificationType::NAV_ENTRY_COMMITTED: |
+ NavEntryCommitted( |
Source<NavigationController>(source).ptr(), |
- Details<ProvisionalLoadDetails>(details).ptr()); |
+ Details<NavigationController::LoadCommittedDetails>(details).ptr()); |
break; |
- case NotificationType::FRAME_PROVISIONAL_LOAD_COMMITTED: |
- FrameProvisionalLoadCommitted( |
- Source<NavigationController>(source).ptr(), |
- Details<ProvisionalLoadDetails>(details).ptr()); |
- break; |
- case NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR: |
- FailProvisionalLoadWithError( |
- Source<NavigationController>(source).ptr(), |
- Details<ProvisionalLoadDetails>(details).ptr()); |
- break; |
default: |
NOTREACHED(); |
} |
} |
-void ExtensionWebNavigationEventRouter::FrameProvisionalLoadStart( |
- NavigationController* controller, |
- ProvisionalLoadDetails* details) { |
- ListValue args; |
- DictionaryValue* dict = new DictionaryValue(); |
- dict->SetInteger(keys::kTabIdKey, |
- ExtensionTabUtil::GetTabId(controller->tab_contents())); |
- dict->SetString(keys::kUrlKey, |
- details->url().spec()); |
- dict->SetInteger(keys::kFrameIdKey, 0); |
- dict->SetInteger(keys::kRequestIdKey, 0); |
- dict->SetReal(keys::kTimeStampKey, |
- (base::Time::Now() - base::Time::UnixEpoch()).InMilliseconds()); |
- args.Append(dict); |
- std::string json_args; |
- base::JSONWriter::Write(&args, false, &json_args); |
- DispatchEvent(controller->profile(), keys::kOnBeforeNavigate, json_args); |
-} |
- |
-void ExtensionWebNavigationEventRouter::FrameProvisionalLoadCommitted( |
+void ExtensionWebNavigationEventRouter::NavEntryCommitted( |
NavigationController* controller, |
- ProvisionalLoadDetails* details) { |
+ NavigationController::LoadCommittedDetails* details) { |
ListValue args; |
DictionaryValue* dict = new DictionaryValue(); |
dict->SetInteger(keys::kTabIdKey, |
ExtensionTabUtil::GetTabId(controller->tab_contents())); |
dict->SetString(keys::kUrlKey, |
- details->url().spec()); |
- dict->SetInteger(keys::kFrameIdKey, 0); |
+ details->entry->url().spec()); |
+ dict->SetInteger(keys::kFrameIdKey, |
+ details->is_main_frame ? 0 : details->entry->page_id()); |
dict->SetString(keys::kTransitionTypeKey, |
PageTransition::CoreTransitionString( |
- details->transition_type())); |
+ details->entry->transition_type())); |
dict->SetString(keys::kTransitionQualifiersKey, |
PageTransition::QualifierString( |
- details->transition_type())); |
- dict->SetReal(keys::kTimeStampKey, |
- (base::Time::Now() - base::Time::UnixEpoch()).InMilliseconds()); |
+ details->entry->transition_type())); |
+ dict->SetReal(keys::kTimeStampKey, base::Time::Now().ToDoubleT()); |
args.Append(dict); |
std::string json_args; |
@@ -111,27 +74,6 @@ |
DispatchEvent(controller->profile(), keys::kOnCommitted, json_args); |
} |
-void ExtensionWebNavigationEventRouter::FailProvisionalLoadWithError( |
- NavigationController* controller, |
- ProvisionalLoadDetails* details) { |
- ListValue args; |
- DictionaryValue* dict = new DictionaryValue(); |
- dict->SetInteger(keys::kTabIdKey, |
- ExtensionTabUtil::GetTabId(controller->tab_contents())); |
- dict->SetString(keys::kUrlKey, |
- details->url().spec()); |
- dict->SetInteger(keys::kFrameIdKey, 0); |
- dict->SetString(keys::kErrorKey, |
- std::string(net::ErrorToString(details->error_code()))); |
- dict->SetReal(keys::kTimeStampKey, |
- (base::Time::Now() - base::Time::UnixEpoch()).InMilliseconds()); |
- args.Append(dict); |
- |
- std::string json_args; |
- base::JSONWriter::Write(&args, false, &json_args); |
- DispatchEvent(controller->profile(), keys::kOnErrorOccurred, json_args); |
-} |
- |
void ExtensionWebNavigationEventRouter::DispatchEvent( |
Profile* profile, |
const char* event_name, |