summaryrefslogtreecommitdiffstats
path: root/content/public/browser
diff options
context:
space:
mode:
Diffstat (limited to 'content/public/browser')
-rw-r--r--content/public/browser/navigation_details.cc19
-rw-r--r--content/public/browser/navigation_details.h92
2 files changed, 111 insertions, 0 deletions
diff --git a/content/public/browser/navigation_details.cc b/content/public/browser/navigation_details.cc
new file mode 100644
index 0000000..2eb2ba1
--- /dev/null
+++ b/content/public/browser/navigation_details.cc
@@ -0,0 +1,19 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/public/browser/navigation_details.h"
+
+namespace content {
+
+LoadCommittedDetails::LoadCommittedDetails()
+ : entry(NULL),
+ type(content::NAVIGATION_TYPE_UNKNOWN),
+ previous_entry_index(-1),
+ did_replace_entry(false),
+ is_in_page(false),
+ is_main_frame(true),
+ http_status_code(0) {
+}
+
+} // namespace content
diff --git a/content/public/browser/navigation_details.h b/content/public/browser/navigation_details.h
new file mode 100644
index 0000000..8646fff
--- /dev/null
+++ b/content/public/browser/navigation_details.h
@@ -0,0 +1,92 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_PUBLIC_BROWSER_NAVIGATION_DETAILS_H_
+#define CONTENT_PUBLIC_BROWSER_NAVIGATION_DETAILS_H_
+#pragma once
+
+#include <string>
+#include "content/common/content_export.h"
+#include "content/public/browser/navigation_type.h"
+#include "googleurl/src/gurl.h"
+
+class NavigationEntry;
+class TabContents;
+
+namespace content {
+
+// Provides the details for a NOTIFY_NAV_ENTRY_COMMITTED notification.
+// TODO(brettw) this mostly duplicates ProvisionalLoadDetails, it would be
+// nice to unify these somehow.
+struct CONTENT_EXPORT LoadCommittedDetails {
+ // By default, the entry will be filled according to a new main frame
+ // navigation.
+ LoadCommittedDetails();
+
+ // The committed entry. This will be the active entry in the controller.
+ NavigationEntry* entry;
+
+ // The type of navigation that just occurred. Note that not all types of
+ // navigations in the enum are valid here, since some of them don't actually
+ // cause a "commit" and won't generate this notification.
+ content::NavigationType type;
+
+ // The index of the previously committed navigation entry. This will be -1
+ // if there are no previous entries.
+ int previous_entry_index;
+
+ // The previous URL that the user was on. This may be empty if none.
+ GURL previous_url;
+
+ // True if the committed entry has replaced the exisiting one.
+ // A non-user initiated redirect causes such replacement.
+ bool did_replace_entry;
+
+ // True if the navigation was in-page. This means that the active entry's
+ // URL and the |previous_url| are the same except for reference fragments.
+ bool is_in_page;
+
+ // True when the main frame was navigated. False means the navigation was a
+ // sub-frame.
+ bool is_main_frame;
+
+ // When the committed load is a web page from the renderer, this string
+ // specifies the security state if the page is secure.
+ // See ViewHostMsg_FrameNavigate_Params.security_info, where it comes from.
+ // Use SSLManager::DeserializeSecurityInfo to decode it.
+ std::string serialized_security_info;
+
+ // Returns whether the main frame navigated to a different page (e.g., not
+ // scrolling to a fragment inside the current page). We often need this logic
+ // for showing or hiding something.
+ bool is_navigation_to_different_page() const {
+ return is_main_frame && !is_in_page;
+ }
+
+ // The HTTP status code for this entry..
+ int http_status_code;
+};
+
+// Provides the details for a NOTIFY_NAV_ENTRY_CHANGED notification.
+struct EntryChangedDetails {
+ // The changed navigation entry after it has been updated.
+ const NavigationEntry* changed_entry;
+
+ // Indicates the current index in the back/forward list of the entry.
+ int index;
+};
+
+// Details sent for NOTIFY_NAV_LIST_PRUNED.
+struct PrunedDetails {
+ // If true, count items were removed from the front of the list, otherwise
+ // count items were removed from the back of the list.
+ bool from_front;
+
+ // Number of items removed.
+ int count;
+};
+
+} // namespace content
+
+#endif // CONTENT_PUBLIC_BROWSER_NAVIGATION_DETAILS_H_