summaryrefslogtreecommitdiffstats
path: root/chrome/common
diff options
context:
space:
mode:
authorbrettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-24 21:21:48 +0000
committerbrettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-24 21:21:48 +0000
commit0e8db94aef1b57355c3d154cb4682ce2f94c51eb (patch)
treea6290715d64cf7da39ce82005d3f6121a40ee85e /chrome/common
parent14e81bfe528c0d79ba82a9326a7071a1daa101ed (diff)
downloadchromium_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.vcproj4
-rw-r--r--chrome/common/navigation_types.h71
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_