Index: ceee/ie/plugin/bho/web_progress_notifier.cc |
=================================================================== |
--- ceee/ie/plugin/bho/web_progress_notifier.cc (revision 66617) |
+++ ceee/ie/plugin/bho/web_progress_notifier.cc (working copy) |
@@ -9,6 +9,7 @@ |
#include "base/string_util.h" |
#include "ceee/common/com_utils.h" |
#include "ceee/ie/plugin/bho/dom_utils.h" |
+#include "ceee/ie/plugin/bho/webnavigation_events_funnel.h" |
namespace { |
@@ -121,8 +122,11 @@ |
return; |
// TODO(yzshen@google.com): add support for requestId. |
- HRESULT hr = webnavigation_events_funnel().OnBeforeNavigate( |
- tab_handle_, url, frame_info->frame_id, -1, base::Time::Now()); |
+ HRESULT hr = E_POINTER; |
+ if (webnavigation_events_funnel()) { |
Sigurður Ásgeirsson
2010/11/19 18:29:30
retrieve pointer to a local and DCHECK? If this is
Vitaly Buka corp
2010/11/19 20:30:38
Done.
|
+ hr = webnavigation_events_funnel()->OnBeforeNavigate( |
+ tab_handle_, url, frame_info->frame_id, -1, base::Time::Now()); |
+ } |
DCHECK(SUCCEEDED(hr)) |
<< "Failed to fire the webNavigation.onBeforeNavigate event " |
<< com::LogHr(hr); |
@@ -190,8 +194,11 @@ |
HasPotentialJavaScriptRedirect(browser); |
} |
- HRESULT hr = webnavigation_events_funnel().OnCompleted( |
- tab_handle_, url, frame_info->frame_id, base::Time::Now()); |
+ HRESULT hr = E_POINTER; |
+ if (webnavigation_events_funnel()) { |
+ hr = webnavigation_events_funnel()->OnCompleted( |
+ tab_handle_, url, frame_info->frame_id, base::Time::Now()); |
+ } |
DCHECK(SUCCEEDED(hr)) << "Failed to fire the webNavigation.onCompleted event " |
<< com::LogHr(hr); |
} |
@@ -230,11 +237,14 @@ |
} |
} |
- HRESULT hr = webnavigation_events_funnel().OnCommitted( |
+ HRESULT hr = E_POINTER; |
+ if (webnavigation_events_funnel()) { |
+ hr = webnavigation_events_funnel()->OnCommitted( |
tab_handle_, url, frame_info->frame_id, |
PageTransition::CoreTransitionString(frame_info->transition_type), |
TransitionQualifiersString(frame_info->transition_qualifiers).c_str(), |
timestamp); |
+ } |
DCHECK(SUCCEEDED(hr)) << "Failed to fire the webNavigation.onCommitted event " |
<< com::LogHr(hr); |
@@ -254,8 +264,11 @@ |
if (!GetFrameInfo(browser, &frame_info)) |
return; |
- HRESULT hr = webnavigation_events_funnel().OnErrorOccurred( |
- tab_handle_, url, frame_info->frame_id, CComBSTR(L""), base::Time::Now()); |
+ HRESULT hr = E_POINTER; |
+ if (webnavigation_events_funnel()) { |
+ hr = webnavigation_events_funnel()->OnErrorOccurred(tab_handle_, url, |
+ frame_info->frame_id, CComBSTR(L""), base::Time::Now()); |
+ } |
DCHECK(SUCCEEDED(hr)) |
<< "Failed to fire the webNavigation.onErrorOccurred event " |
<< com::LogHr(hr); |
@@ -268,8 +281,11 @@ |
if (FilterOutWebBrowserEvent(NULL, FilteringInfo::NEW_WINDOW)) |
return; |
- HRESULT hr = webnavigation_events_funnel().OnBeforeRetarget( |
- tab_handle_, url_context, url, base::Time::Now()); |
+ HRESULT hr = E_POINTER; |
+ if (webnavigation_events_funnel()) { |
+ hr = webnavigation_events_funnel()->OnBeforeRetarget(tab_handle_, |
+ url_context, url, base::Time::Now()); |
+ } |
DCHECK(SUCCEEDED(hr)) |
<< "Failed to fire the webNavigation.onBeforeRetarget event " |
<< com::LogHr(hr); |
@@ -305,6 +321,19 @@ |
} |
} |
+WebNavigationEventsFunnel* WebProgressNotifier::webnavigation_events_funnel() { |
+ if (!webnavigation_events_funnel_.get()) |
+ webnavigation_events_funnel_.reset(new WebNavigationEventsFunnel()); |
+ return webnavigation_events_funnel_.get(); |
+} |
+ |
+WebRequestNotifier* WebProgressNotifier::webrequest_notifier() { |
+ if (cached_webrequest_notifier_ == NULL) { |
+ cached_webrequest_notifier_ = ProductionWebRequestNotifier::get(); |
+ } |
+ return cached_webrequest_notifier_; |
+} |
+ |
WindowMessageSource* WebProgressNotifier::CreateWindowMessageSource() { |
scoped_ptr<WindowMessageSource> source(new WindowMessageSource()); |