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

Unified Diff: chrome/browser/devtools/devtools_window.cc

Issue 2403633002: [DevTools] Move sanitize url to devtools_ui.cc. (Closed)
Patch Set: cleanup Created 4 years, 2 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
« no previous file with comments | « no previous file | chrome/browser/ui/webui/devtools_ui.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/devtools/devtools_window.cc
diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc
index 7875ce06d8b2d1f2fc4ab5d300c0b3b378c5d356..eb680c9344546b5aabf53f79286f16cf36af4609 100644
--- a/chrome/browser/devtools/devtools_window.cc
+++ b/chrome/browser/devtools/devtools_window.cc
@@ -105,6 +105,30 @@ void SetPreferencesFromJson(Profile* profile, const std::string& json) {
}
}
+std::string ConvertFlagsToQueryParams(const std::string flags) {
pfeldman 2016/10/11 20:51:34 Lets assume it is already of the target form.
dgozman 2016/10/11 21:09:14 Done.
+ std::vector<std::string> query;
+ std::unique_ptr<base::Value> json = base::JSONReader::Read(flags);
+ if (!json)
+ return std::string();
+ base::DictionaryValue* dict;
+ json->GetAsDictionary(&dict);
+ if (!dict)
+ return std::string();
+ base::DictionaryValue result;
+ for (base::DictionaryValue::Iterator it(*dict); !it.IsAtEnd();
+ it.Advance()) {
+ if (!it.value().IsType(base::Value::TYPE_STRING))
+ return std::string();
+ std::string value;
+ it.value().GetAsString(&value);
+ query.push_back(
+ base::StringPrintf("%s=%s", it.key().c_str(), value.c_str()));
+ }
+ if (query.empty())
+ return std::string();
+ return base::JoinString(query, "&");
+}
+
// DevToolsToolboxDelegate ----------------------------------------------------
class DevToolsToolboxDelegate
@@ -206,8 +230,9 @@ GURL DecorateFrontendURL(const GURL& base_url) {
if (command_line->HasSwitch(switches::kDevToolsFlags)) {
std::string flags = command_line->GetSwitchValueASCII(
switches::kDevToolsFlags);
- flags = net::EscapeQueryParamValue(flags, false);
- url_string += "&flags=" + flags;
+ flags = ConvertFlagsToQueryParams(flags);
+ if (!flags.empty())
+ url_string += "&" + flags;
}
#if defined(DEBUG_DEVTOOLS)
@@ -902,7 +927,7 @@ GURL DevToolsWindow::GetDevToolsURL(Profile* profile,
}
if (can_dock)
url_string += "&can_dock=true";
- return GURL(url_string);
+ return DevToolsUI::SanitizeFrontendURL(GURL(url_string));
}
// static
« no previous file with comments | « no previous file | chrome/browser/ui/webui/devtools_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698