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,13 @@ |
| 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; |
| + WebNavigationEventsFunnel* funel = webnavigation_events_funnel(); |
|
Sigurður Ásgeirsson
2010/11/19 20:53:20
nit: funel -> funnel
|
| + DCHECK(funel != NULL); |
| + if (funel) { |
| + hr = funel->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 +196,13 @@ |
| HasPotentialJavaScriptRedirect(browser); |
| } |
| - HRESULT hr = webnavigation_events_funnel().OnCompleted( |
| - tab_handle_, url, frame_info->frame_id, base::Time::Now()); |
| + HRESULT hr = E_POINTER; |
| + WebNavigationEventsFunnel* funel = webnavigation_events_funnel(); |
|
Sigurður Ásgeirsson
2010/11/19 20:53:20
ditto.
Vitaly Buka corp
2010/11/19 21:21:28
Done.
|
| + DCHECK(funel != NULL); |
| + if (funel) { |
| + hr = funel->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 +241,16 @@ |
| } |
| } |
| - HRESULT hr = webnavigation_events_funnel().OnCommitted( |
| + HRESULT hr = E_POINTER; |
| + WebNavigationEventsFunnel* funel = webnavigation_events_funnel(); |
| + DCHECK(funel != NULL); |
| + if (funel) { |
| + hr = funel->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 +270,13 @@ |
| 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; |
| + WebNavigationEventsFunnel* funel = webnavigation_events_funnel(); |
|
Sigurður Ásgeirsson
2010/11/19 20:53:20
et al.
|
| + DCHECK(funel != NULL); |
| + if (funel) { |
| + hr = funel->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 +289,13 @@ |
| 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; |
| + WebNavigationEventsFunnel* funel = webnavigation_events_funnel(); |
| + DCHECK(funel != NULL); |
| + if (funel) { |
| + hr = funel->OnBeforeRetarget(tab_handle_, url_context, url, |
| + base::Time::Now()); |
| + } |
| DCHECK(SUCCEEDED(hr)) |
| << "Failed to fire the webNavigation.onBeforeRetarget event " |
| << com::LogHr(hr); |
| @@ -305,6 +331,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()); |