OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_TREE_NODE_H_ | 5 #ifndef CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ |
6 #define CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ | 6 #define CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <string> | 10 #include <string> |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 // Returns true if this node is in a state where the loading progress is being | 228 // Returns true if this node is in a state where the loading progress is being |
229 // tracked. | 229 // tracked. |
230 bool has_started_loading() const; | 230 bool has_started_loading() const; |
231 | 231 |
232 // Resets this node's loading progress. | 232 // Resets this node's loading progress. |
233 void reset_loading_progress(); | 233 void reset_loading_progress(); |
234 | 234 |
235 // A RenderFrameHost in this node started loading. | 235 // A RenderFrameHost in this node started loading. |
236 // |to_different_document| will be true unless the load is a fragment | 236 // |to_different_document| will be true unless the load is a fragment |
237 // navigation, or triggered by history.pushState/replaceState. | 237 // navigation, or triggered by history.pushState/replaceState. |
238 void DidStartLoading(bool to_different_document); | 238 // |was_previously_loading| is false if the FrameTree was not loading before. |
| 239 // The caller is required to provide this boolean as the delegate should only |
| 240 // be called if the FrameTree went from non-loading to loading state. |
| 241 // However, when it is called, the FrameTree should be in a loading state. |
| 242 void DidStartLoading(bool to_different_document, bool was_previously_loading); |
239 | 243 |
240 // A RenderFrameHost in this node stopped loading. | 244 // A RenderFrameHost in this node stopped loading. |
241 void DidStopLoading(); | 245 void DidStopLoading(); |
242 | 246 |
243 // The load progress for a RenderFrameHost in this node was updated to | 247 // The load progress for a RenderFrameHost in this node was updated to |
244 // |load_progress|. This will notify the FrameTree which will in turn notify | 248 // |load_progress|. This will notify the FrameTree which will in turn notify |
245 // the WebContents. | 249 // the WebContents. |
246 void DidChangeLoadProgress(double load_progress); | 250 void DidChangeLoadProgress(double load_progress); |
247 | 251 |
248 // Called when the user directed the page to stop loading. Stops all loads | 252 // Called when the user directed the page to stop loading. Stops all loads |
249 // happening in the FrameTreeNode. This method should be used with | 253 // happening in the FrameTreeNode. This method should be used with |
250 // FrameTree::ForEach to stop all loads in the entire FrameTree. | 254 // FrameTree::ForEach to stop all loads in the entire FrameTree. |
251 bool StopLoading(); | 255 bool StopLoading(); |
252 | 256 |
253 // Returns the time this frame was last focused. | 257 // Returns the time this frame was last focused. |
254 base::TimeTicks last_focus_time() const { return last_focus_time_; } | 258 base::TimeTicks last_focus_time() const { return last_focus_time_; } |
255 | 259 |
256 // Called when this node becomes focused. Updates the node's last focused | 260 // Called when this node becomes focused. Updates the node's last focused |
257 // time and notifies observers. | 261 // time and notifies observers. |
258 void DidFocus(); | 262 void DidFocus(); |
259 | 263 |
| 264 // Called when the user closed the modal dialogue for BeforeUnload and |
| 265 // cancelled the navigation. This should stop the loads. |
| 266 void BeforeUnloadCanceled(); |
| 267 |
260 private: | 268 private: |
261 class OpenerDestroyedObserver; | 269 class OpenerDestroyedObserver; |
262 | 270 |
263 void set_parent(FrameTreeNode* parent) { parent_ = parent; } | 271 void set_parent(FrameTreeNode* parent) { parent_ = parent; } |
264 | 272 |
265 // The next available browser-global FrameTreeNode ID. | 273 // The next available browser-global FrameTreeNode ID. |
266 static int next_frame_tree_node_id_; | 274 static int next_frame_tree_node_id_; |
267 | 275 |
268 // The FrameTree that owns us. | 276 // The FrameTree that owns us. |
269 FrameTree* frame_tree_; // not owned. | 277 FrameTree* frame_tree_; // not owned. |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 base::ObserverList<Observer> observers_; | 349 base::ObserverList<Observer> observers_; |
342 | 350 |
343 base::TimeTicks last_focus_time_; | 351 base::TimeTicks last_focus_time_; |
344 | 352 |
345 DISALLOW_COPY_AND_ASSIGN(FrameTreeNode); | 353 DISALLOW_COPY_AND_ASSIGN(FrameTreeNode); |
346 }; | 354 }; |
347 | 355 |
348 } // namespace content | 356 } // namespace content |
349 | 357 |
350 #endif // CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ | 358 #endif // CONTENT_BROWSER_FRAME_HOST_FRAME_TREE_NODE_H_ |
OLD | NEW |