Changed the Status flags to be transition flags rather than flat current state. This makes it easier to implement a listener. Otherwise you are forced to cache the last status and then determine transitions based on the deltas.

git-svn-id: svn://10.0.0.236/trunk@65129 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
tbogard%aol.net
2000-04-04 02:45:32 +00:00
parent 6876fef4c3
commit 213b98cae5
2 changed files with 46 additions and 32 deletions

View File

@@ -544,8 +544,7 @@ void nsDocLoaderImpl::FireOnStartDocumentLoad(nsDocLoaderImpl* aLoadInitiator,
// if we have a web progress listener, propagate the fact that we are starting to load a url
if (mProgressListener)
{
mProgressStatusFlags |= nsIWebProgress::flag_networkActivity;
mProgressStatusFlags |= nsIWebProgress::flag_windowActivity;
mProgressStatusFlags = nsIWebProgress::flag_net_start;
if (aLoadInitiator == this)
mProgressListener->OnStatusChange(mDocumentChannel, mProgressStatusFlags);
@@ -615,8 +614,7 @@ void nsDocLoaderImpl::FireOnEndDocumentLoad(nsDocLoaderImpl* aLoadInitiator,
// if we have a web progress listener, propagate the fact that we are starting to load a url
if (mProgressListener)
{
mProgressStatusFlags &= ~nsIWebProgress::flag_networkActivity;
mProgressStatusFlags &= ~nsIWebProgress::flag_windowActivity;
mProgressStatusFlags = nsIWebProgress::flag_net_stop;
if (aLoadInitiator == this)
mProgressListener->OnStatusChange(mDocumentChannel, mProgressStatusFlags);

View File

@@ -33,37 +33,53 @@ interface nsIWebProgressListener;
interface nsIWebProgress : nsISupports
{
/*
Progress Status Flags
Progress Status Flags. These flags show transition.
flag_net_dns - Looking up requested host.
flag_net_connecting - Connecting to requested host.
flag_net_redirecting - Connection is being redirected.
flag_net_negotiating - Negotiating connection to the server
(Authentication/ Authorization).
flag_net_transferring - Transferring data from host.
flag_net_failed - When set this means the load failed. When off this means
the load is either continuing with success (flag_networkActivity = 1)
or that the load has completed successfully (flag_networkActivity = 0)
flag_net_failedDNS - DNS lookup failed.
flag_net_failedConnect - Connecting to server failed.
flag_net_failedTransfer - Transfer failed.
flag_net_userCancelled - User cancelled load.
Bit Layout:
|31-22|21-20|19-12|11-0|
|11-0| - Network Transitions
|19-12| - Network Stop Reasons
|21-20| - Window Activity Transitions
|31-22| - Available
*/
const long flag_net_dns = 0x00000001;
const long flag_net_connecting = 0x00000002;
const long flag_net_redirecting = 0x00000004;
const long flag_net_negotiating = 0x00000008;
const long flag_net_transferring = 0x00000010;
/* Network Transitions bits |11-0|
flag_net_start - network activity is starting
flag_net_stop - network activity has stopped (this may include a stop
reason which would have the stop reasons bits set)
flag_net_dns - Looking up requested host.
flag_net_connecting - Connecting to requested host.
flag_net_redirecting - Connection is being redirected.
flag_net_negotiating - Negotiating connection to the server
(Authentication/ Authorization).
flag_net_transferring - Transferring data from host.
*/
const long flag_net_start = 0x00000001;
const long flag_net_stop = 0x00000002;
const long flag_net_dns = 0x00000004;
const long flag_net_connecting = 0x00000008;
const long flag_net_redirecting = 0x00000010;
const long flag_net_negotiating = 0x00000020;
const long flag_net_transferring = 0x00000040;
const long flag_net_failed = 0x20000000;
const long flag_net_failedDNS = 0x00010000 | flag_net_failed;
const long flag_net_failedConnect = 0x00020000 | flag_net_failed;
const long flag_net_failedTransfer = 0x00040000 | flag_net_failed;
const long flag_net_userCancelled = 0x00080000 | flag_net_failed;
const long flag_networkActivity = 0x40000000;
const long flag_windowActivity = 0x80000000;
/* Network Stop Reasons bits |19-12|
flag_net_failedDNS - DNS lookup failed.
flag_net_failedConnect - Connecting to server failed.
flag_net_failedTransfer - Transfer failed.
flag_net_userCancelled - User cancelled load.
*/
const long flag_net_failedDNS = 0x00001000;
const long flag_net_failedConnect = 0x00002000;
const long flag_net_failedTransfer = 0x00004000;
const long flag_net_userCancelled = 0x00008000;
/* Window Activity bits |21-20|
flag_win_start - window activity is starting
flag_win_stop - window activity is stoping
*/
const long flag_win_start = 0x00100000;
const long flag_win_stop = 0x00200000;
/*
Registers a listener to be notified of Progress Events