| Index: chrome_frame/bho.cc
|
| ===================================================================
|
| --- chrome_frame/bho.cc (revision 41168)
|
| +++ chrome_frame/bho.cc (working copy)
|
| @@ -94,23 +94,28 @@
|
| STDMETHODIMP Bho::BeforeNavigate2(IDispatch* dispatch, VARIANT* url,
|
| VARIANT* flags, VARIANT* target_frame_name, VARIANT* post_data,
|
| VARIANT* headers, VARIANT_BOOL* cancel) {
|
| + if (!url || url->vt != VT_BSTR || url->bstrVal == NULL) {
|
| + DLOG(WARNING) << "Invalid URL passed in";
|
| + return S_OK;
|
| + }
|
| +
|
| ScopedComPtr<IWebBrowser2> web_browser2;
|
| if (dispatch)
|
| web_browser2.QueryFrom(dispatch);
|
|
|
| - if (!web_browser2 || url->vt != VT_BSTR) {
|
| + if (!web_browser2) {
|
| NOTREACHED() << "Can't find WebBrowser2 with given dispatch";
|
| - } else {
|
| - DLOG(INFO) << "BeforeNavigate2: " << url->bstrVal;
|
| - ScopedComPtr<IBrowserService> browser_service;
|
| - DoQueryService(SID_SShellBrowser, web_browser2, browser_service.Receive());
|
| - if (!browser_service || !CheckForCFNavigation(browser_service, false)) {
|
| - referrer_.clear();
|
| - }
|
| - url_ = url->bstrVal;
|
| - ProcessOptInUrls(web_browser2, url->bstrVal);
|
| + return S_OK;
|
| }
|
|
|
| + DLOG(INFO) << "BeforeNavigate2: " << url->bstrVal;
|
| + ScopedComPtr<IBrowserService> browser_service;
|
| + DoQueryService(SID_SShellBrowser, web_browser2, browser_service.Receive());
|
| + if (!browser_service || !CheckForCFNavigation(browser_service, false)) {
|
| + referrer_.clear();
|
| + }
|
| + url_ = url->bstrVal;
|
| + ProcessOptInUrls(web_browser2, url->bstrVal);
|
| return S_OK;
|
| }
|
|
|
|
|