summaryrefslogtreecommitdiffstats
path: root/chrome_frame/extra_system_apis.h
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-20 01:42:29 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-20 01:42:29 +0000
commit4da216df7325d1ea00757051701fd2f6c116a9e5 (patch)
tree073f2d879d1125e7b1b76c134b0c0f801c1432aa /chrome_frame/extra_system_apis.h
parenta4fa2c1583b8ff14eefaadcdf1c3103e2f738bec (diff)
downloadchromium_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.h34
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_