Chromium Code Reviews| 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 #include "chrome/browser/ui/browser_navigator.h" | 5 #include "chrome/browser/ui/browser_navigator.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 241 params->tabstrip_add_types |= TabStripModel::ADD_ACTIVE; | 241 params->tabstrip_add_types |= TabStripModel::ADD_ACTIVE; |
| 242 break; | 242 break; |
| 243 | 243 |
| 244 default: | 244 default: |
| 245 break; | 245 break; |
| 246 } | 246 } |
| 247 } | 247 } |
| 248 | 248 |
| 249 // Obtain the profile used by the code that originated the Navigate() request. | 249 // Obtain the profile used by the code that originated the Navigate() request. |
| 250 Profile* GetSourceProfile(chrome::NavigateParams* params) { | 250 Profile* GetSourceProfile(chrome::NavigateParams* params) { |
| 251 if (params->source_site_instance) { | |
|
alexmos
2016/10/04 21:24:44
Turned out the source_site_instance check needed t
Lei Zhang
2016/10/06 00:36:47
You may want to write down some of your notes here
alexmos
2016/10/06 00:42:00
Thanks! I'll add the comment in a followup so I c
| |
| 252 return Profile::FromBrowserContext( | |
| 253 params->source_site_instance->GetBrowserContext()); | |
| 254 } | |
| 255 | |
| 251 if (params->source_contents) { | 256 if (params->source_contents) { |
| 252 return Profile::FromBrowserContext( | 257 return Profile::FromBrowserContext( |
| 253 params->source_contents->GetBrowserContext()); | 258 params->source_contents->GetBrowserContext()); |
| 254 } | 259 } |
| 255 | 260 |
| 256 return params->initiating_profile; | 261 return params->initiating_profile; |
| 257 } | 262 } |
| 258 | 263 |
| 259 void LoadURLInContents(WebContents* target_contents, | 264 void LoadURLInContents(WebContents* target_contents, |
| 260 const GURL& url, | 265 const GURL& url, |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 458 } | 463 } |
| 459 } | 464 } |
| 460 } | 465 } |
| 461 #endif | 466 #endif |
| 462 | 467 |
| 463 // Navigate() must not return early after this point. | 468 // Navigate() must not return early after this point. |
| 464 | 469 |
| 465 if (GetSourceProfile(params) != params->browser->profile()) { | 470 if (GetSourceProfile(params) != params->browser->profile()) { |
| 466 // A tab is being opened from a link from a different profile, we must reset | 471 // A tab is being opened from a link from a different profile, we must reset |
| 467 // source information that may cause state to be shared. | 472 // source information that may cause state to be shared. |
| 468 params->source_contents = NULL; | 473 params->source_contents = nullptr; |
| 474 params->source_site_instance = nullptr; | |
| 469 params->referrer = content::Referrer(); | 475 params->referrer = content::Referrer(); |
| 470 } | 476 } |
| 471 | 477 |
| 472 // Make sure the Browser is shown if params call for it. | 478 // Make sure the Browser is shown if params call for it. |
| 473 ScopedBrowserShower shower(params); | 479 ScopedBrowserShower shower(params); |
| 474 | 480 |
| 475 // Makes sure any WebContents created by this function is destroyed if | 481 // Makes sure any WebContents created by this function is destroyed if |
| 476 // not properly added to a tab strip. | 482 // not properly added to a tab strip. |
| 477 ScopedTargetContentsOwner target_contents_owner(params); | 483 ScopedTargetContentsOwner target_contents_owner(params); |
| 478 | 484 |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 667 bool reverse_on_redirect = false; | 673 bool reverse_on_redirect = false; |
| 668 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( | 674 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( |
| 669 &rewritten_url, browser_context, &reverse_on_redirect); | 675 &rewritten_url, browser_context, &reverse_on_redirect); |
| 670 | 676 |
| 671 // Some URLs are mapped to uber subpages. Do not allow them in incognito. | 677 // Some URLs are mapped to uber subpages. Do not allow them in incognito. |
| 672 return !(rewritten_url.scheme() == content::kChromeUIScheme && | 678 return !(rewritten_url.scheme() == content::kChromeUIScheme && |
| 673 rewritten_url.host() == chrome::kChromeUIUberHost); | 679 rewritten_url.host() == chrome::kChromeUIUberHost); |
| 674 } | 680 } |
| 675 | 681 |
| 676 } // namespace chrome | 682 } // namespace chrome |
| OLD | NEW |