Chromium Code Reviews| 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()); |