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

Side by Side Diff: chrome/browser/ui/webui/settings/md_settings_ui.cc

Issue 2076083003: MD Settings: ... and we fixed all CHECK()-based URL crashes once and for all. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/webui/settings/md_settings_ui.h" 5 #include "chrome/browser/ui/webui/settings/md_settings_ui.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 #endif // defined(OS_CHROMEOS) 46 #endif // defined(OS_CHROMEOS)
47 47
48 #if defined(USE_NSS_CERTS) 48 #if defined(USE_NSS_CERTS)
49 #include "chrome/browser/ui/webui/settings/certificates_handler.h" 49 #include "chrome/browser/ui/webui/settings/certificates_handler.h"
50 #elif defined(OS_WIN) || defined(OS_MACOSX) 50 #elif defined(OS_WIN) || defined(OS_MACOSX)
51 #include "chrome/browser/ui/webui/settings/native_certificates_handler.h" 51 #include "chrome/browser/ui/webui/settings/native_certificates_handler.h"
52 #endif // defined(USE_NSS_CERTS) 52 #endif // defined(USE_NSS_CERTS)
53 53
54 namespace settings { 54 namespace settings {
55 55
56 MdSettingsUI::MdSettingsUI(content::WebUI* web_ui) 56 MdSettingsUI::MdSettingsUI(content::WebUI* web_ui, const GURL& url)
57 : content::WebUIController(web_ui), 57 : content::WebUIController(web_ui),
58 WebContentsObserver(web_ui->GetWebContents()) { 58 WebContentsObserver(web_ui->GetWebContents()) {
59 Profile* profile = Profile::FromWebUI(web_ui); 59 Profile* profile = Profile::FromWebUI(web_ui);
60 AddSettingsPageUIHandler(new AppearanceHandler(web_ui)); 60 AddSettingsPageUIHandler(new AppearanceHandler(web_ui));
61 61
62 #if defined(USE_NSS_CERTS) 62 #if defined(USE_NSS_CERTS)
63 AddSettingsPageUIHandler(new CertificatesHandler(false)); 63 AddSettingsPageUIHandler(new CertificatesHandler(false));
64 #elif defined(OS_WIN) || defined(OS_MACOSX) 64 #elif defined(OS_WIN) || defined(OS_MACOSX)
65 AddSettingsPageUIHandler(new NativeCertificatesHandler()); 65 AddSettingsPageUIHandler(new NativeCertificatesHandler());
66 #endif // defined(USE_NSS_CERTS) 66 #endif // defined(USE_NSS_CERTS)
(...skipping 14 matching lines...) Expand all
81 AddSettingsPageUIHandler(new chromeos::settings::ChangePictureHandler()); 81 AddSettingsPageUIHandler(new chromeos::settings::ChangePictureHandler());
82 AddSettingsPageUIHandler(new chromeos::settings::KeyboardHandler(web_ui)); 82 AddSettingsPageUIHandler(new chromeos::settings::KeyboardHandler(web_ui));
83 #else 83 #else
84 AddSettingsPageUIHandler(new DefaultBrowserHandler(web_ui)); 84 AddSettingsPageUIHandler(new DefaultBrowserHandler(web_ui));
85 AddSettingsPageUIHandler(new ManageProfileHandler(profile)); 85 AddSettingsPageUIHandler(new ManageProfileHandler(profile));
86 AddSettingsPageUIHandler(new SystemHandler()); 86 AddSettingsPageUIHandler(new SystemHandler());
87 #endif 87 #endif
88 88
89 // Host must be derived from the visible URL, since this might be serving 89 // Host must be derived from the visible URL, since this might be serving
90 // either chrome://settings or chrome://md-settings. 90 // either chrome://settings or chrome://md-settings.
91 GURL url = web_ui->GetWebContents()->GetVisibleURL();
92
93 if (url.SchemeIs(content::kViewSourceScheme))
94 url = GURL(url.GetContent());
95
96 CHECK(url.GetOrigin() == GURL(chrome::kChromeUISettingsURL).GetOrigin() || 91 CHECK(url.GetOrigin() == GURL(chrome::kChromeUISettingsURL).GetOrigin() ||
michaelpg 2016/06/17 20:57:11 it would be nice if we could just crash the tab in
Dan Beam 2016/06/17 21:05:15 CHECK() is stuff that should never happen, so I do
97 url.GetOrigin() == GURL(chrome::kChromeUIMdSettingsURL).GetOrigin()); 92 url.GetOrigin() == GURL(chrome::kChromeUIMdSettingsURL).GetOrigin());
98 93
99 content::WebUIDataSource* html_source = 94 content::WebUIDataSource* html_source =
100 content::WebUIDataSource::Create(url.host()); 95 content::WebUIDataSource::Create(url.host());
101 96
102 #if defined(OS_CHROMEOS) 97 #if defined(OS_CHROMEOS)
103 chromeos::settings::EasyUnlockSettingsHandler* easy_unlock_handler = 98 chromeos::settings::EasyUnlockSettingsHandler* easy_unlock_handler =
104 chromeos::settings::EasyUnlockSettingsHandler::Create(html_source, 99 chromeos::settings::EasyUnlockSettingsHandler::Create(html_source,
105 profile); 100 profile);
106 if (easy_unlock_handler) 101 if (easy_unlock_handler)
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 UMA_HISTOGRAM_TIMES("Settings.LoadDocumentTime.MD", 140 UMA_HISTOGRAM_TIMES("Settings.LoadDocumentTime.MD",
146 base::Time::Now() - load_start_time_); 141 base::Time::Now() - load_start_time_);
147 } 142 }
148 143
149 void MdSettingsUI::DocumentOnLoadCompletedInMainFrame() { 144 void MdSettingsUI::DocumentOnLoadCompletedInMainFrame() {
150 UMA_HISTOGRAM_TIMES("Settings.LoadCompletedTime.MD", 145 UMA_HISTOGRAM_TIMES("Settings.LoadCompletedTime.MD",
151 base::Time::Now() - load_start_time_); 146 base::Time::Now() - load_start_time_);
152 } 147 }
153 148
154 } // namespace settings 149 } // namespace settings
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/settings/md_settings_ui.h ('k') | chrome/browser/ui/webui/settings/md_settings_ui_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698