summaryrefslogtreecommitdiffstats
path: root/chrome_frame/html_utils.cc
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-01 22:05:45 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-01 22:05:45 +0000
commitbc2ff51999fe9ef5c041f2df2ffbbdb4c30baec9 (patch)
tree98113aa6f92a67972c0000db1ef6dbd5979f94bd /chrome_frame/html_utils.cc
parentff0450cc3834b456ab6eb8ee664eb5b98dcecbc0 (diff)
downloadchromium_src-bc2ff51999fe9ef5c041f2df2ffbbdb4c30baec9.zip
chromium_src-bc2ff51999fe9ef5c041f2df2ffbbdb4c30baec9.tar.gz
chromium_src-bc2ff51999fe9ef5c041f2df2ffbbdb4c30baec9.tar.bz2
Implement most of the ridealong fixes/cleanups I suggested during review for enabling warn-on-signed-versus-unsigned-equality-comparisions on Windows.
BUG=none TEST=none Review URL: http://codereview.chromium.org/2395001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48666 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/html_utils.cc')
-rw-r--r--chrome_frame/html_utils.cc28
1 files changed, 12 insertions, 16 deletions
diff --git a/chrome_frame/html_utils.cc b/chrome_frame/html_utils.cc
index 8c8d6d3..3b71845 100644
--- a/chrome_frame/html_utils.cc
+++ b/chrome_frame/html_utils.cc
@@ -10,6 +10,7 @@
#include "base/string_util.h"
#include "base/string_tokenizer.h"
#include "chrome_frame/utils.h"
+#include "net/base/net_util.h"
const wchar_t kQuotes[] = L"\"'";
const char kXFrameOptionsHeader[] = "X-Frame-Options";
@@ -333,7 +334,7 @@ std::string GetDefaultUserAgentHeaderWithCFTag() {
std::string GetDefaultUserAgent() {
std::string ret;
- DWORD size = MAX_PATH; // NOLINT
+ DWORD size = MAX_PATH;
HRESULT hr = E_OUTOFMEMORY;
for (int retries = 1; hr == E_OUTOFMEMORY && retries <= 10; ++retries) {
hr = ::ObtainUserAgentString(0, WriteInto(&ret, size + 1), &size);
@@ -341,8 +342,8 @@ std::string GetDefaultUserAgent() {
size = MAX_PATH * retries;
} else if (SUCCEEDED(hr)) {
// Truncate the extra allocation.
- DCHECK(size > 0); // NOLINT
- ret.resize(size - 1); // NOLINT
+ DCHECK_GT(size, 0U);
+ ret.resize(size - 1);
}
}
@@ -355,21 +356,16 @@ std::string GetDefaultUserAgent() {
}
bool HasFrameBustingHeader(const std::string& http_headers) {
- net::HttpUtil::HeadersIterator it(
- http_headers.begin(), http_headers.end(), "\r\n");
+ // NOTE: We cannot use net::GetSpecificHeader() here since when there are
+ // multiple instances of a header that returns the first value seen, and we
+ // need to look at all instances.
+ net::HttpUtil::HeadersIterator it(http_headers.begin(), http_headers.end(),
+ "\r\n");
while (it.GetNext()) {
- if (lstrcmpiA(it.name().c_str(), kXFrameOptionsHeader) == 0) {
- std::string allow_all(kXFrameOptionsValueAllowAll);
- if (it.values_end() - it.values_begin() !=
- static_cast<int>(allow_all.length()) ||
- !std::equal(it.values_begin(), it.values_end(),
- allow_all.begin(),
- CaseInsensitiveCompareASCII<const char>())) {
- return true;
- }
- }
+ if (!lstrcmpiA(it.name().c_str(), kXFrameOptionsHeader) &&
+ lstrcmpiA(it.values().c_str(), kXFrameOptionsValueAllowAll))
+ return true;
}
-
return false;
}