summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authormichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-02 21:36:00 +0000
committermichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-02 21:36:00 +0000
commit1e4b00db041cde26d6e83cfccf6cdd807c603223 (patch)
tree2d298b791ce76ca6ef588f1e367a355f5991eccb /webkit
parenta939356ce6f0ec9e30a2380b8d55bb3c3eafb760 (diff)
downloadchromium_src-1e4b00db041cde26d6e83cfccf6cdd807c603223.zip
chromium_src-1e4b00db041cde26d6e83cfccf6cdd807c603223.tar.gz
chromium_src-1e4b00db041cde26d6e83cfccf6cdd807c603223.tar.bz2
Fix chrome://appcache-internals bustage caused by http://src.chromium.org/viewvc/chrome?view=rev&revision=95093
TEST=manual Review URL: http://codereview.chromium.org/7549023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95161 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/appcache/view_appcache_internals_job.cc63
1 files changed, 35 insertions, 28 deletions
diff --git a/webkit/appcache/view_appcache_internals_job.cc b/webkit/appcache/view_appcache_internals_job.cc
index efd0410..f9a49ff 100644
--- a/webkit/appcache/view_appcache_internals_job.cc
+++ b/webkit/appcache/view_appcache_internals_job.cc
@@ -67,29 +67,12 @@ void EmitPageEnd(std::string* out) {
out->append("</body></html>\n");
}
-// Appends an input button to |out| with text |label| that sends
-// |command| and |param| back to the browser and navigates the frame
-// to the resulting page.
-void EmitCommandButton(const std::string& label,
- const std::string& command,
- const std::string& param,
- std::string* out) {
- base::StringAppendF(out,
- "<form action=\"\" method=\"GET\">\n"
- "<input type=\"hidden\" name=\"%s\" value=\"%s\">\n"
- "<input type=\"submit\" value=\"%s\">\n"
- "</form>",
- EscapeForHTML(command).c_str(),
- EscapeForHTML(param).c_str(),
- EscapeForHTML(label).c_str());
-}
-
void EmitListItem(const std::string& label,
const std::string& data,
std::string* out) {
out->append("<li>");
out->append(EscapeForHTML(label));
- out->append(data);
+ out->append(EscapeForHTML(data));
out->append("</li>\n");
}
@@ -99,10 +82,26 @@ void EmitAnchor(const std::string& url, const std::string& text,
out->append(EscapeForHTML(url));
out->append("\">");
out->append(EscapeForHTML(text));
- out->append("</a><br/>");
+ out->append("</a>");
+}
+
+void EmitCommandAnchor(const char* label,
+ const GURL& base_url,
+ const char* command,
+ const char* param,
+ std::string* out) {
+ std::string query(command);
+ query.push_back('=');
+ query.append(param);
+ GURL::Replacements replacements;
+ replacements.SetQuery(query.data(),
+ url_parse::Component(0, query.length()));
+ GURL command_url = base_url.ReplaceComponents(replacements);
+ EmitAnchor(command_url.spec(), label, out);
}
-void EmitAppCacheInfo(AppCacheService* service,
+void EmitAppCacheInfo(const GURL& base_url,
+ AppCacheService* service,
const AppCacheInfo* info,
std::string* out) {
std::string manifest_url_base64;
@@ -111,15 +110,18 @@ void EmitAppCacheInfo(AppCacheService* service,
out->append("\n<p>");
out->append(kManifest);
EmitAnchor(info->manifest_url.spec(), info->manifest_url.spec(), out);
+ out->append("<br/>\n");
if (!service->appcache_policy()->CanLoadAppCache(
info->manifest_url)) {
out->append(kFormattedDisabledAppCacheMsg);
}
out->append("\n<br/>\n");
- EmitCommandButton(kRemoveCacheLabel, kRemoveCacheCommand,
- manifest_url_base64, out);
- EmitCommandButton(kViewCacheLabel, kViewCacheCommand,
- manifest_url_base64, out);
+ EmitCommandAnchor(kRemoveCacheLabel, base_url,
+ kRemoveCacheCommand, manifest_url_base64.c_str(), out);
+ out->append("&nbsp;&nbsp;");
+ EmitCommandAnchor(kViewCacheLabel, base_url,
+ kViewCacheCommand, manifest_url_base64.c_str(), out);
+ out->append("\n<br/>\n");
out->append("<ul>");
EmitListItem(
kSize,
@@ -141,13 +143,14 @@ void EmitAppCacheInfo(AppCacheService* service,
}
void EmitAppCacheInfoVector(
+ const GURL& base_url,
AppCacheService* service,
const AppCacheInfoVector& appcaches,
std::string* out) {
for (std::vector<AppCacheInfo>::const_iterator info =
appcaches.begin();
info != appcaches.end(); ++info) {
- EmitAppCacheInfo(service, &(*info), out);
+ EmitAppCacheInfo(base_url, service, &(*info), out);
}
}
@@ -341,7 +344,9 @@ class MainPageJob : public BaseInternalsJob {
origin->second.begin(), origin->second.end());
}
std::sort(appcaches.begin(), appcaches.end(), SortByManifestUrl);
- EmitAppCacheInfoVector(appcache_service_, appcaches, out);
+
+ GURL base_url = ClearQuery(request_->url());
+ EmitAppCacheInfoVector(base_url, appcache_service_, appcaches, out);
}
EmitPageEnd(out);
return true;
@@ -446,8 +451,9 @@ class ViewAppCacheJob : public BaseInternalsJob,
if (appcache_info_.manifest_url.is_empty()) {
out->append(kManifestNotFoundMessage);
} else {
- EmitAppCacheInfo(appcache_service_, &appcache_info_, out);
- EmitAppCacheResourceInfoVector(ClearQuery(request_->url()),
+ GURL base_url = ClearQuery(request_->url());
+ EmitAppCacheInfo(base_url, appcache_service_, &appcache_info_, out);
+ EmitAppCacheResourceInfoVector(base_url,
manifest_url_,
resource_infos_, out);
}
@@ -513,6 +519,7 @@ class ViewEntryJob : public BaseInternalsJob,
out->clear();
EmitPageStart(out);
EmitAnchor(entry_url_.spec(), entry_url_.spec(), out);
+ out->append("<br/>\n");
if (response_info_) {
if (response_info_->http_response_info())
EmitResponseHeaders(response_info_->http_response_info()->headers, out);