mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1173439 P3 Use url query field for database matching and Request creation. r=ehsan
This commit is contained in:
parent
610bb60b9c
commit
93ae3fe3a8
22
dom/cache/DBSchema.cpp
vendored
22
dom/cache/DBSchema.cpp
vendored
@ -937,19 +937,14 @@ QueryCache(mozIStorageConnection* aConn, CacheId aCacheId,
|
|||||||
"LEFT OUTER JOIN response_headers ON entries.id=response_headers.entry_id "
|
"LEFT OUTER JOIN response_headers ON entries.id=response_headers.entry_id "
|
||||||
"AND response_headers.name='vary' "
|
"AND response_headers.name='vary' "
|
||||||
"WHERE entries.cache_id=:cache_id "
|
"WHERE entries.cache_id=:cache_id "
|
||||||
"AND entries."
|
"AND entries.request_url_no_query=:url_no_query "
|
||||||
);
|
);
|
||||||
|
|
||||||
nsAutoCString urlToMatch;
|
if (!aParams.ignoreSearch()) {
|
||||||
if (aParams.ignoreSearch()) {
|
query.AppendLiteral("AND entries.request_url_query=:url_query ");
|
||||||
urlToMatch = aRequest.urlWithoutQuery();
|
|
||||||
query.AppendLiteral("request_url_no_query");
|
|
||||||
} else {
|
|
||||||
urlToMatch = aRequest.url();
|
|
||||||
query.AppendLiteral("request_url");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
query.AppendLiteral("=:url GROUP BY entries.id ORDER BY entries.id;");
|
query.AppendLiteral("GROUP BY entries.id ORDER BY entries.id;");
|
||||||
|
|
||||||
nsCOMPtr<mozIStorageStatement> state;
|
nsCOMPtr<mozIStorageStatement> state;
|
||||||
nsresult rv = aConn->CreateStatement(query, getter_AddRefs(state));
|
nsresult rv = aConn->CreateStatement(query, getter_AddRefs(state));
|
||||||
@ -958,9 +953,16 @@ QueryCache(mozIStorageConnection* aConn, CacheId aCacheId,
|
|||||||
rv = state->BindInt64ByName(NS_LITERAL_CSTRING("cache_id"), aCacheId);
|
rv = state->BindInt64ByName(NS_LITERAL_CSTRING("cache_id"), aCacheId);
|
||||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||||
|
|
||||||
rv = state->BindUTF8StringByName(NS_LITERAL_CSTRING("url"), urlToMatch);
|
rv = state->BindUTF8StringByName(NS_LITERAL_CSTRING("url_no_query"),
|
||||||
|
aRequest.urlWithoutQuery());
|
||||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||||
|
|
||||||
|
if (!aParams.ignoreSearch()) {
|
||||||
|
rv = state->BindUTF8StringByName(NS_LITERAL_CSTRING("url_query"),
|
||||||
|
aRequest.urlQuery());
|
||||||
|
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||||
|
}
|
||||||
|
|
||||||
bool hasMoreData = false;
|
bool hasMoreData = false;
|
||||||
while (NS_SUCCEEDED(state->ExecuteStep(&hasMoreData)) && hasMoreData) {
|
while (NS_SUCCEEDED(state->ExecuteStep(&hasMoreData)) && hasMoreData) {
|
||||||
// no invalid EntryId, init to least likely real value
|
// no invalid EntryId, init to least likely real value
|
||||||
|
6
dom/cache/TypeUtils.cpp
vendored
6
dom/cache/TypeUtils.cpp
vendored
@ -321,7 +321,11 @@ TypeUtils::ToInternalRequest(const CacheRequest& aIn)
|
|||||||
nsRefPtr<InternalRequest> internalRequest = new InternalRequest();
|
nsRefPtr<InternalRequest> internalRequest = new InternalRequest();
|
||||||
|
|
||||||
internalRequest->SetMethod(aIn.method());
|
internalRequest->SetMethod(aIn.method());
|
||||||
internalRequest->SetURL(aIn.url());
|
|
||||||
|
nsAutoCString url(aIn.urlWithoutQuery());
|
||||||
|
url.Append(aIn.urlQuery());
|
||||||
|
internalRequest->SetURL(url);
|
||||||
|
|
||||||
internalRequest->SetReferrer(aIn.referrer());
|
internalRequest->SetReferrer(aIn.referrer());
|
||||||
internalRequest->SetMode(aIn.mode());
|
internalRequest->SetMode(aIn.mode());
|
||||||
internalRequest->SetCredentialsMode(aIn.credentials());
|
internalRequest->SetCredentialsMode(aIn.credentials());
|
||||||
|
Loading…
Reference in New Issue
Block a user