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:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user