Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: chrome/browser/instant/instant_controller.cc

Issue 7689003: Don't do Instant previews of chrome://crash (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Centralize debug URLs Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/instant/instant_controller.h ('k') | chrome/common/url_constants.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/instant/instant_controller.h" 5 #include "chrome/browser/instant/instant_controller.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/rand_util.h" 10 #include "base/rand_util.h"
(...skipping 14 matching lines...) Expand all
25 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h" 25 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h"
26 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 26 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
27 #include "chrome/common/chrome_notification_types.h" 27 #include "chrome/common/chrome_notification_types.h"
28 #include "chrome/common/chrome_switches.h" 28 #include "chrome/common/chrome_switches.h"
29 #include "chrome/common/pref_names.h" 29 #include "chrome/common/pref_names.h"
30 #include "chrome/common/url_constants.h" 30 #include "chrome/common/url_constants.h"
31 #include "content/browser/renderer_host/render_widget_host_view.h" 31 #include "content/browser/renderer_host/render_widget_host_view.h"
32 #include "content/browser/tab_contents/tab_contents.h" 32 #include "content/browser/tab_contents/tab_contents.h"
33 #include "content/common/notification_service.h" 33 #include "content/common/notification_service.h"
34 34
35 namespace {
36
35 // Number of ms to delay between loading urls. 37 // Number of ms to delay between loading urls.
36 static const int kUpdateDelayMS = 200; 38 const int kUpdateDelayMS = 200;
37 39
38 // Amount of time we delay before showing pages that have a non-200 status. 40 // Amount of time we delay before showing pages that have a non-200 status.
39 static const int kShowDelayMS = 800; 41 const int kShowDelayMS = 800;
42
43 bool IsBlacklistedUrl(const GURL& url) {
44 for (int i = 0; i < chrome::kNumberOfChromeDebugURLs; ++i) {
45 if (url == GURL(chrome::kChromeDebugURLs[i]))
46 return true;
47 }
48 return false;
49 }
50
51 }
40 52
41 // static 53 // static
42 InstantController::HostBlacklist* InstantController::host_blacklist_ = NULL; 54 InstantController::HostBlacklist* InstantController::host_blacklist_ = NULL;
43 55
44 InstantController::InstantController(Profile* profile, 56 InstantController::InstantController(Profile* profile,
45 InstantDelegate* delegate) 57 InstantDelegate* delegate)
46 : delegate_(delegate), 58 : delegate_(delegate),
47 tab_contents_(NULL), 59 tab_contents_(NULL),
48 is_active_(false), 60 is_active_(false),
49 displayable_loader_(NULL), 61 displayable_loader_(NULL),
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 719
708 if (match.destination_url.SchemeIs(chrome::kJavaScriptScheme)) 720 if (match.destination_url.SchemeIs(chrome::kJavaScriptScheme))
709 return PREVIEW_CONDITION_JAVASCRIPT_SCHEME; 721 return PREVIEW_CONDITION_JAVASCRIPT_SCHEME;
710 722
711 // Extension keywords don't have a real destination URL. 723 // Extension keywords don't have a real destination URL.
712 if (match.template_url && match.template_url->IsExtensionKeyword()) 724 if (match.template_url && match.template_url->IsExtensionKeyword())
713 return PREVIEW_CONDITION_EXTENSION_KEYWORD; 725 return PREVIEW_CONDITION_EXTENSION_KEYWORD;
714 726
715 // Was the host blacklisted? 727 // Was the host blacklisted?
716 if (host_blacklist_ && host_blacklist_->count(match.destination_url.host())) 728 if (host_blacklist_ && host_blacklist_->count(match.destination_url.host()))
717 return PREVIEW_CONDITION_BLACKLISTED; 729 return PREVIEW_CONDITION_BLACKLISTED_HOST;
730
731 // Was the URL blacklisted?
732 if (IsBlacklistedUrl(match.destination_url))
733 return PREVIEW_CONDITION_BLACKLISTED_URL;
718 734
719 const CommandLine* cl = CommandLine::ForCurrentProcess(); 735 const CommandLine* cl = CommandLine::ForCurrentProcess();
720 if ((cl->HasSwitch(switches::kRestrictInstantToSearch) || 736 if ((cl->HasSwitch(switches::kRestrictInstantToSearch) ||
721 InstantFieldTrial::IsExperimentGroup(tab_contents_->profile())) && 737 InstantFieldTrial::IsExperimentGroup(tab_contents_->profile())) &&
722 match.type != AutocompleteMatch::SEARCH_WHAT_YOU_TYPED && 738 match.type != AutocompleteMatch::SEARCH_WHAT_YOU_TYPED &&
723 match.type != AutocompleteMatch::SEARCH_HISTORY && 739 match.type != AutocompleteMatch::SEARCH_HISTORY &&
724 match.type != AutocompleteMatch::SEARCH_SUGGEST && 740 match.type != AutocompleteMatch::SEARCH_SUGGEST &&
725 match.type != AutocompleteMatch::SEARCH_OTHER_ENGINE) { 741 match.type != AutocompleteMatch::SEARCH_OTHER_ENGINE) {
726 return PREVIEW_CONDITION_INSTANT_SEARCH_ONLY; 742 return PREVIEW_CONDITION_INSTANT_SEARCH_ONLY;
727 } 743 }
(...skipping 18 matching lines...) Expand all
746 if (destroy_factory_.empty()) { 762 if (destroy_factory_.empty()) {
747 MessageLoop::current()->PostTask( 763 MessageLoop::current()->PostTask(
748 FROM_HERE, destroy_factory_.NewRunnableMethod( 764 FROM_HERE, destroy_factory_.NewRunnableMethod(
749 &InstantController::DestroyLoaders)); 765 &InstantController::DestroyLoaders));
750 } 766 }
751 } 767 }
752 768
753 void InstantController::DestroyLoaders() { 769 void InstantController::DestroyLoaders() {
754 loaders_to_destroy_.reset(); 770 loaders_to_destroy_.reset();
755 } 771 }
OLDNEW
« no previous file with comments | « chrome/browser/instant/instant_controller.h ('k') | chrome/common/url_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698