Index: chrome_frame/bho.h |
diff --git a/chrome_frame/bho.h b/chrome_frame/bho.h |
deleted file mode 100644 |
index 6afeb6144d9fdbcdd86dd9b6ddac16f2882af127..0000000000000000000000000000000000000000 |
--- a/chrome_frame/bho.h |
+++ /dev/null |
@@ -1,125 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_FRAME_BHO_H_ |
-#define CHROME_FRAME_BHO_H_ |
- |
-#include <atlbase.h> |
-#include <atlcom.h> |
-#include <deletebrowsinghistory.h> |
-#include <exdisp.h> |
-#include <exdispid.h> |
-#include <mshtml.h> |
-#include <shdeprecated.h> |
- |
-#include <string> |
- |
-#include "chrome_frame/chrome_tab.h" |
-#include "chrome_frame/delete_chrome_history.h" |
-#include "chrome_frame/resource.h" |
-#include "chrome_frame/urlmon_moniker.h" |
-#include "chrome_frame/urlmon_url_request.h" |
-#include "grit/chrome_frame_resources.h" |
- |
-class DeleteChromeHistory; |
- |
-class PatchHelper { |
- public: |
- enum State { UNKNOWN, PATCH_IBROWSER, PATCH_PROTOCOL, PATCH_MONIKER }; |
- PatchHelper() : state_(UNKNOWN) { |
- } |
- |
- State state() const { |
- return state_; |
- } |
- |
- // Returns true if protocols were patched, false if patching has already |
- // been done. |
- bool InitializeAndPatchProtocolsIfNeeded(); |
- |
- void PatchBrowserService(IBrowserService* p); |
- void UnpatchIfNeeded(); |
- protected: |
- State state_; |
-}; |
- |
-// Single global variable |
-extern PatchHelper g_patch_helper; |
- |
-class ATL_NO_VTABLE Bho |
- : public CComObjectRootEx<CComSingleThreadModel>, |
- public CComCoClass<Bho, &CLSID_ChromeFrameBHO>, |
- public IObjectWithSiteImpl<Bho>, |
- public IDispEventSimpleImpl<0, Bho, &DIID_DWebBrowserEvents2>, |
- public NavigationManager { |
- public: |
- typedef HRESULT (STDMETHODCALLTYPE* IBrowserService_OnHttpEquiv_Fn)( |
- IBrowserService* browser, IShellView* shell_view, BOOL done, |
- VARIANT* in_arg, VARIANT* out_arg); |
- |
-DECLARE_GET_CONTROLLING_UNKNOWN() |
-DECLARE_REGISTRY_RESOURCEID(IDR_BHO) |
-DECLARE_NOT_AGGREGATABLE(Bho) |
-DECLARE_PROTECT_FINAL_CONSTRUCT() |
- |
-BEGIN_COM_MAP(Bho) |
- COM_INTERFACE_ENTRY(IObjectWithSite) |
- // When calling DeleteChromeHistory, ensure that only one instance |
- // is created to avoid mulitple message loops. |
- COM_INTERFACE_ENTRY_CACHED_TEAR_OFF(IID_IDeleteBrowsingHistory, |
- DeleteChromeHistory, |
- delete_chrome_history_.p) |
-END_COM_MAP() |
- |
-BEGIN_SINK_MAP(Bho) |
- SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2, |
- BeforeNavigate2, &kBeforeNavigate2Info) |
- SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2, |
- NavigateComplete2, &kNavigateComplete2Info) |
- SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_DOCUMENTCOMPLETE, |
- DocumentComplete, &kDocumentCompleteInfo) |
-END_SINK_MAP() |
- |
- Bho(); |
- |
- HRESULT FinalConstruct(); |
- void FinalRelease(); |
- |
- // IObjectWithSite |
- STDMETHODIMP SetSite(IUnknown* site); |
- |
- // WebBrowser2 event sinks. |
- STDMETHOD(BeforeNavigate2)(IDispatch* dispatch, VARIANT* url, VARIANT* flags, |
- VARIANT* target_frame_name, VARIANT* post_data, VARIANT* headers, |
- VARIANT_BOOL* cancel); |
- STDMETHOD_(void, NavigateComplete2)(IDispatch* dispatch, VARIANT* url); |
- STDMETHOD_(void, DocumentComplete)(IDispatch* dispatch, VARIANT* url); |
- |
- // mshtml sends an IOleCommandTarget::Exec of OLECMDID_HTTPEQUIV |
- // (and OLECMDID_HTTPEQUIV_DONE) as soon as it parses a meta tag. |
- // It also sends contents of the meta tag as an argument. IEFrame |
- // handles this in IBrowserService::OnHttpEquiv. So this allows |
- // us to sniff the META tag by simply patching it. The renderer |
- // switching can be achieved by canceling original navigation |
- // and issuing a new one using IWebBrowser2->Navigate2. |
- static HRESULT STDMETHODCALLTYPE OnHttpEquiv( |
- IBrowserService_OnHttpEquiv_Fn original_httpequiv, |
- IBrowserService* browser, IShellView* shell_view, BOOL done, |
- VARIANT* in_arg, VARIANT* out_arg); |
- |
- static void ProcessOptInUrls(IWebBrowser2* browser, BSTR url); |
- |
- // COM_INTERFACE_ENTRY_CACHED_TEAR_OFF manages the raw pointer from CComPtr |
- // which base::win::ScopedComPtr doesn't expose. |
- CComPtr<IUnknown> delete_chrome_history_; |
- |
- protected: |
- bool PatchProtocolHandler(const CLSID& handler_clsid); |
- |
- static _ATL_FUNC_INFO kBeforeNavigate2Info; |
- static _ATL_FUNC_INFO kNavigateComplete2Info; |
- static _ATL_FUNC_INFO kDocumentCompleteInfo; |
-}; |
- |
-#endif // CHROME_FRAME_BHO_H_ |