mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 21:31:04 +00:00
Bug 1481176 - P1. Export GetParameterHTTP as static method. r=valentin,r=bzbarsky
nsContentTypeParser used internally a nsIMIMEHeaderParam reference, effectively limiting its use on the main thread, and as such restricting any methods handling mime type there too. nsContentTypeParser only made use of a single method nsMIMEHeaderParamImpl::GetParameterHTTP, so we make that method static and export it via nsNetUtil. Differential Revision: https://phabricator.services.mozilla.com/D2788
This commit is contained in:
parent
7845f72f27
commit
35a7076534
@ -80,6 +80,7 @@
|
||||
#include "nsICertOverrideService.h"
|
||||
#include "nsQueryObject.h"
|
||||
#include "mozIThirdPartyUtil.h"
|
||||
#include "../mime/nsMIMEHeaderParamImpl.h"
|
||||
|
||||
#include <limits>
|
||||
|
||||
@ -3259,5 +3260,14 @@ InScriptableRange(uint64_t val)
|
||||
return val <= kJS_MAX_SAFE_UINTEGER;
|
||||
}
|
||||
|
||||
nsresult
|
||||
GetParameterHTTP(const nsACString& aHeaderVal,
|
||||
const char* aParamName,
|
||||
nsAString& aResult)
|
||||
{
|
||||
return nsMIMEHeaderParamImpl::GetParameterHTTP(
|
||||
aHeaderVal, aParamName, aResult);
|
||||
}
|
||||
|
||||
} // namespace net
|
||||
} // namespace mozilla
|
||||
|
@ -991,6 +991,24 @@ bool InScriptableRange(int64_t val);
|
||||
// Make sure a 64bit value can be captured by JS MAX_SAFE_INTEGER
|
||||
bool InScriptableRange(uint64_t val);
|
||||
|
||||
/**
|
||||
* Given the value of a single header field (such as
|
||||
* Content-Disposition and Content-Type) and the name of a parameter
|
||||
* (e.g. filename, name, charset), returns the value of the parameter.
|
||||
* See nsIMIMEHeaderParam.idl for more information.
|
||||
*
|
||||
* @param aHeaderVal a header string to get the value of a parameter
|
||||
* from.
|
||||
* @param aParamName the name of a MIME header parameter (e.g.
|
||||
* filename, name, charset). If empty or nullptr,
|
||||
* returns the first (possibly) _unnamed_ 'parameter'.
|
||||
* @return the value of <code>aParamName</code> in Unichar(UTF-16).
|
||||
*/
|
||||
nsresult
|
||||
GetParameterHTTP(const nsACString& aHeaderVal,
|
||||
const char* aParamName,
|
||||
nsAString& aResult);
|
||||
|
||||
} // namespace net
|
||||
} // namespace mozilla
|
||||
|
||||
|
@ -64,7 +64,23 @@ nsMIMEHeaderParamImpl::GetParameterHTTP(const nsACString& aHeaderVal,
|
||||
aFallbackCharset, aTryLocaleCharset, aLang, aResult);
|
||||
}
|
||||
|
||||
/* static */
|
||||
nsresult
|
||||
nsMIMEHeaderParamImpl::GetParameterHTTP(const nsACString& aHeaderVal,
|
||||
const char *aParamName,
|
||||
nsAString& aResult)
|
||||
{
|
||||
return DoGetParameter(aHeaderVal,
|
||||
aParamName,
|
||||
HTTP_FIELD_ENCODING,
|
||||
EmptyCString(),
|
||||
false,
|
||||
nullptr,
|
||||
aResult);
|
||||
}
|
||||
|
||||
// XXX : aTryLocaleCharset is not yet effective.
|
||||
/* static */
|
||||
nsresult
|
||||
nsMIMEHeaderParamImpl::DoGetParameter(const nsACString& aHeaderVal,
|
||||
const char *aParamName,
|
||||
@ -355,6 +371,7 @@ nsMIMEHeaderParamImpl::GetParameterInternal(const char *aHeaderValue,
|
||||
}
|
||||
|
||||
|
||||
/* static */
|
||||
nsresult
|
||||
nsMIMEHeaderParamImpl::DoParameterInternal(const char *aHeaderValue,
|
||||
const char *aParamName,
|
||||
|
@ -14,6 +14,16 @@ public:
|
||||
NS_DECL_NSIMIMEHEADERPARAM
|
||||
|
||||
nsMIMEHeaderParamImpl() = default;
|
||||
|
||||
/**
|
||||
* Identical to calling
|
||||
* GetParameterHTTP(aHeaderVal, aParameterName, EmptyCString(), false, nullptr, aResult)
|
||||
* See nsIMIMEHeaderParam.idl for more information.
|
||||
*/
|
||||
static nsresult GetParameterHTTP(const nsACString& aHeaderVal,
|
||||
const char *aParamName,
|
||||
nsAString &aResult);
|
||||
|
||||
private:
|
||||
virtual ~nsMIMEHeaderParamImpl() = default;
|
||||
enum ParamDecoding {
|
||||
@ -21,21 +31,20 @@ private:
|
||||
HTTP_FIELD_ENCODING
|
||||
};
|
||||
|
||||
nsresult DoGetParameter(const nsACString& aHeaderVal,
|
||||
const char *aParamName,
|
||||
ParamDecoding aDecoding,
|
||||
const nsACString& aFallbackCharset,
|
||||
bool aTryLocaleCharset,
|
||||
char **aLang,
|
||||
nsAString& aResult);
|
||||
|
||||
nsresult DoParameterInternal(const char *aHeaderValue,
|
||||
const char *aParamName,
|
||||
ParamDecoding aDecoding,
|
||||
char **aCharset,
|
||||
char **aLang,
|
||||
char **aResult);
|
||||
static nsresult DoGetParameter(const nsACString& aHeaderVal,
|
||||
const char *aParamName,
|
||||
ParamDecoding aDecoding,
|
||||
const nsACString& aFallbackCharset,
|
||||
bool aTryLocaleCharset,
|
||||
char **aLang,
|
||||
nsAString& aResult);
|
||||
|
||||
static nsresult DoParameterInternal(const char *aHeaderValue,
|
||||
const char *aParamName,
|
||||
ParamDecoding aDecoding,
|
||||
char **aCharset,
|
||||
char **aLang,
|
||||
char **aResult);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user