diff options
author | brettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-24 21:21:48 +0000 |
---|---|---|
committer | brettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-24 21:21:48 +0000 |
commit | 0e8db94aef1b57355c3d154cb4682ce2f94c51eb (patch) | |
tree | a6290715d64cf7da39ce82005d3f6121a40ee85e /chrome/common | |
parent | 14e81bfe528c0d79ba82a9326a7071a1daa101ed (diff) | |
download | chromium_src-0e8db94aef1b57355c3d154cb4682ce2f94c51eb.zip chromium_src-0e8db94aef1b57355c3d154cb4682ce2f94c51eb.tar.gz chromium_src-0e8db94aef1b57355c3d154cb4682ce2f94c51eb.tar.bz2 |
Remove DidNavigate from the tab contents delegate and all the related plumbing.
I added additional information to the regular load commit notification so all
interested parties can listen for that instead.
I removed the old navigation type enum, and replaced it with the enum from
the NavigationController, so it's now public.
Review URL: http://codereview.chromium.org/3112
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2573 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common')
-rw-r--r-- | chrome/common/common.vcproj | 4 | ||||
-rw-r--r-- | chrome/common/navigation_types.h | 71 |
2 files changed, 61 insertions, 14 deletions
diff --git a/chrome/common/common.vcproj b/chrome/common/common.vcproj index a09fcba..203aa3f 100644 --- a/chrome/common/common.vcproj +++ b/chrome/common/common.vcproj @@ -506,6 +506,10 @@ > </File> <File + RelativePath=".\navigation_types.h" + > + </File> + <File RelativePath=".\notification_details.h" > </File> diff --git a/chrome/common/navigation_types.h b/chrome/common/navigation_types.h index c7e3a90..bc27cbd 100644 --- a/chrome/common/navigation_types.h +++ b/chrome/common/navigation_types.h @@ -2,20 +2,63 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_COMMON_NAVIGATION_TYPES_H__ -#define CHROME_COMMON_NAVIGATION_TYPES_H__ - -// An enum for the type of navigation. This is used when calling -// the NotifyDidNavigate method on the active TabContents -enum NavigationType { - // This is a new navigation resulting in a new entry in the session history - NAVIGATION_NEW = 0, - // Back or forward navigation within the session history - NAVIGATION_BACK_FORWARD = 1, - // This navigation simply replaces the URL of an existing entry in the - // seesion history - NAVIGATION_REPLACE = 2, +#ifndef CHROME_COMMON_NAVIGATION_TYPES_H_ +#define CHROME_COMMON_NAVIGATION_TYPES_H_ + +#include "base/basictypes.h" + +// Indicates different types of navigations that can occur that we will handle +// separately. +class NavigationType { + public: + enum Type { + // A new page was navigated in the main frame. + NEW_PAGE, + + // Renavigating to an existing navigation entry. The entry is guaranteed to + // exist in the list, or else it would be a new page or IGNORE navigation. + EXISTING_PAGE, + + // The same page has been reloaded as a result of the user requesting + // navigation to that same page (like pressing Enter in the URL bar). This + // is not the same as an in-page navigation because we'll actually have a + // pending entry for the load, which is then meaningless. + SAME_PAGE, + + // In page navigations are when the reference fragment changes. This will + // be in the main frame only (we won't even get notified of in-page + // subframe navigations). It may be for any page, not necessarily the last + // committed one (for example, whey going back to a page with a ref). + IN_PAGE, + + // A new subframe was manually navigated by the user. We will create a new + // NavigationEntry so they can go back to the previous subframe content + // using the back button. + NEW_SUBFRAME, + + // A subframe in the page was automatically loaded or navigated to such that + // a new navigation entry should not be created. There are two cases: + // 1. Stuff like iframes containing ads that the page loads automatically. + // The user doesn't want to see these, so we just update the existing + // navigation entry. + // 2. Going back/forward to previous subframe navigations. We don't create + // a new entry here either, just update the last committed entry. + // These two cases are actually pretty different, they just happen to + // require almost the same code to handle. + AUTO_SUBFRAME, + + // Nothing happened. This happens when we get information about a page we + // don't know anything about. It can also happen when an iframe in a popup + // navigated to about:blank is navigated. Nothing needs to be done. + NAV_IGNORE, + }; + + private: + // This class is for scoping only, so you shouldn't create an instance of it. + NavigationType() {} + + DISALLOW_COPY_AND_ASSIGN(NavigationType); }; -#endif // CHROME_COMMON_NAVIGATION_TYPES_H__ +#endif // CHROME_COMMON_NAVIGATION_TYPES_H_ |