Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Side by Side Diff: content/browser/frame_host/render_frame_host_manager.h

Issue 471603002: Remove dependency on NavigationEntry to get a SiteInstance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Charlie's comments Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 // Used with FrameTree::ForEach to erase RenderFrameProxyHosts from a 379 // Used with FrameTree::ForEach to erase RenderFrameProxyHosts from a
380 // FrameTreeNode's RenderFrameHostManager. 380 // FrameTreeNode's RenderFrameHostManager.
381 static bool ClearProxiesInSiteInstance(int32 site_instance_id, 381 static bool ClearProxiesInSiteInstance(int32 site_instance_id,
382 FrameTreeNode* node); 382 FrameTreeNode* node);
383 383
384 // Returns whether this tab should transition to a new renderer for 384 // Returns whether this tab should transition to a new renderer for
385 // cross-site URLs. Enabled unless we see the --process-per-tab command line 385 // cross-site URLs. Enabled unless we see the --process-per-tab command line
386 // switch. Can be overridden in unit tests. 386 // switch. Can be overridden in unit tests.
387 bool ShouldTransitionCrossSite(); 387 bool ShouldTransitionCrossSite();
388 388
389 // Returns true if for the navigation from |current_entry| to |new_entry|, 389 // Returns true if for the navigation from |current_effective_url| to
390 // a new SiteInstance and BrowsingInstance should be created (even if we are 390 // |new_effective_url|, a new SiteInstance and BrowsingInstance should be
391 // in a process model that doesn't usually swap). This forces a process swap 391 // created (even if we are in a process model that doesn't usually swap).
392 // and severs script connections with existing tabs. Cases where this can 392 // This forces a process swap and severs script connections with existing
393 // happen include transitions between WebUI and regular web pages. 393 // tabs. Cases where this can happen include transitions between WebUI and
394 // Either of the entries may be NULL. 394 // regular web pages. |new_site_instance| may be null.
395 // If there is no current NavigationEntry, then |current_is_view_source_mode|
396 // should be the same as |new_is_view_source_mode|.
397 //
398 // We use the effective URL here, since that's what is used in the
399 // SiteInstance's site and when we later call IsSameWebSite. If there is no
400 // current NavigationEntry, check the current SiteInstance's site, which might
401 // already be committed to a Web UI URL (such as the NTP).
395 bool ShouldSwapBrowsingInstancesForNavigation( 402 bool ShouldSwapBrowsingInstancesForNavigation(
396 const NavigationEntry* current_entry, 403 const GURL& current_effective_url,
397 const NavigationEntryImpl* new_entry) const; 404 bool current_is_view_source_mode,
405 SiteInstance* new_site_instance,
406 const GURL& new_effective_url,
407 bool new_is_view_source_mode) const;
398 408
399 // Returns true if it is safe to reuse the current WebUI when navigating from 409 // Returns true if it is safe to reuse the current WebUI when navigating from
400 // |current_entry| to |new_entry|. 410 // |current_entry| to |new_entry|.
401 bool ShouldReuseWebUI( 411 bool ShouldReuseWebUI(
402 const NavigationEntry* current_entry, 412 const NavigationEntry* current_entry,
403 const NavigationEntryImpl* new_entry) const; 413 const NavigationEntryImpl* new_entry) const;
404 414
405 // Returns an appropriate SiteInstance object for the given NavigationEntry, 415 // Returns an appropriate SiteInstance object for the given |dest_url|,
406 // possibly reusing the current SiteInstance. If --process-per-tab is used, 416 // possibly reusing the current SiteInstance. If --process-per-tab is used,
407 // this is only called when ShouldSwapBrowsingInstancesForNavigation returns 417 // this is only called when ShouldSwapBrowsingInstancesForNavigation returns
408 // true. 418 // true. |dest_instance| will be used if it is not null.
409 SiteInstance* GetSiteInstanceForEntry( 419 SiteInstance* GetSiteInstanceForURL(
410 const NavigationEntryImpl& entry, 420 const GURL& dest_url,
421 SiteInstance* dest_instance,
422 PageTransition dest_transition,
423 bool dest_is_restore,
424 bool dest_is_view_source_mode,
411 SiteInstance* current_instance, 425 SiteInstance* current_instance,
412 bool force_browsing_instance_swap); 426 bool force_browsing_instance_swap);
413 427
414 // Creates a RenderFrameHost and corresponding RenderViewHost if necessary. 428 // Creates a RenderFrameHost and corresponding RenderViewHost if necessary.
415 scoped_ptr<RenderFrameHostImpl> CreateRenderFrameHost(SiteInstance* instance, 429 scoped_ptr<RenderFrameHostImpl> CreateRenderFrameHost(SiteInstance* instance,
416 int view_routing_id, 430 int view_routing_id,
417 int frame_routing_id, 431 int frame_routing_id,
418 bool swapped_out, 432 bool swapped_out,
419 bool hidden); 433 bool hidden);
420 434
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 scoped_ptr<NavigationRequest> navigation_request_; 547 scoped_ptr<NavigationRequest> navigation_request_;
534 548
535 base::WeakPtrFactory<RenderFrameHostManager> weak_factory_; 549 base::WeakPtrFactory<RenderFrameHostManager> weak_factory_;
536 550
537 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostManager); 551 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostManager);
538 }; 552 };
539 553
540 } // namespace content 554 } // namespace content
541 555
542 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_ 556 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698