OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "chrome/browser/prerender/prerender_contents.h" | 5 #include "chrome/browser/prerender/prerender_contents.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/process_util.h" | 10 #include "base/process_util.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 } | 56 } |
57 GURL url_; | 57 GURL url_; |
58 }; | 58 }; |
59 | 59 |
60 } // end namespace | 60 } // end namespace |
61 | 61 |
62 class PrerenderContentsFactoryImpl : public PrerenderContents::Factory { | 62 class PrerenderContentsFactoryImpl : public PrerenderContents::Factory { |
63 public: | 63 public: |
64 virtual PrerenderContents* CreatePrerenderContents( | 64 virtual PrerenderContents* CreatePrerenderContents( |
65 PrerenderManager* prerender_manager, PrerenderTracker* prerender_tracker, | 65 PrerenderManager* prerender_manager, PrerenderTracker* prerender_tracker, |
66 Profile* profile, const GURL& url, const GURL& referrer, | 66 Profile* profile, const GURL& url, const content::Referrer& referrer, |
67 Origin origin, uint8 experiment_id) OVERRIDE { | 67 Origin origin, uint8 experiment_id) OVERRIDE { |
68 return new PrerenderContents(prerender_manager, prerender_tracker, profile, | 68 return new PrerenderContents(prerender_manager, prerender_tracker, profile, |
69 url, referrer, origin, experiment_id); | 69 url, referrer, origin, experiment_id); |
70 } | 70 } |
71 }; | 71 }; |
72 | 72 |
73 PrerenderContents::PendingPrerenderData::PendingPrerenderData( | 73 PrerenderContents::PendingPrerenderData::PendingPrerenderData( |
74 Origin origin, | 74 Origin origin, |
75 const GURL& url, | 75 const GURL& url, |
76 const GURL& referrer) | 76 const content::Referrer& referrer) |
77 : origin(origin), | 77 : origin(origin), |
78 url(url), | 78 url(url), |
79 referrer(referrer) { | 79 referrer(referrer) { |
80 } | 80 } |
81 | 81 |
82 // TabContentsDelegateImpl ----------------------------------------------------- | 82 // TabContentsDelegateImpl ----------------------------------------------------- |
83 | 83 |
84 class PrerenderContents::TabContentsDelegateImpl | 84 class PrerenderContents::TabContentsDelegateImpl |
85 : public TabContentsDelegate { | 85 : public TabContentsDelegate { |
86 public: | 86 public: |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 AddPageVector; | 138 AddPageVector; |
139 | 139 |
140 // Caches pages to be added to the history. | 140 // Caches pages to be added to the history. |
141 AddPageVector add_page_vector_; | 141 AddPageVector add_page_vector_; |
142 | 142 |
143 PrerenderContents* prerender_contents_; | 143 PrerenderContents* prerender_contents_; |
144 }; | 144 }; |
145 | 145 |
146 void PrerenderContents::AddPendingPrerender(Origin origin, | 146 void PrerenderContents::AddPendingPrerender(Origin origin, |
147 const GURL& url, | 147 const GURL& url, |
148 const GURL& referrer) { | 148 const content::Referrer& referrer) { |
149 pending_prerender_list_.push_back( | 149 pending_prerender_list_.push_back( |
150 PendingPrerenderData(origin, url, referrer)); | 150 PendingPrerenderData(origin, url, referrer)); |
151 } | 151 } |
152 | 152 |
153 bool PrerenderContents::IsPendingEntry(const GURL& url) const { | 153 bool PrerenderContents::IsPendingEntry(const GURL& url) const { |
154 for (PendingPrerenderList::const_iterator it = | 154 for (PendingPrerenderList::const_iterator it = |
155 pending_prerender_list_.begin(); | 155 pending_prerender_list_.begin(); |
156 it != pending_prerender_list_.end(); | 156 it != pending_prerender_list_.end(); |
157 ++it) { | 157 ++it) { |
158 if (it->url == url) | 158 if (it->url == url) |
(...skipping 14 matching lines...) Expand all Loading... |
173 it->referrer, | 173 it->referrer, |
174 NULL); | 174 NULL); |
175 } | 175 } |
176 } | 176 } |
177 | 177 |
178 PrerenderContents::PrerenderContents( | 178 PrerenderContents::PrerenderContents( |
179 PrerenderManager* prerender_manager, | 179 PrerenderManager* prerender_manager, |
180 PrerenderTracker* prerender_tracker, | 180 PrerenderTracker* prerender_tracker, |
181 Profile* profile, | 181 Profile* profile, |
182 const GURL& url, | 182 const GURL& url, |
183 const GURL& referrer, | 183 const content::Referrer& referrer, |
184 Origin origin, | 184 Origin origin, |
185 uint8 experiment_id) | 185 uint8 experiment_id) |
186 : prerender_manager_(prerender_manager), | 186 : prerender_manager_(prerender_manager), |
187 prerender_tracker_(prerender_tracker), | 187 prerender_tracker_(prerender_tracker), |
188 prerender_url_(url), | 188 prerender_url_(url), |
189 referrer_(referrer), | 189 referrer_(referrer), |
190 profile_(profile), | 190 profile_(profile), |
191 page_id_(0), | 191 page_id_(0), |
192 has_stopped_loading_(false), | 192 has_stopped_loading_(false), |
193 final_status_(FINAL_STATUS_MAX), | 193 final_status_(FINAL_STATUS_MAX), |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 content::Source<TabContents>(new_contents)); | 320 content::Source<TabContents>(new_contents)); |
321 | 321 |
322 DCHECK(load_start_time_.is_null()); | 322 DCHECK(load_start_time_.is_null()); |
323 load_start_time_ = base::TimeTicks::Now(); | 323 load_start_time_ = base::TimeTicks::Now(); |
324 | 324 |
325 content::PageTransition transition = content::PAGE_TRANSITION_LINK; | 325 content::PageTransition transition = content::PAGE_TRANSITION_LINK; |
326 if (origin_ == ORIGIN_OMNIBOX_EXACT || origin_ == ORIGIN_OMNIBOX_EXACT_FULL) | 326 if (origin_ == ORIGIN_OMNIBOX_EXACT || origin_ == ORIGIN_OMNIBOX_EXACT_FULL) |
327 transition = content::PAGE_TRANSITION_TYPED; | 327 transition = content::PAGE_TRANSITION_TYPED; |
328 new_contents->controller().LoadURL( | 328 new_contents->controller().LoadURL( |
329 prerender_url_, | 329 prerender_url_, |
330 content::Referrer(referrer_, WebKit::WebReferrerPolicyDefault), | 330 referrer_, |
331 transition, std::string()); | 331 transition, std::string()); |
332 } | 332 } |
333 | 333 |
334 bool PrerenderContents::GetChildId(int* child_id) const { | 334 bool PrerenderContents::GetChildId(int* child_id) const { |
335 CHECK(child_id); | 335 CHECK(child_id); |
336 DCHECK_GE(child_id_, -1); | 336 DCHECK_GE(child_id_, -1); |
337 *child_id = child_id_; | 337 *child_id = child_id_; |
338 return child_id_ != -1; | 338 return child_id_ != -1; |
339 } | 339 } |
340 | 340 |
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
676 bool PrerenderContents::IsCrossSiteNavigationPending() const { | 676 bool PrerenderContents::IsCrossSiteNavigationPending() const { |
677 if (!prerender_contents_.get() || !prerender_contents_->tab_contents()) | 677 if (!prerender_contents_.get() || !prerender_contents_->tab_contents()) |
678 return false; | 678 return false; |
679 const TabContents* tab_contents = prerender_contents_->tab_contents(); | 679 const TabContents* tab_contents = prerender_contents_->tab_contents(); |
680 return (tab_contents->GetSiteInstance() != | 680 return (tab_contents->GetSiteInstance() != |
681 tab_contents->GetPendingSiteInstance()); | 681 tab_contents->GetPendingSiteInstance()); |
682 } | 682 } |
683 | 683 |
684 | 684 |
685 } // namespace prerender | 685 } // namespace prerender |
OLD | NEW |