diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-20 01:42:29 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-20 01:42:29 +0000 |
commit | 4da216df7325d1ea00757051701fd2f6c116a9e5 (patch) | |
tree | 073f2d879d1125e7b1b76c134b0c0f801c1432aa /chrome_frame/extra_system_apis.h | |
parent | a4fa2c1583b8ff14eefaadcdf1c3103e2f738bec (diff) | |
download | chromium_src-4da216df7325d1ea00757051701fd2f6c116a9e5.zip chromium_src-4da216df7325d1ea00757051701fd2f6c116a9e5.tar.gz chromium_src-4da216df7325d1ea00757051701fd2f6c116a9e5.tar.bz2 |
Fix for back/forward issue with httpequiv patch.
After reissuing a cf navigation we now remove the previous entry from the travellog to preserve the correct navigation history.
Also updating the BackForward unit tests to expect two pairs of BeforeNavigate/NavigateComplete notification when we transition from IE to CF.
TEST=Run *BackForward* unit tests
BUG=32550
Review URL: http://codereview.chromium.org/549092
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36594 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/extra_system_apis.h')
-rw-r--r-- | chrome_frame/extra_system_apis.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/chrome_frame/extra_system_apis.h b/chrome_frame/extra_system_apis.h index c951c10..765c5b2 100644 --- a/chrome_frame/extra_system_apis.h +++ b/chrome_frame/extra_system_apis.h @@ -9,6 +9,7 @@ #define CHROME_FRAME_EXTRA_SYSTEM_APIS_H_ #include <mshtml.h> +#include <shdeprecated.h> // This is an interface provided by the WebBrowser object. It allows us to // notify the browser of navigation events. MSDN documents this interface @@ -83,4 +84,37 @@ IDocObjectService : public IUnknown { STDMETHOD(IsErrorUrl)(LPCTSTR url, BOOL* is_error) = 0; }; +// Travel log interface that supports deleting entries from the travel log. +// See for more details: +// http://msdn.microsoft.com/en-us/library/aa511272.aspx +// http://www.geoffchappell.com/viewer.htm?doc=studies/windows/ie/shdocvw/interfaces/tlog/itravellogex/createenumentry.htm +// It seems that in IE8 the interface name was changed to IIEITravelLogEx. +interface __declspec(uuid("3050F679-98B5-11CF-BB82-00AA00BDCE0B")) +ITravelLogEx : public IUnknown { + STDMETHOD(FindTravelEntryWithUrl)(IUnknown* unk, UINT code_page, + const wchar_t* url, + ITravelEntry** entry) = 0; + STDMETHOD(TravelToUrl)(IUnknown* unk, UINT code_page, const wchar_t* url) = 0; + STDMETHOD(DeleteIndexEntry)(IUnknown* unk, int offset) = 0; + STDMETHOD(DeleteUrlEntry)(IUnknown* unk, UINT code_page, + const wchar_t* url) = 0; + STDMETHOD(CountEntryNodes)(IUnknown* unk, DWORD flags, DWORD* count) = 0; + STDMETHOD(CreateEnumEntry)(IUnknown* unk, IEnumTravelLogEntry** entry_enum, + DWORD flags) = 0; + STDMETHOD(DeleteEntry)(IUnknown* unk, ITravelLogEntry* entry) = 0; + STDMETHOD(InsertEntry)(IUnknown* unk_relative_to, + ITravelLogEntry* entry_relative_to, BOOL prepend, + IUnknown* unk, ITravelLogEntry** entry) = 0; + STDMETHOD(TravelToEntry)(IUnknown* unk, ITravelLogEntry* entry) = 0; +}; + +interface __declspec(uuid("DD9E2B32-4D78-44F1-B59B-8CA4C9392140")) +IIEITravelLogEx : public ITravelLogEx { +}; + +// Flags for ITravelLogEx::CountEntryNodes, CreateEnumEntry. +#define TLEF_RELATIVE_INCLUDE_CURRENT (0x01) // count the current entry +#define TLEF_RELATIVE_BACK (0x10) // count backward entries +#define TLEF_RELATIVE_FORE (0x20) // count forward entries + #endif // CHROME_FRAME_EXTRA_SYSTEM_APIS_H_ |