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

Unified Diff: chrome/browser/ui/webui/signin/inline_login_ui.cc

Issue 1004253002: Enable <webview>.executeScript outside of Apps and Extensions [2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add a test. Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
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 ?

Powered by Google App Engine
This is Rietveld 408576698