| Index: chrome_frame/test/chrome_frame_unittests.h
|
| ===================================================================
|
| --- chrome_frame/test/chrome_frame_unittests.h (revision 34059)
|
| +++ chrome_frame/test/chrome_frame_unittests.h (working copy)
|
| @@ -104,132 +104,5 @@
|
| ChromeFrameHTTPServer server_;
|
| };
|
|
|
| -// This class sets up event sinks to the IWebBrowser interface. Currently it
|
| -// subscribes to the following events:-
|
| -// 1. DISPID_BEFORENAVIGATE2
|
| -// 2. DISPID_NAVIGATEERROR
|
| -// 3. DISPID_NAVIGATECOMPLETE2
|
| -// 4. DISPID_NEWWINDOW3
|
| -// Other events can be subscribed to on an if needed basis.
|
| -class WebBrowserEventSink
|
| - : public CComObjectRootEx<CComSingleThreadModel>,
|
| - public IDispEventSimpleImpl<0, WebBrowserEventSink,
|
| - &DIID_DWebBrowserEvents2> {
|
| - public:
|
| - typedef IDispEventSimpleImpl<0, WebBrowserEventSink,
|
| - &DIID_DWebBrowserEvents2> DispEventsImpl;
|
| - WebBrowserEventSink()
|
| - : ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - onmessage_(this, &WebBrowserEventSink::OnMessageInternal)),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - onloaderror_(this, &WebBrowserEventSink::OnLoadErrorInternal)),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - onload_(this, &WebBrowserEventSink::OnLoadInternal)) {
|
| - }
|
| -
|
| - ~WebBrowserEventSink() {
|
| - Uninitialize();
|
| - }
|
| -
|
| - void Uninitialize();
|
| -
|
| - // Helper function to launch IE and navigate to a URL.
|
| - // Returns S_OK on success, S_FALSE if the test was not run, other
|
| - // errors on failure.
|
| - HRESULT LaunchIEAndNavigate(const std::wstring& navigate_url);
|
| -
|
| - HRESULT Navigate(const std::wstring& navigate_url);
|
| -
|
| - // Set input focus to chrome frame window.
|
| - void SetFocusToChrome();
|
| -
|
| - // Send keyboard input to the renderer window hosted in chrome using
|
| - // SendInput API
|
| - void SendInputToChrome(const std::string& input_string);
|
| -
|
| -BEGIN_COM_MAP(WebBrowserEventSink)
|
| -END_COM_MAP()
|
| -
|
| -BEGIN_SINK_MAP(WebBrowserEventSink)
|
| - SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2,
|
| - OnBeforeNavigate2Internal, &kBeforeNavigate2Info)
|
| - SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_DOWNLOADBEGIN,
|
| - OnDownloadBegin, &kVoidMethodInfo)
|
| - SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2,
|
| - OnNavigateComplete2Internal, &kNavigateComplete2Info)
|
| - SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NAVIGATEERROR,
|
| - OnNavigateError, &kNavigateErrorInfo)
|
| - SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NEWWINDOW3,
|
| - OnNewWindow3, &kNewWindow3Info)
|
| -END_SINK_MAP()
|
| -
|
| - STDMETHOD_(void, OnNavigateError)(IDispatch* dispatch, VARIANT* url,
|
| - VARIANT* frame_name, VARIANT* status_code,
|
| - VARIANT* cancel) {
|
| - DLOG(INFO) << __FUNCTION__;
|
| - }
|
| -
|
| - STDMETHOD(OnBeforeNavigate2)(IDispatch* dispatch, VARIANT* url, VARIANT*
|
| - flags, VARIANT* target_frame_name,
|
| - VARIANT* post_data, VARIANT* headers,
|
| - VARIANT_BOOL* cancel) {
|
| - return S_OK;
|
| - }
|
| -
|
| - STDMETHOD(OnBeforeNavigate2Internal)(IDispatch* dispatch, VARIANT* url,
|
| - VARIANT* flags,
|
| - VARIANT* target_frame_name,
|
| - VARIANT* post_data, VARIANT* headers,
|
| - VARIANT_BOOL* cancel);
|
| - STDMETHOD_(void, OnDownloadBegin)() {}
|
| - STDMETHOD_(void, OnNavigateComplete2Internal)(IDispatch* dispatch,
|
| - VARIANT* url);
|
| - STDMETHOD_(void, OnNavigateComplete2)(IDispatch* dispatch, VARIANT* url) {}
|
| - STDMETHOD_(void, OnNewWindow3)(IDispatch** dispatch, VARIANT_BOOL* Cancel,
|
| - DWORD flags, BSTR url_context, BSTR url) {}
|
| -
|
| -#ifdef _DEBUG
|
| - STDMETHOD(Invoke)(DISPID dispid, REFIID riid,
|
| - LCID lcid, WORD flags, DISPPARAMS* params, VARIANT* result,
|
| - EXCEPINFO* except_info, UINT* arg_error) {
|
| - DLOG(INFO) << __FUNCTION__ << L" disp id :" << dispid;
|
| - return DispEventsImpl::Invoke(dispid, riid, lcid, flags, params, result,
|
| - except_info, arg_error);
|
| - }
|
| -#endif // _DEBUG
|
| -
|
| - // Chrome frame callbacks
|
| - virtual void OnLoad(const wchar_t* url) {}
|
| - virtual void OnLoadError(const wchar_t* url) {}
|
| - virtual void OnMessage(const wchar_t* message) {}
|
| -
|
| - IWebBrowser2* web_browser2() {
|
| - return web_browser2_.get();
|
| - }
|
| -
|
| - protected:
|
| - // IChromeFrame callbacks
|
| - HRESULT OnLoadInternal(const VARIANT* param);
|
| - HRESULT OnLoadErrorInternal(const VARIANT* param);
|
| - HRESULT OnMessageInternal(const VARIANT* param);
|
| -
|
| - void ConnectToChromeFrame();
|
| - HWND GetChromeRendererWindow();
|
| -
|
| - public:
|
| - ScopedComPtr<IWebBrowser2> web_browser2_;
|
| - ScopedComPtr<IChromeFrame> chrome_frame_;
|
| - DispCallback<WebBrowserEventSink> onmessage_;
|
| - DispCallback<WebBrowserEventSink> onloaderror_;
|
| - DispCallback<WebBrowserEventSink> onload_;
|
| -
|
| - protected:
|
| - static _ATL_FUNC_INFO kBeforeNavigate2Info;
|
| - static _ATL_FUNC_INFO kNavigateComplete2Info;
|
| - static _ATL_FUNC_INFO kNavigateErrorInfo;
|
| - static _ATL_FUNC_INFO kNewWindow3Info;
|
| - static _ATL_FUNC_INFO kVoidMethodInfo;
|
| -};
|
| -
|
| #endif // CHROME_FRAME_TEST_CHROME_FRAME_UNITTESTS_H_
|
|
|
|
|