Bug 1098648 - Remove FLAG_REQUEST_STARTED from ProgressTracker. r=tn

--HG--
extra : rebase_source : 1fdd8761fde5817528dcda53f7754d8e83628037
This commit is contained in:
Seth Fowler 2014-11-17 14:29:56 -08:00
parent 59abe4bf01
commit fadb4ded83
6 changed files with 15 additions and 41 deletions

View File

@ -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();
}

View File

@ -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;

View File

@ -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();

View File

@ -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

View File

@ -160,7 +160,6 @@ protected:
void OnImageIsAnimated();
/* non-virtual sort-of-nsIRequestObserver methods */
void OnStartRequest();
void OnStopRequest(bool aLastPart);
/* non-virtual imgIOnloadBlocker methods */

View File

@ -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);