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_RENDER_FRAME_HOST_MANAGER_H_ | 5 #ifndef CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_ |
6 #define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_ | 6 #define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 // to |bindings|. | 413 // to |bindings|. |
414 scoped_ptr<WebUIImpl> CreateWebUI(const GURL& url, int bindings); | 414 scoped_ptr<WebUIImpl> CreateWebUI(const GURL& url, int bindings); |
415 | 415 |
416 // Returns true if it is safe to reuse the current WebUI when navigating from | 416 // Returns true if it is safe to reuse the current WebUI when navigating from |
417 // |current_entry| to |new_url|. | 417 // |current_entry| to |new_url|. |
418 bool ShouldReuseWebUI( | 418 bool ShouldReuseWebUI( |
419 const NavigationEntry* current_entry, | 419 const NavigationEntry* current_entry, |
420 const GURL& new_url) const; | 420 const GURL& new_url) const; |
421 | 421 |
422 // Returns the SiteInstance to use for the navigation. | 422 // Returns the SiteInstance to use for the navigation. |
423 SiteInstance* GetSiteInstanceForNavigation( | 423 SiteInstance* GetSiteInstanceForNavigation(const GURL& dest_url, |
424 const GURL& dest_url, | 424 SiteInstance* source_instance, |
425 SiteInstance* dest_instance, | 425 SiteInstance* dest_instance, |
426 ui::PageTransition dest_transition, | 426 ui::PageTransition transition, |
427 bool dest_is_restore, | 427 bool dest_is_restore, |
428 bool dest_is_view_source_mode); | 428 bool dest_is_view_source_mode); |
429 | 429 |
430 // Returns an appropriate SiteInstance object for the given |dest_url|, | 430 // Returns an appropriate SiteInstance object for the given |dest_url|, |
431 // possibly reusing the current SiteInstance. If --process-per-tab is used, | 431 // possibly reusing the current SiteInstance. If --process-per-tab is used, |
432 // this is only called when ShouldSwapBrowsingInstancesForNavigation returns | 432 // this is only called when ShouldSwapBrowsingInstancesForNavigation returns |
433 // true. |dest_instance| will be used if it is not null. | 433 // true. |source_instance| is the SiteInstance of the frame that initiated the |
| 434 // navigation. |current_instance| is the SiteInstance of the frame that is |
| 435 // currently navigating. |dest_instance|, is a predetermined SiteInstance |
| 436 // that'll be used if not null. |
| 437 // For example, if you have a parent frame A, which has a child frame B, and |
| 438 // A is trying to change the src attribute of B, this will cause a navigation |
| 439 // where the source SiteInstance is A and B is the current SiteInstance. |
434 // This is a helper function for GetSiteInstanceForNavigation. | 440 // This is a helper function for GetSiteInstanceForNavigation. |
435 SiteInstance* GetSiteInstanceForURL( | 441 SiteInstance* GetSiteInstanceForURL(const GURL& dest_url, |
436 const GURL& dest_url, | 442 SiteInstance* source_instance, |
437 SiteInstance* dest_instance, | 443 SiteInstance* current_instance, |
438 ui::PageTransition dest_transition, | 444 SiteInstance* dest_instance, |
439 bool dest_is_restore, | 445 ui::PageTransition transition, |
440 bool dest_is_view_source_mode, | 446 bool dest_is_restore, |
441 SiteInstance* current_instance, | 447 bool dest_is_view_source_mode, |
442 bool force_browsing_instance_swap); | 448 bool force_browsing_instance_swap); |
443 | 449 |
444 // Determines the appropriate url to use as the current url for SiteInstance | 450 // Determines the appropriate url to use as the current url for SiteInstance |
445 // selection. | 451 // selection. |
446 const GURL& GetCurrentURLForSiteInstance( | 452 const GURL& GetCurrentURLForSiteInstance( |
447 SiteInstance* current_instance, | 453 SiteInstance* current_instance, |
448 NavigationEntry* current_entry); | 454 NavigationEntry* current_entry); |
449 | 455 |
450 // Creates a new RenderFrameHostImpl for the |new_instance| and assign it to | 456 // Creates a new RenderFrameHostImpl for the |new_instance| and assign it to |
451 // |pending_render_frame_host_| while respecting the opener route if needed | 457 // |pending_render_frame_host_| while respecting the opener route if needed |
452 // and stores it in pending_render_frame_host_. | 458 // and stores it in pending_render_frame_host_. |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 | 519 |
514 // Clears pending_render_frame_host_, returning it to the caller for disposal. | 520 // Clears pending_render_frame_host_, returning it to the caller for disposal. |
515 scoped_ptr<RenderFrameHostImpl> UnsetPendingRenderFrameHost(); | 521 scoped_ptr<RenderFrameHostImpl> UnsetPendingRenderFrameHost(); |
516 | 522 |
517 // Helper method to set the active RenderFrameHost. Returns the old | 523 // Helper method to set the active RenderFrameHost. Returns the old |
518 // RenderFrameHost and updates counts. | 524 // RenderFrameHost and updates counts. |
519 scoped_ptr<RenderFrameHostImpl> SetRenderFrameHost( | 525 scoped_ptr<RenderFrameHostImpl> SetRenderFrameHost( |
520 scoped_ptr<RenderFrameHostImpl> render_frame_host); | 526 scoped_ptr<RenderFrameHostImpl> render_frame_host); |
521 | 527 |
522 RenderFrameHostImpl* UpdateStateForNavigate( | 528 RenderFrameHostImpl* UpdateStateForNavigate( |
523 const GURL& url, | 529 const GURL& dest_url, |
524 SiteInstance* instance, | 530 SiteInstance* source_instance, |
| 531 SiteInstance* dest_instance, |
525 ui::PageTransition transition, | 532 ui::PageTransition transition, |
526 bool is_restore, | 533 bool dest_is_restore, |
527 bool is_view_source_mode, | 534 bool dest_is_view_source_mode, |
528 const GlobalRequestID& transferred_request_id, | 535 const GlobalRequestID& transferred_request_id, |
529 int bindings); | 536 int bindings); |
530 | 537 |
531 // Called when a renderer process is starting to close. We should not | 538 // Called when a renderer process is starting to close. We should not |
532 // schedule new navigations in its swapped out RenderFrameHosts after this. | 539 // schedule new navigations in its swapped out RenderFrameHosts after this. |
533 void RendererProcessClosing(RenderProcessHost* render_process_host); | 540 void RendererProcessClosing(RenderProcessHost* render_process_host); |
534 | 541 |
535 // Helper method to delete a RenderFrameProxyHost from the list, if one exists | 542 // Helper method to delete a RenderFrameProxyHost from the list, if one exists |
536 // for the given |instance|. | 543 // for the given |instance|. |
537 void DeleteRenderFrameProxyHost(SiteInstance* instance); | 544 void DeleteRenderFrameProxyHost(SiteInstance* instance); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 NotificationRegistrar registrar_; | 613 NotificationRegistrar registrar_; |
607 | 614 |
608 base::WeakPtrFactory<RenderFrameHostManager> weak_factory_; | 615 base::WeakPtrFactory<RenderFrameHostManager> weak_factory_; |
609 | 616 |
610 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostManager); | 617 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostManager); |
611 }; | 618 }; |
612 | 619 |
613 } // namespace content | 620 } // namespace content |
614 | 621 |
615 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_ | 622 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_ |
OLD | NEW |