Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_BROWSER_FRAME_HOST_FRAME_NAVIGATION_ENTRY_H_ | 5 #ifndef CONTENT_BROWSER_FRAME_HOST_FRAME_NAVIGATION_ENTRY_H_ |
| 6 #define CONTENT_BROWSER_FRAME_HOST_FRAME_NAVIGATION_ENTRY_H_ | 6 #define CONTENT_BROWSER_FRAME_HOST_FRAME_NAVIGATION_ENTRY_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 // frame. | 24 // frame. |
| 25 // | 25 // |
| 26 // If SiteIsolationPolicy::UseSubframeNavigationEntries is true, there will be a | 26 // If SiteIsolationPolicy::UseSubframeNavigationEntries is true, there will be a |
| 27 // tree of FrameNavigationEntries in each NavigationEntry, one per frame. | 27 // tree of FrameNavigationEntries in each NavigationEntry, one per frame. |
| 28 // TODO(creis): Share these FrameNavigationEntries across NavigationEntries if | 28 // TODO(creis): Share these FrameNavigationEntries across NavigationEntries if |
| 29 // the frame hasn't changed. | 29 // the frame hasn't changed. |
| 30 class CONTENT_EXPORT FrameNavigationEntry | 30 class CONTENT_EXPORT FrameNavigationEntry |
| 31 : public base::RefCounted<FrameNavigationEntry> { | 31 : public base::RefCounted<FrameNavigationEntry> { |
| 32 public: | 32 public: |
| 33 FrameNavigationEntry(); | 33 FrameNavigationEntry(); |
| 34 FrameNavigationEntry(const std::string& frame_unique_name, | 34 FrameNavigationEntry(const std::string& frame_unique_name, |
|
Charlie Reis
2016/09/28 04:13:17
I'm debating whether we should include it as a par
arthursonzogni
2016/09/28 16:36:14
I don't know. I think I didn't include it here bec
| |
| 35 int64_t item_sequence_number, | 35 int64_t item_sequence_number, |
| 36 int64_t document_sequence_number, | 36 int64_t document_sequence_number, |
| 37 scoped_refptr<SiteInstanceImpl> site_instance, | 37 scoped_refptr<SiteInstanceImpl> site_instance, |
| 38 scoped_refptr<SiteInstanceImpl> source_site_instance, | 38 scoped_refptr<SiteInstanceImpl> source_site_instance, |
| 39 const GURL& url, | 39 const GURL& url, |
| 40 const Referrer& referrer, | 40 const Referrer& referrer, |
| 41 const std::string& method, | 41 const std::string& method, |
| 42 int64_t post_id); | 42 int64_t post_id); |
| 43 | 43 |
| 44 // Creates a copy of this FrameNavigationEntry that can be modified | 44 // Creates a copy of this FrameNavigationEntry that can be modified |
| 45 // independently from the original. | 45 // independently from the original. |
| 46 FrameNavigationEntry* Clone() const; | 46 FrameNavigationEntry* Clone() const; |
| 47 | 47 |
| 48 // Updates all the members of this entry. | 48 // Updates all the members of this entry. |
| 49 void UpdateEntry(const std::string& frame_unique_name, | 49 void UpdateEntry(const std::string& frame_unique_name, |
| 50 int64_t item_sequence_number, | 50 int64_t item_sequence_number, |
| 51 int64_t document_sequence_number, | 51 int64_t document_sequence_number, |
| 52 SiteInstanceImpl* site_instance, | 52 SiteInstanceImpl* site_instance, |
| 53 scoped_refptr<SiteInstanceImpl> source_site_instance, | 53 scoped_refptr<SiteInstanceImpl> source_site_instance, |
| 54 const std::vector<GURL>& redirect_chain, | |
|
Charlie Reis
2016/09/28 04:13:17
Throughout this file, we should list redirect_chai
arthursonzogni
2016/09/28 16:36:14
Done.
| |
| 54 const GURL& url, | 55 const GURL& url, |
| 55 const Referrer& referrer, | 56 const Referrer& referrer, |
| 56 const PageState& page_state, | 57 const PageState& page_state, |
| 57 const std::string& method, | 58 const std::string& method, |
| 58 int64_t post_id); | 59 int64_t post_id); |
| 59 | 60 |
| 60 // The unique name of the frame this entry is for. This is a stable name for | 61 // The unique name of the frame this entry is for. This is a stable name for |
| 61 // the frame based on its position in the tree and relation to other named | 62 // the frame based on its position in the tree and relation to other named |
| 62 // frames, which does not change after cross-process navigations or restores. | 63 // frames, which does not change after cross-process navigations or restores. |
| 63 // Only the main frame can have an empty name. | 64 // Only the main frame can have an empty name. |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 94 // renderer-initiated navigations and is cleared once the navigation has | 95 // renderer-initiated navigations and is cleared once the navigation has |
| 95 // committed. | 96 // committed. |
| 96 void set_source_site_instance( | 97 void set_source_site_instance( |
| 97 scoped_refptr<SiteInstanceImpl> source_site_instance) { | 98 scoped_refptr<SiteInstanceImpl> source_site_instance) { |
| 98 source_site_instance_ = std::move(source_site_instance); | 99 source_site_instance_ = std::move(source_site_instance); |
| 99 } | 100 } |
| 100 SiteInstanceImpl* source_site_instance() const { | 101 SiteInstanceImpl* source_site_instance() const { |
| 101 return source_site_instance_.get(); | 102 return source_site_instance_.get(); |
| 102 } | 103 } |
| 103 | 104 |
| 105 // The redirect chain traversed during this frame navigation, from the initial | |
| 106 // redirecting URL to the final non-redirecting current URL. | |
| 107 void set_redirect_chain(const std::vector<GURL>& redirect_chain) { | |
| 108 redirect_chain_ = redirect_chain; | |
| 109 } | |
| 110 const std::vector<GURL>& redirect_chain() const { return redirect_chain_; } | |
| 111 | |
| 104 // The actual URL loaded in the frame. This is in contrast to the virtual | 112 // The actual URL loaded in the frame. This is in contrast to the virtual |
| 105 // URL, which is shown to the user. | 113 // URL, which is shown to the user. |
| 106 void set_url(const GURL& url) { url_ = url; } | 114 void set_url(const GURL& url) { url_ = url; } |
| 107 const GURL& url() const { return url_; } | 115 const GURL& url() const { return url_; } |
| 108 | 116 |
| 109 // The referring URL. Can be empty. | 117 // The referring URL. Can be empty. |
| 110 void set_referrer(const Referrer& referrer) { referrer_ = referrer; } | 118 void set_referrer(const Referrer& referrer) { referrer_ = referrer; } |
| 111 const Referrer& referrer() const { return referrer_; } | 119 const Referrer& referrer() const { return referrer_; } |
| 112 | 120 |
| 113 void SetPageState(const PageState& page_state); | 121 void SetPageState(const PageState& page_state); |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 136 // currently managed by NavigationEntry, but the logic will move here. | 144 // currently managed by NavigationEntry, but the logic will move here. |
| 137 // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING | 145 // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
| 138 | 146 |
| 139 // See the accessors above for descriptions. | 147 // See the accessors above for descriptions. |
| 140 std::string frame_unique_name_; | 148 std::string frame_unique_name_; |
| 141 int64_t item_sequence_number_; | 149 int64_t item_sequence_number_; |
| 142 int64_t document_sequence_number_; | 150 int64_t document_sequence_number_; |
| 143 scoped_refptr<SiteInstanceImpl> site_instance_; | 151 scoped_refptr<SiteInstanceImpl> site_instance_; |
| 144 // This member is cleared at commit time and is not persisted. | 152 // This member is cleared at commit time and is not persisted. |
| 145 scoped_refptr<SiteInstanceImpl> source_site_instance_; | 153 scoped_refptr<SiteInstanceImpl> source_site_instance_; |
| 154 | |
| 155 // This is used when transferring a pending entry from one process to another. | |
| 156 // We also send this data through session sync for offline analysis. | |
| 157 // It is preserved after commit but should not be persisted. | |
| 158 std::vector<GURL> redirect_chain_; | |
|
arthursonzogni
2016/09/27 12:56:20
I am not sure of the comment message. Which senten
Charlie Reis
2016/09/28 04:13:17
The first sentence is still true (see NavigatorImp
arthursonzogni
2016/09/28 16:36:14
Thanks!
| |
| 159 | |
| 146 GURL url_; | 160 GURL url_; |
| 147 Referrer referrer_; | 161 Referrer referrer_; |
| 148 // TODO(creis): Change this to FrameState. | 162 // TODO(creis): Change this to FrameState. |
| 149 PageState page_state_; | 163 PageState page_state_; |
| 150 std::string method_; | 164 std::string method_; |
| 151 int64_t post_id_; | 165 int64_t post_id_; |
| 152 | 166 |
| 153 DISALLOW_COPY_AND_ASSIGN(FrameNavigationEntry); | 167 DISALLOW_COPY_AND_ASSIGN(FrameNavigationEntry); |
| 154 }; | 168 }; |
| 155 | 169 |
| 156 } // namespace content | 170 } // namespace content |
| 157 | 171 |
| 158 #endif // CONTENT_BROWSER_FRAME_HOST_FRAME_NAVIGATION_ENTRY_H_ | 172 #endif // CONTENT_BROWSER_FRAME_HOST_FRAME_NAVIGATION_ENTRY_H_ |
| OLD | NEW |