| 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 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 626 DCHECK_GT(stripped_spec.size(), strlen(content::kViewSourceScheme)); | 626 DCHECK_GT(stripped_spec.size(), strlen(content::kViewSourceScheme)); |
| 627 stripped_spec.erase(0, strlen(content::kViewSourceScheme) + 1); | 627 stripped_spec.erase(0, strlen(content::kViewSourceScheme) + 1); |
| 628 GURL stripped_url(stripped_spec); | 628 GURL stripped_url(stripped_spec); |
| 629 return stripped_url.is_valid() && | 629 return stripped_url.is_valid() && |
| 630 IsURLAllowedInIncognito(stripped_url, browser_context); | 630 IsURLAllowedInIncognito(stripped_url, browser_context); |
| 631 } | 631 } |
| 632 // Most URLs are allowed in incognito; the following are exceptions. | 632 // Most URLs are allowed in incognito; the following are exceptions. |
| 633 // chrome://extensions is on the list because it redirects to | 633 // chrome://extensions is on the list because it redirects to |
| 634 // chrome://settings. | 634 // chrome://settings. |
| 635 if (url.scheme() == content::kChromeUIScheme && | 635 if (url.scheme() == content::kChromeUIScheme && |
| 636 (url.host() == chrome::kChromeUISettingsHost || | 636 (url.host_piece() == chrome::kChromeUISettingsHost || |
| 637 url.host() == chrome::kChromeUIMdSettingsHost || | 637 url.host_piece() == chrome::kChromeUIMdSettingsHost || |
| 638 url.host() == chrome::kChromeUISettingsFrameHost || | 638 url.host_piece() == chrome::kChromeUISettingsFrameHost || |
| 639 url.host() == chrome::kChromeUIHelpHost || | 639 url.host_piece() == chrome::kChromeUIHelpHost || |
| 640 url.host() == chrome::kChromeUIHistoryHost || | 640 url.host_piece() == chrome::kChromeUIHistoryHost || |
| 641 url.host() == chrome::kChromeUIExtensionsHost || | 641 url.host_piece() == chrome::kChromeUIExtensionsHost || |
| 642 url.host() == chrome::kChromeUIBookmarksHost || | 642 url.host_piece() == chrome::kChromeUIBookmarksHost || |
| 643 #if !defined(OS_CHROMEOS) | 643 #if !defined(OS_CHROMEOS) |
| 644 url.host() == chrome::kChromeUIChromeSigninHost || | 644 url.host_piece() == chrome::kChromeUIChromeSigninHost || |
| 645 #endif | 645 #endif |
| 646 url.host() == chrome::kChromeUIUberHost || | 646 url.host_piece() == chrome::kChromeUIUberHost || |
| 647 url.host() == chrome::kChromeUIThumbnailHost || | 647 url.host_piece() == chrome::kChromeUIThumbnailHost || |
| 648 url.host() == chrome::kChromeUIThumbnailHost2 || | 648 url.host_piece() == chrome::kChromeUIThumbnailHost2 || |
| 649 url.host() == chrome::kChromeUIThumbnailListHost || | 649 url.host_piece() == chrome::kChromeUIThumbnailListHost || |
| 650 url.host() == chrome::kChromeUISuggestionsHost || | 650 url.host_piece() == chrome::kChromeUISuggestionsHost || |
| 651 #if defined(OS_CHROMEOS) | 651 #if defined(OS_CHROMEOS) |
| 652 url.host() == chrome::kChromeUIVoiceSearchHost || | 652 url.host_piece() == chrome::kChromeUIVoiceSearchHost || |
| 653 #endif | 653 #endif |
| 654 url.host() == chrome::kChromeUIDevicesHost)) { | 654 url.host_piece() == chrome::kChromeUIDevicesHost)) { |
| 655 return false; | 655 return false; |
| 656 } | 656 } |
| 657 | 657 |
| 658 if (url.scheme() == chrome::kChromeSearchScheme && | 658 if (url.scheme() == chrome::kChromeSearchScheme && |
| 659 (url.host() == chrome::kChromeUIThumbnailHost || | 659 (url.host_piece() == chrome::kChromeUIThumbnailHost || |
| 660 url.host() == chrome::kChromeUIThumbnailHost2 || | 660 url.host_piece() == chrome::kChromeUIThumbnailHost2 || |
| 661 url.host() == chrome::kChromeUIThumbnailListHost || | 661 url.host_piece() == chrome::kChromeUIThumbnailListHost || |
| 662 url.host() == chrome::kChromeUISuggestionsHost)) { | 662 url.host_piece() == chrome::kChromeUISuggestionsHost)) { |
| 663 return false; | 663 return false; |
| 664 } | 664 } |
| 665 | 665 |
| 666 GURL rewritten_url = url; | 666 GURL rewritten_url = url; |
| 667 bool reverse_on_redirect = false; | 667 bool reverse_on_redirect = false; |
| 668 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( | 668 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( |
| 669 &rewritten_url, browser_context, &reverse_on_redirect); | 669 &rewritten_url, browser_context, &reverse_on_redirect); |
| 670 | 670 |
| 671 // Some URLs are mapped to uber subpages. Do not allow them in incognito. | 671 // Some URLs are mapped to uber subpages. Do not allow them in incognito. |
| 672 return !(rewritten_url.scheme() == content::kChromeUIScheme && | 672 return !(rewritten_url.scheme_piece() == content::kChromeUIScheme && |
| 673 rewritten_url.host() == chrome::kChromeUIUberHost); | 673 rewritten_url.host_piece() == chrome::kChromeUIUberHost); |
| 674 } | 674 } |
| 675 | 675 |
| 676 } // namespace chrome | 676 } // namespace chrome |
| OLD | NEW |