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

Unified Diff: ceee/ie/plugin/bho/web_progress_notifier.cc

Issue 4989002: Firing event to broker without worker thread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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: 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());

Powered by Google App Engine
This is Rietveld 408576698