| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #include "chrome/browser/instant/instant_loader.h" | 5 #include "chrome/browser/instant/instant_loader.h" |
| 6 | 6 |
| 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
| 8 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h" | 8 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h" |
| 9 #include "chrome/browser/favicon/favicon_tab_helper.h" | 9 #include "chrome/browser/favicon/favicon_tab_helper.h" |
| 10 #include "chrome/browser/history/history_tab_helper.h" | 10 #include "chrome/browser/history/history_tab_helper.h" |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 } | 190 } |
| 191 | 191 |
| 192 InstantLoader::InstantLoader(InstantController* controller, | 192 InstantLoader::InstantLoader(InstantController* controller, |
| 193 const std::string& instant_url) | 193 const std::string& instant_url) |
| 194 : client_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), | 194 : client_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
| 195 controller_(controller), | 195 controller_(controller), |
| 196 delegate_(new WebContentsDelegateImpl( | 196 delegate_(new WebContentsDelegateImpl( |
| 197 ALLOW_THIS_IN_INITIALIZER_LIST(this))), | 197 ALLOW_THIS_IN_INITIALIZER_LIST(this))), |
| 198 instant_url_(instant_url), | 198 instant_url_(instant_url), |
| 199 supports_instant_(false), | 199 supports_instant_(false), |
| 200 is_pointer_down_from_activate_(false) { | 200 is_pointer_down_from_activate_(false), |
| 201 is_in_fallback_mode_(false) { |
| 201 } | 202 } |
| 202 | 203 |
| 203 InstantLoader::~InstantLoader() { | 204 InstantLoader::~InstantLoader() { |
| 204 } | 205 } |
| 205 | 206 |
| 206 void InstantLoader::InitContents(const content::WebContents* active_tab) { | 207 void InstantLoader::InitContents(const content::WebContents* active_tab) { |
| 207 content::WebContents::CreateParams create_params( | 208 content::WebContents::CreateParams create_params( |
| 208 active_tab->GetBrowserContext()); | 209 active_tab->GetBrowserContext()); |
| 209 if (active_tab) | 210 if (active_tab) |
| 210 create_params.initial_size = active_tab->GetView()->GetContainerSize(); | 211 create_params.initial_size = active_tab->GetView()->GetContainerSize(); |
| 211 contents_.reset(content::WebContents::CreateWithSessionStorage( | 212 contents_.reset(content::WebContents::CreateWithSessionStorage( |
| 212 create_params, | 213 create_params, |
| 213 active_tab->GetController().GetSessionStorageNamespaceMap())); | 214 active_tab->GetController().GetSessionStorageNamespaceMap())); |
| 214 SetupPreviewContents(); | 215 SetupPreviewContents(); |
| 215 | 216 |
| 216 // This HTTP header and value are set on loads that originate from Instant. | 217 // This HTTP header and value are set on loads that originate from Instant. |
| 217 const char kInstantHeader[] = "X-Purpose: Instant"; | 218 const char kInstantHeader[] = "X-Purpose: Instant"; |
| 218 DVLOG(1) << "LoadURL: " << instant_url_; | 219 DVLOG(1) << "LoadURL: " << instant_url_; |
| 219 contents_->GetController().LoadURL(GURL(instant_url_), content::Referrer(), | 220 contents_->GetController().LoadURL(GURL(instant_url_), content::Referrer(), |
| 220 content::PAGE_TRANSITION_GENERATED, kInstantHeader); | 221 content::PAGE_TRANSITION_GENERATED, kInstantHeader); |
| 221 contents_->WasHidden(); | 222 contents_->WasHidden(); |
| 222 } | 223 } |
| 223 | 224 |
| 224 content::WebContents* InstantLoader::ReleaseContents() { | 225 content::WebContents* InstantLoader::ReleaseContents() { |
| 225 CleanupPreviewContents(); | 226 CleanupPreviewContents(); |
| 226 return contents_.release(); | 227 return contents_.release(); |
| 227 } | 228 } |
| 228 | 229 |
| 230 void InstantLoader::set_is_in_fallback_mode(bool value) { |
| 231 is_in_fallback_mode_ = value; |
| 232 } |
| 233 |
| 229 void InstantLoader::DidNavigate( | 234 void InstantLoader::DidNavigate( |
| 230 const history::HistoryAddPageArgs& add_page_args) { | 235 const history::HistoryAddPageArgs& add_page_args) { |
| 231 last_navigation_ = add_page_args; | 236 last_navigation_ = add_page_args; |
| 232 } | 237 } |
| 233 | 238 |
| 234 bool InstantLoader::IsUsingLocalPreview() const { | 239 bool InstantLoader::IsUsingLocalPreview() const { |
| 235 return instant_url_ == InstantController::kLocalOmniboxPopupURL; | 240 return instant_url_ == InstantController::kLocalOmniboxPopupURL; |
| 236 } | 241 } |
| 237 | 242 |
| 238 void InstantLoader::Update(const string16& text, | 243 void InstantLoader::Update(const string16& text, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 252 } | 257 } |
| 253 | 258 |
| 254 void InstantLoader::SetPopupBounds(const gfx::Rect& bounds) { | 259 void InstantLoader::SetPopupBounds(const gfx::Rect& bounds) { |
| 255 client_.SetPopupBounds(bounds); | 260 client_.SetPopupBounds(bounds); |
| 256 } | 261 } |
| 257 | 262 |
| 258 void InstantLoader::SetMarginSize(int start, int end) { | 263 void InstantLoader::SetMarginSize(int start, int end) { |
| 259 client_.SetMarginSize(start, end); | 264 client_.SetMarginSize(start, end); |
| 260 } | 265 } |
| 261 | 266 |
| 267 void InstantLoader::InitializeFonts() { |
| 268 client_.InitializeFonts(); |
| 269 } |
| 270 |
| 262 void InstantLoader::SendAutocompleteResults( | 271 void InstantLoader::SendAutocompleteResults( |
| 263 const std::vector<InstantAutocompleteResult>& results) { | 272 const std::vector<InstantAutocompleteResult>& results) { |
| 264 client_.SendAutocompleteResults(results); | 273 client_.SendAutocompleteResults(results); |
| 265 } | 274 } |
| 266 | 275 |
| 267 void InstantLoader::UpOrDownKeyPressed(int count) { | 276 void InstantLoader::UpOrDownKeyPressed(int count) { |
| 268 client_.UpOrDownKeyPressed(count); | 277 client_.UpOrDownKeyPressed(count); |
| 269 } | 278 } |
| 270 | 279 |
| 271 void InstantLoader::SearchModeChanged(const chrome::search::Mode& mode) { | 280 void InstantLoader::SearchModeChanged(const chrome::search::Mode& mode) { |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 430 content::WebContents* new_contents) { | 439 content::WebContents* new_contents) { |
| 431 DCHECK_EQ(old_contents, contents()); | 440 DCHECK_EQ(old_contents, contents()); |
| 432 CleanupPreviewContents(); | 441 CleanupPreviewContents(); |
| 433 // We release here without deleting so that the caller still has the | 442 // We release here without deleting so that the caller still has the |
| 434 // responsibility for deleting the WebContents. | 443 // responsibility for deleting the WebContents. |
| 435 ignore_result(contents_.release()); | 444 ignore_result(contents_.release()); |
| 436 contents_.reset(new_contents); | 445 contents_.reset(new_contents); |
| 437 SetupPreviewContents(); | 446 SetupPreviewContents(); |
| 438 controller_->SwappedWebContents(); | 447 controller_->SwappedWebContents(); |
| 439 } | 448 } |
| OLD | NEW |