Chromium Code Reviews| Index: chrome/browser/ui/webui/signin/inline_login_ui.cc |
| diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc |
| index 4c9a9fb8e5b3b7daf5e76578393777634b481a2b..4daebdece819c11d31173a9dc0099223935eaf95 100644 |
| --- a/chrome/browser/ui/webui/signin/inline_login_ui.cc |
| +++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc |
| @@ -4,10 +4,14 @@ |
| #include "chrome/browser/ui/webui/signin/inline_login_ui.h" |
| +#include "base/files/file_util.h" |
| +#include "base/path_service.h" |
| +#include "base/strings/string_split.h" |
| #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" |
| #include "chrome/browser/extensions/tab_helper.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/sessions/session_tab_helper.h" |
| +#include "chrome/common/chrome_paths.h" |
| #include "chrome/common/url_constants.h" |
| #include "chrome/grit/chromium_strings.h" |
| #include "components/signin/core/common/profile_management_switches.h" |
| @@ -25,6 +29,29 @@ |
| namespace { |
| +bool HandleTestFileRequestCallback( |
| + const std::string& path, |
| + const content::WebUIDataSource::GotDataCallback& callback) { |
| + std::vector<std::string> url_substr; |
| + base::SplitString(path, '/', &url_substr); |
| + if (url_substr.size() != 2 || url_substr[0] != "test") |
| + return false; |
| + |
| + std::string contents; |
| + base::FilePath test_data_dir; |
| + PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir); |
| + if (!base::ReadFileToString( |
| + test_data_dir.AppendASCII("webui").AppendASCII(url_substr[1]), |
| + &contents, |
| + std::string::npos)) |
| + return false; |
| + |
| + base::RefCountedString* ref_contents = new base::RefCountedString(); |
| + ref_contents->data() = contents; |
| + callback.Run(ref_contents); |
| + return true; |
| +} |
| + |
| content::WebUIDataSource* CreateWebUIDataSource() { |
| content::WebUIDataSource* source = |
| content::WebUIDataSource::Create(chrome::kChromeUIChromeSigninHost); |
| @@ -35,6 +62,7 @@ content::WebUIDataSource* CreateWebUIDataSource() { |
| bool is_webview_signin_enabled = switches::IsEnableWebviewBasedSignin(); |
| source->SetDefaultResource(is_webview_signin_enabled ? |
| IDR_NEW_INLINE_LOGIN_HTML : IDR_INLINE_LOGIN_HTML); |
| + source->SetRequestFilter(base::Bind(&HandleTestFileRequestCallback)); |
|
xiyuan
2015/03/18 16:11:04
We should only add this when the code runs as test
Xi Han
2015/03/18 20:36:26
That is also what my concern is. Thanks!
|
| source->AddResourcePath("inline_login.css", IDR_INLINE_LOGIN_CSS); |
| source->AddResourcePath("inline_login.js", IDR_INLINE_LOGIN_JS); |
| source->AddResourcePath("gaia_auth_host.js", is_webview_signin_enabled ? |