OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/downloads/downloads_api.h" | 5 #include "chrome/browser/extensions/api/downloads/downloads_api.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 | 79 |
80 namespace download_extension_errors { | 80 namespace download_extension_errors { |
81 | 81 |
82 const char kEmptyFile[] = "Filename not yet determined"; | 82 const char kEmptyFile[] = "Filename not yet determined"; |
83 const char kFileAlreadyDeleted[] = "Download file already deleted"; | 83 const char kFileAlreadyDeleted[] = "Download file already deleted"; |
84 const char kFileNotRemoved[] = "Unable to remove file"; | 84 const char kFileNotRemoved[] = "Unable to remove file"; |
85 const char kIconNotFound[] = "Icon not found"; | 85 const char kIconNotFound[] = "Icon not found"; |
86 const char kInvalidDangerType[] = "Invalid danger type"; | 86 const char kInvalidDangerType[] = "Invalid danger type"; |
87 const char kInvalidFilename[] = "Invalid filename"; | 87 const char kInvalidFilename[] = "Invalid filename"; |
88 const char kInvalidFilter[] = "Invalid query filter"; | 88 const char kInvalidFilter[] = "Invalid query filter"; |
89 const char kInvalidHeader[] = "Invalid request header"; | 89 const char kInvalidHeaderName[] = "Invalid request header name"; |
| 90 const char kInvalidHeaderUnsafe[] = "Unsafe request header name"; |
| 91 const char kInvalidHeaderValue[] = "Invalid request header value"; |
90 const char kInvalidId[] = "Invalid downloadId"; | 92 const char kInvalidId[] = "Invalid downloadId"; |
91 const char kInvalidOrderBy[] = "Invalid orderBy field"; | 93 const char kInvalidOrderBy[] = "Invalid orderBy field"; |
92 const char kInvalidQueryLimit[] = "Invalid query limit"; | 94 const char kInvalidQueryLimit[] = "Invalid query limit"; |
93 const char kInvalidState[] = "Invalid state"; | 95 const char kInvalidState[] = "Invalid state"; |
94 const char kInvalidURL[] = "Invalid URL"; | 96 const char kInvalidURL[] = "Invalid URL"; |
95 const char kInvisibleContext[] = "Javascript execution context is not visible " | 97 const char kInvisibleContext[] = "Javascript execution context is not visible " |
96 "(tab, window, popup bubble)"; | 98 "(tab, window, popup bubble)"; |
97 const char kNotComplete[] = "Download must be complete"; | 99 const char kNotComplete[] = "Download must be complete"; |
98 const char kNotDangerous[] = "Download must be dangerous"; | 100 const char kNotDangerous[] = "Download must be dangerous"; |
99 const char kNotInProgress[] = "Download must be in progress"; | 101 const char kNotInProgress[] = "Download must be in progress"; |
(...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1029 if (options.save_as.get()) | 1031 if (options.save_as.get()) |
1030 download_params->set_prompt(*options.save_as.get()); | 1032 download_params->set_prompt(*options.save_as.get()); |
1031 | 1033 |
1032 if (options.headers.get()) { | 1034 if (options.headers.get()) { |
1033 typedef downloads::HeaderNameValuePair HeaderNameValuePair; | 1035 typedef downloads::HeaderNameValuePair HeaderNameValuePair; |
1034 for (std::vector<linked_ptr<HeaderNameValuePair> >::const_iterator iter = | 1036 for (std::vector<linked_ptr<HeaderNameValuePair> >::const_iterator iter = |
1035 options.headers->begin(); | 1037 options.headers->begin(); |
1036 iter != options.headers->end(); | 1038 iter != options.headers->end(); |
1037 ++iter) { | 1039 ++iter) { |
1038 const HeaderNameValuePair& name_value = **iter; | 1040 const HeaderNameValuePair& name_value = **iter; |
| 1041 if (!net::HttpUtil::IsValidHeaderName(name_value.name)) { |
| 1042 error_ = errors::kInvalidHeaderName; |
| 1043 return false; |
| 1044 } |
1039 if (!net::HttpUtil::IsSafeHeader(name_value.name)) { | 1045 if (!net::HttpUtil::IsSafeHeader(name_value.name)) { |
1040 error_ = errors::kInvalidHeader; | 1046 error_ = errors::kInvalidHeaderUnsafe; |
| 1047 return false; |
| 1048 } |
| 1049 if (!net::HttpUtil::IsValidHeaderValue(name_value.value)) { |
| 1050 error_ = errors::kInvalidHeaderValue; |
1041 return false; | 1051 return false; |
1042 } | 1052 } |
1043 download_params->add_request_header(name_value.name, name_value.value); | 1053 download_params->add_request_header(name_value.name, name_value.value); |
1044 } | 1054 } |
1045 } | 1055 } |
1046 | 1056 |
1047 std::string method_string = | 1057 std::string method_string = |
1048 downloads::ToString(options.method); | 1058 downloads::ToString(options.method); |
1049 if (!method_string.empty()) | 1059 if (!method_string.empty()) |
1050 download_params->set_method(method_string); | 1060 download_params->set_method(method_string); |
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1921 const Extension* extension, | 1931 const Extension* extension, |
1922 UnloadedExtensionInfo::Reason reason) { | 1932 UnloadedExtensionInfo::Reason reason) { |
1923 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1933 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
1924 std::set<const Extension*>::iterator iter = | 1934 std::set<const Extension*>::iterator iter = |
1925 shelf_disabling_extensions_.find(extension); | 1935 shelf_disabling_extensions_.find(extension); |
1926 if (iter != shelf_disabling_extensions_.end()) | 1936 if (iter != shelf_disabling_extensions_.end()) |
1927 shelf_disabling_extensions_.erase(iter); | 1937 shelf_disabling_extensions_.erase(iter); |
1928 } | 1938 } |
1929 | 1939 |
1930 } // namespace extensions | 1940 } // namespace extensions |
OLD | NEW |