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 21 matching lines...) Expand all Loading... | |
| 32 public: | 32 public: |
| 33 FrameNavigationEntry(); | 33 FrameNavigationEntry(); |
| 34 FrameNavigationEntry(const std::string& frame_unique_name, | 34 FrameNavigationEntry(const std::string& frame_unique_name, |
| 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 bool is_srcdoc); | |
| 43 | 44 |
| 44 // Creates a copy of this FrameNavigationEntry that can be modified | 45 // Creates a copy of this FrameNavigationEntry that can be modified |
| 45 // independently from the original. | 46 // independently from the original. |
| 46 FrameNavigationEntry* Clone() const; | 47 FrameNavigationEntry* Clone() const; |
| 47 | 48 |
| 48 // Updates all the members of this entry. | 49 // Updates all the members of this entry. |
| 49 void UpdateEntry(const std::string& frame_unique_name, | 50 void UpdateEntry(const std::string& frame_unique_name, |
| 50 int64_t item_sequence_number, | 51 int64_t item_sequence_number, |
| 51 int64_t document_sequence_number, | 52 int64_t document_sequence_number, |
| 52 SiteInstanceImpl* site_instance, | 53 SiteInstanceImpl* site_instance, |
| 53 scoped_refptr<SiteInstanceImpl> source_site_instance, | 54 scoped_refptr<SiteInstanceImpl> source_site_instance, |
| 54 const GURL& url, | 55 const GURL& url, |
| 55 const Referrer& referrer, | 56 const Referrer& referrer, |
| 56 const std::vector<GURL>& redirect_chain, | 57 const std::vector<GURL>& redirect_chain, |
| 57 const PageState& page_state, | 58 const PageState& page_state, |
| 58 const std::string& method, | 59 const std::string& method, |
| 59 int64_t post_id); | 60 int64_t post_id, |
| 61 bool is_srcdoc); | |
| 60 | 62 |
| 61 // The unique name of the frame this entry is for. This is a stable name for | 63 // The unique name of the frame this entry is for. This is a stable name for |
| 62 // the frame based on its position in the tree and relation to other named | 64 // the frame based on its position in the tree and relation to other named |
| 63 // frames, which does not change after cross-process navigations or restores. | 65 // frames, which does not change after cross-process navigations or restores. |
| 64 // Only the main frame can have an empty name. | 66 // Only the main frame can have an empty name. |
| 65 // | 67 // |
| 66 // This is unique relative to other frames in the same page, but not among | 68 // This is unique relative to other frames in the same page, but not among |
| 67 // other pages (i.e., not globally unique). | 69 // other pages (i.e., not globally unique). |
| 68 const std::string& frame_unique_name() const { return frame_unique_name_; } | 70 const std::string& frame_unique_name() const { return frame_unique_name_; } |
| 69 void set_frame_unique_name(const std::string& frame_unique_name) { | 71 void set_frame_unique_name(const std::string& frame_unique_name) { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 127 | 129 |
| 128 // The id of the post corresponding to this navigation or -1 if the | 130 // The id of the post corresponding to this navigation or -1 if the |
| 129 // navigation was not a POST. | 131 // navigation was not a POST. |
| 130 int64_t post_id() const { return post_id_; } | 132 int64_t post_id() const { return post_id_; } |
| 131 void set_post_id(int64_t post_id) { post_id_ = post_id; } | 133 void set_post_id(int64_t post_id) { post_id_ = post_id; } |
| 132 | 134 |
| 133 // The data sent during a POST navigation. Returns nullptr if the navigation | 135 // The data sent during a POST navigation. Returns nullptr if the navigation |
| 134 // is not a POST. | 136 // is not a POST. |
| 135 scoped_refptr<ResourceRequestBodyImpl> GetPostData() const; | 137 scoped_refptr<ResourceRequestBodyImpl> GetPostData() const; |
| 136 | 138 |
| 139 // Whether the navigation is for an iframe with srcdoc attribute | |
|
Charlie Reis
2016/11/07 21:32:58
nit: End with period.
arthursonzogni
2016/11/08 12:21:30
Done.
| |
| 140 bool is_srcdoc() const { return is_srcdoc_; } | |
| 141 | |
| 137 private: | 142 private: |
| 138 friend class base::RefCounted<FrameNavigationEntry>; | 143 friend class base::RefCounted<FrameNavigationEntry>; |
| 139 virtual ~FrameNavigationEntry(); | 144 virtual ~FrameNavigationEntry(); |
| 140 | 145 |
| 141 // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING | 146 // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
| 142 // Add all new fields to |UpdateEntry|. | 147 // Add all new fields to |UpdateEntry|. |
| 143 // TODO(creis): These fields have implications for session restore. This is | 148 // TODO(creis): These fields have implications for session restore. This is |
| 144 // currently managed by NavigationEntry, but the logic will move here. | 149 // currently managed by NavigationEntry, but the logic will move here. |
| 145 // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING | 150 // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING |
| 146 | 151 |
| 147 // See the accessors above for descriptions. | 152 // See the accessors above for descriptions. |
| 148 std::string frame_unique_name_; | 153 std::string frame_unique_name_; |
| 149 int64_t item_sequence_number_; | 154 int64_t item_sequence_number_; |
| 150 int64_t document_sequence_number_; | 155 int64_t document_sequence_number_; |
| 151 scoped_refptr<SiteInstanceImpl> site_instance_; | 156 scoped_refptr<SiteInstanceImpl> site_instance_; |
| 152 // This member is cleared at commit time and is not persisted. | 157 // This member is cleared at commit time and is not persisted. |
| 153 scoped_refptr<SiteInstanceImpl> source_site_instance_; | 158 scoped_refptr<SiteInstanceImpl> source_site_instance_; |
| 154 GURL url_; | 159 GURL url_; |
| 155 Referrer referrer_; | 160 Referrer referrer_; |
| 156 // This is used when transferring a pending entry from one process to another. | 161 // This is used when transferring a pending entry from one process to another. |
| 157 // We also send the main frame's redirect chain through session sync for | 162 // We also send the main frame's redirect chain through session sync for |
| 158 // offline analysis. | 163 // offline analysis. |
| 159 // It is preserved after commit but should not be persisted. | 164 // It is preserved after commit but should not be persisted. |
| 160 std::vector<GURL> redirect_chain_; | 165 std::vector<GURL> redirect_chain_; |
| 161 // TODO(creis): Change this to FrameState. | 166 // TODO(creis): Change this to FrameState. |
| 162 PageState page_state_; | 167 PageState page_state_; |
| 163 std::string method_; | 168 std::string method_; |
| 164 int64_t post_id_; | 169 int64_t post_id_; |
| 170 bool is_srcdoc_; | |
|
Charlie Reis
2016/11/07 21:32:58
Does this value get restored properly if you quit
arthursonzogni
2016/11/08 12:21:30
Yes, is_srcdoc is restored properly because of the
| |
| 165 | 171 |
| 166 DISALLOW_COPY_AND_ASSIGN(FrameNavigationEntry); | 172 DISALLOW_COPY_AND_ASSIGN(FrameNavigationEntry); |
| 167 }; | 173 }; |
| 168 | 174 |
| 169 } // namespace content | 175 } // namespace content |
| 170 | 176 |
| 171 #endif // CONTENT_BROWSER_FRAME_HOST_FRAME_NAVIGATION_ENTRY_H_ | 177 #endif // CONTENT_BROWSER_FRAME_HOST_FRAME_NAVIGATION_ENTRY_H_ |
| OLD | NEW |