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

Side by Side Diff: chrome/browser/ui/browser_instant_controller.cc

Issue 2847173004: Switch SupportsUserData uses to use unique_ptr. (Closed)
Patch Set: Created 3 years, 7 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
OLDNEW
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/ui/browser_instant_controller.h" 5 #include "chrome/browser/ui/browser_instant_controller.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/metrics/user_metrics.h" 8 #include "base/metrics/user_metrics.h"
9 #include "chrome/browser/infobars/infobar_service.h" 9 #include "chrome/browser/infobars/infobar_service.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
(...skipping 21 matching lines...) Expand all
32 32
33 // Helpers -------------------------------------------------------------------- 33 // Helpers --------------------------------------------------------------------
34 34
35 namespace { 35 namespace {
36 36
37 // Helper class for posting a task to reload a tab, to avoid doing a re-entrant 37 // Helper class for posting a task to reload a tab, to avoid doing a re-entrant
38 // navigation, since it can be called when starting a navigation. This class 38 // navigation, since it can be called when starting a navigation. This class
39 // makes sure to only execute the reload if the WebContents still exists. 39 // makes sure to only execute the reload if the WebContents still exists.
40 class TabReloader : public content::WebContentsUserData<TabReloader> { 40 class TabReloader : public content::WebContentsUserData<TabReloader> {
41 public: 41 public:
42 ~TabReloader() override {}
43
42 static void Reload(content::WebContents* web_contents) { 44 static void Reload(content::WebContents* web_contents) {
43 TabReloader::CreateForWebContents(web_contents); 45 TabReloader::CreateForWebContents(web_contents);
44 } 46 }
45 47
46 private: 48 private:
47 friend class content::WebContentsUserData<TabReloader>; 49 friend class content::WebContentsUserData<TabReloader>;
48 50
49 explicit TabReloader(content::WebContents* web_contents) 51 explicit TabReloader(content::WebContents* web_contents)
50 : web_contents_(web_contents), weak_ptr_factory_(this) { 52 : web_contents_(web_contents), weak_ptr_factory_(this) {
51 content::BrowserThread::PostTask( 53 content::BrowserThread::PostTask(
52 content::BrowserThread::UI, FROM_HERE, 54 content::BrowserThread::UI, FROM_HERE,
53 base::BindOnce(&TabReloader::ReloadImpl, 55 base::BindOnce(&TabReloader::ReloadImpl,
54 weak_ptr_factory_.GetWeakPtr())); 56 weak_ptr_factory_.GetWeakPtr()));
55 } 57 }
56 ~TabReloader() override {}
57 58
58 void ReloadImpl() { 59 void ReloadImpl() {
59 web_contents_->GetController().Reload(content::ReloadType::NORMAL, false); 60 web_contents_->GetController().Reload(content::ReloadType::NORMAL, false);
60 61
61 // As the reload was not triggered by the user we don't want to close any 62 // As the reload was not triggered by the user we don't want to close any
62 // infobars. We have to tell the InfoBarService after the reload, 63 // infobars. We have to tell the InfoBarService after the reload,
63 // otherwise it would ignore this call when 64 // otherwise it would ignore this call when
64 // WebContentsObserver::DidStartNavigationToPendingEntry is invoked. 65 // WebContentsObserver::DidStartNavigationToPendingEntry is invoked.
65 InfoBarService::FromWebContents(web_contents_)->set_ignore_next_reload(); 66 InfoBarService::FromWebContents(web_contents_)->set_ignore_next_reload();
66 67
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 params.referrer = content::Referrer(); 196 params.referrer = content::Referrer();
196 params.transition_type = ui::PAGE_TRANSITION_RELOAD; 197 params.transition_type = ui::PAGE_TRANSITION_RELOAD;
197 contents->GetController().LoadURLWithParams(params); 198 contents->GetController().LoadURLWithParams(params);
198 } else { 199 } else {
199 // Reload the contents to ensure that it gets assigned to a 200 // Reload the contents to ensure that it gets assigned to a
200 // non-privileged renderer. 201 // non-privileged renderer.
201 TabReloader::Reload(contents); 202 TabReloader::Reload(contents);
202 } 203 }
203 } 204 }
204 } 205 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698