| OLD | NEW | 
|---|
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef CHROME_FRAME_BHO_H_ | 5 #ifndef CHROME_FRAME_BHO_H_ | 
| 6 #define CHROME_FRAME_BHO_H_ | 6 #define CHROME_FRAME_BHO_H_ | 
| 7 | 7 | 
| 8 #include <atlbase.h> | 8 #include <atlbase.h> | 
| 9 #include <atlcom.h> | 9 #include <atlcom.h> | 
| 10 #include <deletebrowsinghistory.h> |  | 
| 11 #include <exdisp.h> | 10 #include <exdisp.h> | 
| 12 #include <exdispid.h> | 11 #include <exdispid.h> | 
| 13 #include <mshtml.h> | 12 #include <mshtml.h> | 
| 14 #include <shdeprecated.h> | 13 #include <shdeprecated.h> | 
| 15 | 14 | 
| 16 #include <string> | 15 #include <string> | 
| 17 | 16 | 
| 18 #include "base/scoped_comptr_win.h" | 17 #include "base/scoped_comptr_win.h" | 
| 19 #include "chrome_tab.h"  // NOLINT | 18 #include "chrome_tab.h"  // NOLINT | 
| 20 #include "chrome_frame/delete_chrome_history.h" |  | 
| 21 #include "chrome_frame/resource.h" | 19 #include "chrome_frame/resource.h" | 
| 22 #include "chrome_frame/urlmon_moniker.h" | 20 #include "chrome_frame/urlmon_moniker.h" | 
| 23 #include "chrome_frame/urlmon_url_request.h" | 21 #include "chrome_frame/urlmon_url_request.h" | 
| 24 #include "grit/chrome_frame_resources.h" | 22 #include "grit/chrome_frame_resources.h" | 
| 25 | 23 | 
| 26 class DeleteChromeHistory; |  | 
| 27 |  | 
| 28 class PatchHelper { | 24 class PatchHelper { | 
| 29  public: | 25  public: | 
| 30   enum State { UNKNOWN, PATCH_IBROWSER, PATCH_PROTOCOL }; | 26   enum State { UNKNOWN, PATCH_IBROWSER, PATCH_PROTOCOL }; | 
| 31   PatchHelper() : state_(UNKNOWN) { | 27   PatchHelper() : state_(UNKNOWN) { | 
| 32   } | 28   } | 
| 33 | 29 | 
| 34   State state() const { | 30   State state() const { | 
| 35     return state_; | 31     return state_; | 
| 36   } | 32   } | 
| 37 | 33 | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 52   : public CComObjectRootEx<CComSingleThreadModel>, | 48   : public CComObjectRootEx<CComSingleThreadModel>, | 
| 53     public CComCoClass<Bho, &CLSID_ChromeFrameBHO>, | 49     public CComCoClass<Bho, &CLSID_ChromeFrameBHO>, | 
| 54     public IObjectWithSiteImpl<Bho>, | 50     public IObjectWithSiteImpl<Bho>, | 
| 55     public IDispEventSimpleImpl<0, Bho, &DIID_DWebBrowserEvents2>, | 51     public IDispEventSimpleImpl<0, Bho, &DIID_DWebBrowserEvents2>, | 
| 56     public NavigationManager { | 52     public NavigationManager { | 
| 57  public: | 53  public: | 
| 58   typedef HRESULT (STDMETHODCALLTYPE* IBrowserService_OnHttpEquiv_Fn)( | 54   typedef HRESULT (STDMETHODCALLTYPE* IBrowserService_OnHttpEquiv_Fn)( | 
| 59       IBrowserService* browser, IShellView* shell_view, BOOL done, | 55       IBrowserService* browser, IShellView* shell_view, BOOL done, | 
| 60       VARIANT* in_arg, VARIANT* out_arg); | 56       VARIANT* in_arg, VARIANT* out_arg); | 
| 61 | 57 | 
| 62 DECLARE_GET_CONTROLLING_UNKNOWN() |  | 
| 63 DECLARE_REGISTRY_RESOURCEID(IDR_BHO) | 58 DECLARE_REGISTRY_RESOURCEID(IDR_BHO) | 
| 64 DECLARE_NOT_AGGREGATABLE(Bho) | 59 DECLARE_NOT_AGGREGATABLE(Bho) | 
| 65 DECLARE_PROTECT_FINAL_CONSTRUCT() | 60 DECLARE_PROTECT_FINAL_CONSTRUCT() | 
| 66 | 61 | 
| 67 BEGIN_COM_MAP(Bho) | 62 BEGIN_COM_MAP(Bho) | 
| 68   COM_INTERFACE_ENTRY(IObjectWithSite) | 63   COM_INTERFACE_ENTRY(IObjectWithSite) | 
| 69   // When calling DeleteChromeHistory, ensure that only one instance |  | 
| 70   // is created to avoid mulitple message loops. |  | 
| 71   COM_INTERFACE_ENTRY_CACHED_TEAR_OFF(IID_IDeleteBrowsingHistory, |  | 
| 72                                       DeleteChromeHistory, |  | 
| 73                                       delete_chrome_history_.p) |  | 
| 74 END_COM_MAP() | 64 END_COM_MAP() | 
| 75 | 65 | 
| 76 BEGIN_SINK_MAP(Bho) | 66 BEGIN_SINK_MAP(Bho) | 
| 77   SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2, | 67   SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2, | 
| 78                   BeforeNavigate2, &kBeforeNavigate2Info) | 68                   BeforeNavigate2, &kBeforeNavigate2Info) | 
| 79   SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2, | 69   SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2, | 
| 80                   NavigateComplete2, &kNavigateComplete2Info) | 70                   NavigateComplete2, &kNavigateComplete2Info) | 
| 81 END_SINK_MAP() | 71 END_SINK_MAP() | 
| 82 | 72 | 
| 83   Bho(); | 73   Bho(); | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 99   // us to sniff the META tag by simply patching it. The renderer | 89   // us to sniff the META tag by simply patching it. The renderer | 
| 100   // switching can be achieved by canceling original navigation | 90   // switching can be achieved by canceling original navigation | 
| 101   // and issuing a new one using IWebBrowser2->Navigate2. | 91   // and issuing a new one using IWebBrowser2->Navigate2. | 
| 102   static HRESULT STDMETHODCALLTYPE OnHttpEquiv( | 92   static HRESULT STDMETHODCALLTYPE OnHttpEquiv( | 
| 103       IBrowserService_OnHttpEquiv_Fn original_httpequiv, | 93       IBrowserService_OnHttpEquiv_Fn original_httpequiv, | 
| 104       IBrowserService* browser, IShellView* shell_view, BOOL done, | 94       IBrowserService* browser, IShellView* shell_view, BOOL done, | 
| 105       VARIANT* in_arg, VARIANT* out_arg); | 95       VARIANT* in_arg, VARIANT* out_arg); | 
| 106 | 96 | 
| 107   static void ProcessOptInUrls(IWebBrowser2* browser, BSTR url); | 97   static void ProcessOptInUrls(IWebBrowser2* browser, BSTR url); | 
| 108 | 98 | 
| 109   // COM_INTERFACE_ENTRY_CACHED_TEAR_OFF manages the raw pointer from CComPtr |  | 
| 110   // which ScopedComPtr doesn't expose. |  | 
| 111   CComPtr<IUnknown> delete_chrome_history_; |  | 
| 112 |  | 
| 113  protected: | 99  protected: | 
| 114   bool PatchProtocolHandler(const CLSID& handler_clsid); | 100   bool PatchProtocolHandler(const CLSID& handler_clsid); | 
| 115 | 101 | 
| 116   static _ATL_FUNC_INFO kBeforeNavigate2Info; | 102   static _ATL_FUNC_INFO kBeforeNavigate2Info; | 
| 117   static _ATL_FUNC_INFO kNavigateComplete2Info; | 103   static _ATL_FUNC_INFO kNavigateComplete2Info; | 
| 118 }; | 104 }; | 
| 119 | 105 | 
| 120 #endif  // CHROME_FRAME_BHO_H_ | 106 #endif  // CHROME_FRAME_BHO_H_ | 
| 121 | 107 | 
| OLD | NEW | 
|---|