diff --git a/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.cpp b/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.cpp index 2ab16145754..6aa0b5a9eb4 100644 --- a/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.cpp +++ b/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.cpp @@ -493,7 +493,7 @@ HRESULT STDMETHODCALLTYPE nsURLDataCallback::OnStopBinding( } else { - pbindinfo->dwBindVerb = BINDVERB_GET; + pbindinfo->dwBindVerb = BINDVERB_GET; } return S_OK ; @@ -601,3 +601,38 @@ HRESULT STDMETHODCALLTYPE nsURLDataCallback::OnObjectAvailable( { return S_OK; } + +/////////////////////////////////////////////////////////////////////////////// +// IAuthenticate implementation + +HRESULT STDMETHODCALLTYPE nsURLDataCallback::Authenticate( + /* [out] */ HWND __RPC_FAR *phwnd, + /* [out] */ LPWSTR __RPC_FAR *pszUsername, + /* [out] */ LPWSTR __RPC_FAR *pszPassword) +{ + ATLTRACE(_T("nsURLDataCallback::Authenticate()\n")); + + // Caller wants to pose a password dialog so get a parent HWND for it. + *phwnd = HWND_DESKTOP; + if (m_pOwner) + { + *phwnd = m_pOwner->m_hWnd; + CComPtr cpBrowser; + m_pOwner->GetWebBrowserApp(&cpBrowser); + if (cpBrowser) + { + long hwnd = NULL; + cpBrowser->get_HWND(&hwnd); + if (hwnd) + { + *phwnd = (HWND) hwnd; + } + } + } + + // Caller will figure these out for itself + *pszUsername = NULL; + *pszPassword = NULL; + + return S_OK; +} diff --git a/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.h b/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.h index 1634e95cfef..6f8a67ae85b 100644 --- a/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.h +++ b/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.h @@ -95,18 +95,20 @@ struct _WriteData ///////////////////////////////////////////////////////////////////////////// // nsURLDataCallback class ATL_NO_VTABLE nsURLDataCallback : - public CComObjectRootEx, + public CComObjectRootEx, public CWindowImpl, - public CComCoClass, - public IBindStatusCallback + public CComCoClass, + public IBindStatusCallback, + public IAuthenticate { public: - nsURLDataCallback(); + nsURLDataCallback(); DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(nsURLDataCallback) - COM_INTERFACE_ENTRY(IBindStatusCallback) + COM_INTERFACE_ENTRY(IBindStatusCallback) + COM_INTERFACE_ENTRY(IAuthenticate) END_COM_MAP() DECLARE_WND_CLASS(_T("MozStreamWindow")) @@ -206,6 +208,13 @@ public: virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable( /* [in] */ REFIID riid, /* [iid_is][in] */ IUnknown __RPC_FAR *punk); + +// IAuthenticate +public: + virtual HRESULT STDMETHODCALLTYPE Authenticate( + /* [out] */ HWND __RPC_FAR *phwnd, + /* [out] */ LPWSTR __RPC_FAR *pszUsername, + /* [out] */ LPWSTR __RPC_FAR *pszPassword); }; #endif //__NSURLDATACALLBACK_H_