OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_SITE_INSTANCE_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_SITE_INSTANCE_IMPL_H_ |
6 #define CONTENT_BROWSER_SITE_INSTANCE_IMPL_H_ | 6 #define CONTENT_BROWSER_SITE_INSTANCE_IMPL_H_ |
7 | 7 |
8 #include "content/browser/renderer_host/render_process_host_impl.h" | 8 #include "content/browser/renderer_host/render_process_host_impl.h" |
9 #include "content/common/content_export.h" | 9 #include "content/common/content_export.h" |
10 #include "content/public/browser/render_process_host_observer.h" | 10 #include "content/public/browser/render_process_host_observer.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 // Returns whether there is currently a related SiteInstance (registered with | 38 // Returns whether there is currently a related SiteInstance (registered with |
39 // BrowsingInstance) for the site of the given url. If so, we should try to | 39 // BrowsingInstance) for the site of the given url. If so, we should try to |
40 // avoid dedicating an unused SiteInstance to it (e.g., in a new tab). | 40 // avoid dedicating an unused SiteInstance to it (e.g., in a new tab). |
41 bool HasRelatedSiteInstance(const GURL& url); | 41 bool HasRelatedSiteInstance(const GURL& url); |
42 | 42 |
43 // Returns whether this SiteInstance has a process that is the wrong type for | 43 // Returns whether this SiteInstance has a process that is the wrong type for |
44 // the given URL. If so, the browser should force a process swap when | 44 // the given URL. If so, the browser should force a process swap when |
45 // navigating to the URL. | 45 // navigating to the URL. |
46 bool HasWrongProcessForURL(const GURL& url); | 46 bool HasWrongProcessForURL(const GURL& url); |
47 | 47 |
48 // Increase the number of active views in this SiteInstance. This is | 48 // Increase the number of active frames in this SiteInstance. This is |
49 // increased when a view is created, or a currently swapped out view | 49 // increased when a frame is created, or a currently swapped out frame |
50 // is swapped in. | 50 // is swapped in. |
51 void increment_active_view_count() { active_view_count_++; } | 51 void increment_active_frame_count() { active_frame_count_++; } |
52 | 52 |
53 // Decrease the number of active views in this SiteInstance. This is | 53 // Decrease the number of active frames in this SiteInstance. This is |
54 // decreased when a view is destroyed, or a currently active view is | 54 // decreased when a frame is destroyed, or a currently active frame is |
55 // swapped out. | 55 // swapped out. |
56 void decrement_active_view_count() { active_view_count_--; } | 56 void decrement_active_frame_count() { active_frame_count_--; } |
57 | 57 |
58 // Get the number of active views which belong to this | 58 // Get the number of active frames which belong to this SiteInstance. If |
59 // SiteInstance. If there is no active view left in this | 59 // there are no active frames left, all frames in this SiteInstance can be |
60 // SiteInstance, all view in this SiteInstance can be safely | 60 // safely discarded. |
61 // discarded to save memory. | 61 size_t active_frame_count() { return active_frame_count_; } |
62 size_t active_view_count() { return active_view_count_; } | |
63 | 62 |
64 // Increase the number of active WebContentses using this SiteInstance. Note | 63 // Increase the number of active WebContentses using this SiteInstance. Note |
65 // that, unlike active_view_count, this does not count pending RVHs. | 64 // that, unlike active_frame_count, this does not count pending RFHs. |
66 void IncrementRelatedActiveContentsCount(); | 65 void IncrementRelatedActiveContentsCount(); |
67 | 66 |
68 // Decrease the number of active WebContentses using this SiteInstance. Note | 67 // Decrease the number of active WebContentses using this SiteInstance. Note |
69 // that, unlike active_view_count, this does not count pending RVHs. | 68 // that, unlike active_frame_count, this does not count pending RFHs. |
70 void DecrementRelatedActiveContentsCount(); | 69 void DecrementRelatedActiveContentsCount(); |
71 | 70 |
72 // Sets the global factory used to create new RenderProcessHosts. It may be | 71 // Sets the global factory used to create new RenderProcessHosts. It may be |
73 // NULL, in which case the default BrowserRenderProcessHost will be created | 72 // NULL, in which case the default BrowserRenderProcessHost will be created |
74 // (this is the behavior if you don't call this function). The factory must | 73 // (this is the behavior if you don't call this function). The factory must |
75 // be set back to NULL before it's destroyed; ownership is not transferred. | 74 // be set back to NULL before it's destroyed; ownership is not transferred. |
76 static void set_render_process_host_factory( | 75 static void set_render_process_host_factory( |
77 const RenderProcessHostFactory* rph_factory); | 76 const RenderProcessHostFactory* rph_factory); |
78 | 77 |
79 // Get the effective URL for the given actual URL. This allows the | 78 // Get the effective URL for the given actual URL. This allows the |
(...skipping 26 matching lines...) Expand all Loading... |
106 | 105 |
107 // An object used to construct RenderProcessHosts. | 106 // An object used to construct RenderProcessHosts. |
108 static const RenderProcessHostFactory* g_render_process_host_factory_; | 107 static const RenderProcessHostFactory* g_render_process_host_factory_; |
109 | 108 |
110 // The next available SiteInstance ID. | 109 // The next available SiteInstance ID. |
111 static int32 next_site_instance_id_; | 110 static int32 next_site_instance_id_; |
112 | 111 |
113 // A unique ID for this SiteInstance. | 112 // A unique ID for this SiteInstance. |
114 int32 id_; | 113 int32 id_; |
115 | 114 |
116 // The number of active views under this SiteInstance. | 115 // The number of active frames in this SiteInstance. |
117 size_t active_view_count_; | 116 size_t active_frame_count_; |
118 | 117 |
119 // BrowsingInstance to which this SiteInstance belongs. | 118 // BrowsingInstance to which this SiteInstance belongs. |
120 scoped_refptr<BrowsingInstance> browsing_instance_; | 119 scoped_refptr<BrowsingInstance> browsing_instance_; |
121 | 120 |
122 // Current RenderProcessHost that is rendering pages for this SiteInstance. | 121 // Current RenderProcessHost that is rendering pages for this SiteInstance. |
123 // This pointer will only change once the RenderProcessHost is destructed. It | 122 // This pointer will only change once the RenderProcessHost is destructed. It |
124 // will still remain the same even if the process crashes, since in that | 123 // will still remain the same even if the process crashes, since in that |
125 // scenario the RenderProcessHost remains the same. | 124 // scenario the RenderProcessHost remains the same. |
126 RenderProcessHost* process_; | 125 RenderProcessHost* process_; |
127 | 126 |
128 // The web site that this SiteInstance is rendering pages for. | 127 // The web site that this SiteInstance is rendering pages for. |
129 GURL site_; | 128 GURL site_; |
130 | 129 |
131 // Whether SetSite has been called. | 130 // Whether SetSite has been called. |
132 bool has_site_; | 131 bool has_site_; |
133 | 132 |
134 DISALLOW_COPY_AND_ASSIGN(SiteInstanceImpl); | 133 DISALLOW_COPY_AND_ASSIGN(SiteInstanceImpl); |
135 }; | 134 }; |
136 | 135 |
137 } // namespace content | 136 } // namespace content |
138 | 137 |
139 #endif // CONTENT_BROWSER_SITE_INSTANCE_IMPL_H_ | 138 #endif // CONTENT_BROWSER_SITE_INSTANCE_IMPL_H_ |
OLD | NEW |