mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1098648 - Remove FLAG_REQUEST_STARTED from ProgressTracker. r=tn
--HG-- extra : rebase_source : 1fdd8761fde5817528dcda53f7754d8e83628037
This commit is contained in:
parent
59abe4bf01
commit
fadb4ded83
@ -46,14 +46,11 @@ CheckProgressConsistency(Progress aProgress)
|
||||
{
|
||||
// Check preconditions for every progress bit.
|
||||
|
||||
if (aProgress & FLAG_REQUEST_STARTED) {
|
||||
if (aProgress & FLAG_HAS_SIZE) {
|
||||
// No preconditions.
|
||||
}
|
||||
if (aProgress & FLAG_HAS_SIZE) {
|
||||
MOZ_ASSERT(aProgress & FLAG_REQUEST_STARTED);
|
||||
}
|
||||
if (aProgress & FLAG_DECODE_STARTED) {
|
||||
MOZ_ASSERT(aProgress & FLAG_REQUEST_STARTED);
|
||||
// No preconditions.
|
||||
}
|
||||
if (aProgress & FLAG_DECODE_STOPPED) {
|
||||
MOZ_ASSERT(aProgress & FLAG_DECODE_STARTED);
|
||||
@ -62,7 +59,7 @@ CheckProgressConsistency(Progress aProgress)
|
||||
MOZ_ASSERT(aProgress & FLAG_DECODE_STARTED);
|
||||
}
|
||||
if (aProgress & FLAG_REQUEST_STOPPED) {
|
||||
MOZ_ASSERT(aProgress & FLAG_REQUEST_STARTED);
|
||||
// No preconditions.
|
||||
}
|
||||
if (aProgress & FLAG_ONLOAD_BLOCKED) {
|
||||
if (aProgress & FLAG_IS_MULTIPART) {
|
||||
@ -308,9 +305,6 @@ ProgressTracker::SyncNotifyInternal(ProxyArray& aProxies,
|
||||
const nsIntRect& aDirtyRect)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
// OnStartRequest
|
||||
if (aProgress & FLAG_REQUEST_STARTED)
|
||||
NOTIFY_IMAGE_OBSERVERS(aProxies, OnStartRequest());
|
||||
|
||||
// OnStartContainer
|
||||
if (aProgress & FLAG_HAS_SIZE)
|
||||
@ -417,12 +411,6 @@ ProgressTracker::EmulateRequestFinished(imgRequestProxy* aProxy,
|
||||
"SyncNotifyState and mConsumers are not threadsafe");
|
||||
nsCOMPtr<imgIRequest> kungFuDeathGrip(aProxy);
|
||||
|
||||
// In certain cases the request might not have started yet.
|
||||
// We still need to fulfill the contract.
|
||||
if (!(mProgress & FLAG_REQUEST_STARTED)) {
|
||||
aProxy->OnStartRequest();
|
||||
}
|
||||
|
||||
if (mProgress & FLAG_ONLOAD_BLOCKED && !(mProgress & FLAG_ONLOAD_UNBLOCKED)) {
|
||||
aProxy->UnblockOnload();
|
||||
}
|
||||
|
@ -27,19 +27,18 @@ class Image;
|
||||
|
||||
// Image progress bitflags.
|
||||
enum {
|
||||
FLAG_REQUEST_STARTED = 1u << 0,
|
||||
FLAG_HAS_SIZE = 1u << 1, // STATUS_SIZE_AVAILABLE
|
||||
FLAG_DECODE_STARTED = 1u << 2, // STATUS_DECODE_STARTED
|
||||
FLAG_DECODE_STOPPED = 1u << 3, // STATUS_DECODE_COMPLETE
|
||||
FLAG_FRAME_STOPPED = 1u << 4, // STATUS_FRAME_COMPLETE
|
||||
FLAG_REQUEST_STOPPED = 1u << 5, // STATUS_LOAD_COMPLETE
|
||||
FLAG_ONLOAD_BLOCKED = 1u << 6,
|
||||
FLAG_ONLOAD_UNBLOCKED = 1u << 7,
|
||||
FLAG_IS_ANIMATED = 1u << 8,
|
||||
FLAG_HAS_TRANSPARENCY = 1u << 9,
|
||||
FLAG_IS_MULTIPART = 1u << 10,
|
||||
FLAG_MULTIPART_STOPPED = 1u << 11,
|
||||
FLAG_HAS_ERROR = 1u << 12 // STATUS_ERROR
|
||||
FLAG_HAS_SIZE = 1u << 0, // STATUS_SIZE_AVAILABLE
|
||||
FLAG_DECODE_STARTED = 1u << 1, // STATUS_DECODE_STARTED
|
||||
FLAG_DECODE_STOPPED = 1u << 2, // STATUS_DECODE_COMPLETE
|
||||
FLAG_FRAME_STOPPED = 1u << 3, // STATUS_FRAME_COMPLETE
|
||||
FLAG_REQUEST_STOPPED = 1u << 4, // STATUS_LOAD_COMPLETE
|
||||
FLAG_ONLOAD_BLOCKED = 1u << 5,
|
||||
FLAG_ONLOAD_UNBLOCKED = 1u << 6,
|
||||
FLAG_IS_ANIMATED = 1u << 7,
|
||||
FLAG_HAS_TRANSPARENCY = 1u << 8,
|
||||
FLAG_IS_MULTIPART = 1u << 9,
|
||||
FLAG_MULTIPART_STOPPED = 1u << 10,
|
||||
FLAG_HAS_ERROR = 1u << 11 // STATUS_ERROR
|
||||
};
|
||||
|
||||
typedef uint32_t Progress;
|
||||
|
@ -673,7 +673,6 @@ NS_IMETHODIMP imgRequest::OnStartRequest(nsIRequest *aRequest, nsISupports *ctxt
|
||||
// Note: refreshing progressTracker in case OnNewSourceData changed it.
|
||||
progressTracker = GetProgressTracker();
|
||||
progressTracker->ResetForNewRequest();
|
||||
progressTracker->SyncNotifyProgress(FLAG_REQUEST_STARTED);
|
||||
|
||||
nsCOMPtr<nsIChannel> channel(do_QueryInterface(aRequest));
|
||||
if (channel)
|
||||
@ -895,7 +894,6 @@ imgRequest::OnDataAvailable(nsIRequest *aRequest, nsISupports *ctxt,
|
||||
// Initialize a new status tracker.
|
||||
nsRefPtr<ProgressTracker> freshTracker = new ProgressTracker(nullptr);
|
||||
freshTracker->SetIsMultipart();
|
||||
freshTracker->SyncNotifyProgress(FLAG_REQUEST_STARTED);
|
||||
|
||||
// Replace the old status tracker with it.
|
||||
nsRefPtr<ProgressTracker> oldProgressTracker = GetProgressTracker();
|
||||
|
@ -830,15 +830,6 @@ void imgRequestProxy::OnImageIsAnimated()
|
||||
}
|
||||
}
|
||||
|
||||
void imgRequestProxy::OnStartRequest()
|
||||
{
|
||||
#ifdef PR_LOGGING
|
||||
nsAutoCString name;
|
||||
GetName(name);
|
||||
LOG_FUNC_WITH_PARAM(GetImgLog(), "imgRequestProxy::OnStartRequest", "name", name.get());
|
||||
#endif
|
||||
}
|
||||
|
||||
void imgRequestProxy::OnStopRequest(bool lastPart)
|
||||
{
|
||||
#ifdef PR_LOGGING
|
||||
|
@ -160,7 +160,6 @@ protected:
|
||||
void OnImageIsAnimated();
|
||||
|
||||
/* non-virtual sort-of-nsIRequestObserver methods */
|
||||
void OnStartRequest();
|
||||
void OnStopRequest(bool aLastPart);
|
||||
|
||||
/* non-virtual imgIOnloadBlocker methods */
|
||||
|
@ -87,7 +87,6 @@ NS_IMETHODIMP imgTools::DecodeImage(nsIInputStream* aInStr,
|
||||
NS_ENSURE_TRUE(length <= UINT32_MAX, NS_ERROR_FILE_TOO_BIG);
|
||||
|
||||
// Send the source data to the Image.
|
||||
tracker->SyncNotifyProgress(FLAG_REQUEST_STARTED);
|
||||
rv = image->OnImageDataAvailable(nullptr, nullptr, inStream, 0, uint32_t(length));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user