Added handling for the webProgress status changes.
git-svn-id: svn://10.0.0.236/trunk@65130 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
213b98cae5
commit
2bc385ba4e
@ -1954,28 +1954,12 @@ NS_IMETHODIMP
|
|||||||
nsBrowserWindow::WillLoadURL(nsIWebShell* aShell, const PRUnichar* aURL,
|
nsBrowserWindow::WillLoadURL(nsIWebShell* aShell, const PRUnichar* aURL,
|
||||||
nsLoadType aReason)
|
nsLoadType aReason)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIWebShell> webShell(do_QueryInterface(mDocShell));
|
|
||||||
if (aShell == webShell.get()) {
|
|
||||||
if (mStatus) {
|
|
||||||
nsAutoString url("Connecting to ");
|
|
||||||
url.Append(aURL);
|
|
||||||
PRUint32 size;
|
|
||||||
mStatus->SetText(url,size);
|
|
||||||
mLoadStartTime = PR_Now();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsBrowserWindow::BeginLoadURL(nsIWebShell* aShell, const PRUnichar* aURL)
|
nsBrowserWindow::BeginLoadURL(nsIWebShell* aShell, const PRUnichar* aURL)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIWebShell> webShell(do_QueryInterface(mDocShell));
|
|
||||||
if (aShell == webShell.get()) {
|
|
||||||
if (mThrobber) {
|
|
||||||
mThrobber->Start();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1992,33 +1976,8 @@ NS_IMETHODIMP
|
|||||||
nsBrowserWindow::EndLoadURL(nsIWebShell* aShell,
|
nsBrowserWindow::EndLoadURL(nsIWebShell* aShell,
|
||||||
const PRUnichar* aURL,
|
const PRUnichar* aURL,
|
||||||
nsresult aStatus)
|
nsresult aStatus)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIWebShell> webShell(do_QueryInterface(mDocShell));
|
return NS_OK;
|
||||||
if (aShell == webShell.get()) {
|
|
||||||
PRTime endLoadTime = PR_Now();
|
|
||||||
if (mShowLoadTimes) {
|
|
||||||
nsAutoString msg(aURL);
|
|
||||||
printf("Loading ");
|
|
||||||
fputs(msg, stdout);
|
|
||||||
PRTime delta;
|
|
||||||
LL_SUB(delta, endLoadTime, mLoadStartTime);
|
|
||||||
double usecs;
|
|
||||||
LL_L2D(usecs, delta);
|
|
||||||
printf(" took %g milliseconds\n", usecs / 1000.0);
|
|
||||||
}
|
|
||||||
if (mThrobber) {
|
|
||||||
mThrobber->Stop();
|
|
||||||
}
|
|
||||||
if (nsnull != mStatus) {
|
|
||||||
nsAutoString msg(aURL);
|
|
||||||
PRUint32 size;
|
|
||||||
|
|
||||||
msg.Append(" done.");
|
|
||||||
|
|
||||||
mStatus->SetText(msg, size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2147,25 +2106,7 @@ NS_IMETHODIMP
|
|||||||
nsBrowserWindow::OnStartURLLoad(nsIDocumentLoader* loader,
|
nsBrowserWindow::OnStartURLLoad(nsIDocumentLoader* loader,
|
||||||
nsIChannel* channel)
|
nsIChannel* channel)
|
||||||
{
|
{
|
||||||
nsresult rv;
|
return NS_OK;
|
||||||
|
|
||||||
nsCOMPtr<nsIURI> aURL;
|
|
||||||
rv = channel->GetURI(getter_AddRefs(aURL));
|
|
||||||
if (NS_FAILED(rv)) return rv;
|
|
||||||
|
|
||||||
if (mStatus) {
|
|
||||||
nsAutoString url;
|
|
||||||
if (nsnull != aURL) {
|
|
||||||
char* str;
|
|
||||||
aURL->GetSpec(&str);
|
|
||||||
url = str;
|
|
||||||
nsCRT::free(str);
|
|
||||||
}
|
|
||||||
url.Append(": start");
|
|
||||||
PRUint32 size;
|
|
||||||
mStatus->SetText(url,size);
|
|
||||||
}
|
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
@ -2190,24 +2131,6 @@ nsBrowserWindow::OnEndURLLoad(nsIDocumentLoader* loader,
|
|||||||
nsIChannel* channel,
|
nsIChannel* channel,
|
||||||
nsresult aStatus)
|
nsresult aStatus)
|
||||||
{
|
{
|
||||||
nsresult rv;
|
|
||||||
|
|
||||||
nsCOMPtr<nsIURI> aURL;
|
|
||||||
rv = channel->GetURI(getter_AddRefs(aURL));
|
|
||||||
if (NS_FAILED(rv)) return rv;
|
|
||||||
|
|
||||||
if (mStatus) {
|
|
||||||
nsAutoString url;
|
|
||||||
if (nsnull != aURL) {
|
|
||||||
char* str;
|
|
||||||
aURL->GetSpec(&str);
|
|
||||||
url = str;
|
|
||||||
nsCRT::free(str);
|
|
||||||
}
|
|
||||||
url.Append(": stop");
|
|
||||||
PRUint32 size;
|
|
||||||
mStatus->SetText(url,size);
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
// Local Includes
|
// Local Includes
|
||||||
#include "nsWebBrowserChrome.h"
|
#include "nsWebBrowserChrome.h"
|
||||||
|
#include "nsThrobber.h"
|
||||||
|
|
||||||
// Helper Classes
|
// Helper Classes
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
// Interfaces needed to be included
|
// Interfaces needed to be included
|
||||||
#include "nsIDocShellTreeItem.h"
|
#include "nsIDocShellTreeItem.h"
|
||||||
|
#include "nsIWebProgress.h"
|
||||||
|
|
||||||
// CIDs
|
// CIDs
|
||||||
|
|
||||||
@ -40,8 +41,7 @@
|
|||||||
//*** nsWebBrowserChrome: Object Management
|
//*** nsWebBrowserChrome: Object Management
|
||||||
//*****************************************************************************
|
//*****************************************************************************
|
||||||
|
|
||||||
nsWebBrowserChrome::nsWebBrowserChrome() : mBrowserWindow(nsnull),
|
nsWebBrowserChrome::nsWebBrowserChrome() : mBrowserWindow(nsnull)
|
||||||
mProgressStatusFlags(0)
|
|
||||||
{
|
{
|
||||||
NS_INIT_REFCNT();
|
NS_INIT_REFCNT();
|
||||||
}
|
}
|
||||||
@ -360,20 +360,26 @@ NS_IMETHODIMP nsWebBrowserChrome::OnChildProgressChange(nsIChannel* aChannel,
|
|||||||
NS_IMETHODIMP nsWebBrowserChrome::OnStatusChange(nsIChannel* aChannel,
|
NS_IMETHODIMP nsWebBrowserChrome::OnStatusChange(nsIChannel* aChannel,
|
||||||
PRInt32 aProgressStatusFlags)
|
PRInt32 aProgressStatusFlags)
|
||||||
{
|
{
|
||||||
/* if(aProgressStatusFlags & nsIWebProgress::flag_networkActivity)
|
if(aProgressStatusFlags & nsIWebProgress::flag_net_start)
|
||||||
{ // There is network activity now
|
OnLoadStart(aChannel);
|
||||||
|
else if(aProgressStatusFlags & nsIWebProgress::flag_net_stop)
|
||||||
}
|
OnLoadFinished(aChannel, aProgressStatusFlags);
|
||||||
else
|
else if(aProgressStatusFlags & nsIWebProgress::flag_net_dns)
|
||||||
{ // There is no network Activity
|
OnStatusDNS(aChannel);
|
||||||
if(mProgressStatusFlags & nsIWebProgress::flag_networkActivity)
|
else if(aProgressStatusFlags & nsIWebProgress::flag_net_connecting)
|
||||||
{ // If there was netwoerk activity before
|
OnStatusConnecting(aChannel);
|
||||||
OnLoadFinished(nsIChannel);
|
else if(aProgressStatusFlags & nsIWebProgress::flag_net_redirecting)
|
||||||
}
|
OnStatusRedirecting(aChannel);
|
||||||
}
|
else if(aProgressStatusFlags & nsIWebProgress::flag_net_negotiating)
|
||||||
|
OnStatusNegotiating(aChannel);
|
||||||
//XXXTAB Implement
|
else if(aProgressStatusFlags & nsIWebProgress::flag_net_transferring)
|
||||||
NS_ERROR("NotYetImplemented");*/
|
OnStatusTransferring(aChannel);
|
||||||
|
|
||||||
|
if(aProgressStatusFlags & nsIWebProgress::flag_win_start)
|
||||||
|
OnWindowActivityStart();
|
||||||
|
else if(aProgressStatusFlags & nsIWebProgress::flag_win_stop)
|
||||||
|
OnWindowActivityFinished();
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -417,3 +423,108 @@ nsBrowserWindow* nsWebBrowserChrome::BrowserWindow()
|
|||||||
return mBrowserWindow;
|
return mBrowserWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//*****************************************************************************
|
||||||
|
// nsWebBrowserChrome: Status Change Handling
|
||||||
|
//*****************************************************************************
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnLoadStart(nsIChannel* aChannel)
|
||||||
|
{
|
||||||
|
mBrowserWindow->mLoadStartTime = PR_Now();
|
||||||
|
|
||||||
|
if(mBrowserWindow->mThrobber)
|
||||||
|
mBrowserWindow->mThrobber->Start();
|
||||||
|
|
||||||
|
nsCOMPtr<nsIURI> uri;
|
||||||
|
aChannel->GetURI(getter_AddRefs(uri));
|
||||||
|
|
||||||
|
if(mBrowserWindow->mStatus)
|
||||||
|
{
|
||||||
|
nsXPIDLCString uriString;
|
||||||
|
|
||||||
|
uri->GetSpec(getter_Copies(uriString));
|
||||||
|
|
||||||
|
nsAutoString url(uriString);
|
||||||
|
url.Append(": start");
|
||||||
|
PRUint32 size;
|
||||||
|
mBrowserWindow->mStatus->SetText(url,size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnLoadFinished(nsIChannel* aChannel,
|
||||||
|
PRInt32 aProgressStatusFlags)
|
||||||
|
{
|
||||||
|
nsXPIDLCString uriString;
|
||||||
|
if(aChannel)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsIURI> uri;
|
||||||
|
aChannel->GetURI(getter_AddRefs(uri));
|
||||||
|
|
||||||
|
uri->GetSpec(getter_Copies(uriString));
|
||||||
|
}
|
||||||
|
|
||||||
|
nsAutoString msg(uriString);
|
||||||
|
|
||||||
|
PRTime endLoadTime = PR_Now();
|
||||||
|
if(mBrowserWindow->mShowLoadTimes)
|
||||||
|
{
|
||||||
|
printf("Loading ");
|
||||||
|
fputs(msg, stdout);
|
||||||
|
PRTime delta;
|
||||||
|
LL_SUB(delta, endLoadTime, mBrowserWindow->mLoadStartTime);
|
||||||
|
double usecs;
|
||||||
|
LL_L2D(usecs, delta);
|
||||||
|
printf(" took %g milliseconds\n", usecs / 1000.0);
|
||||||
|
}
|
||||||
|
if(mBrowserWindow->mThrobber)
|
||||||
|
mBrowserWindow->mThrobber->Stop();
|
||||||
|
if(mBrowserWindow->mStatus)
|
||||||
|
{
|
||||||
|
PRUint32 size;
|
||||||
|
|
||||||
|
msg.Append(" done.");
|
||||||
|
|
||||||
|
mBrowserWindow->mStatus->SetText(msg, size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnStatusDNS(nsIChannel* aChannel)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnStatusConnecting(nsIChannel* aChannel)
|
||||||
|
{
|
||||||
|
nsXPIDLCString uriString;
|
||||||
|
if(aChannel)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsIURI> uri;
|
||||||
|
aChannel->GetURI(getter_AddRefs(uri));
|
||||||
|
|
||||||
|
uri->GetSpec(getter_Copies(uriString));
|
||||||
|
}
|
||||||
|
|
||||||
|
nsAutoString msg("Connecting to ");
|
||||||
|
msg.Append(uriString);
|
||||||
|
|
||||||
|
PRUint32 size;
|
||||||
|
mBrowserWindow->mStatus->SetText(msg,size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnStatusRedirecting(nsIChannel* aChannel)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnStatusNegotiating(nsIChannel* aChannel)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnStatusTransferring(nsIChannel* aChannel)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnWindowActivityStart()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWebBrowserChrome::OnWindowActivityFinished()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|||||||
@ -57,9 +57,19 @@ protected:
|
|||||||
void BrowserWindow(nsBrowserWindow* aBrowserWindow);
|
void BrowserWindow(nsBrowserWindow* aBrowserWindow);
|
||||||
nsBrowserWindow* BrowserWindow();
|
nsBrowserWindow* BrowserWindow();
|
||||||
|
|
||||||
|
// Status Change Handling
|
||||||
|
void OnLoadStart(nsIChannel* aChannel);
|
||||||
|
void OnLoadFinished(nsIChannel* aChannel, PRInt32 aProgressStatusFlags);
|
||||||
|
void OnStatusDNS(nsIChannel* aChannel);
|
||||||
|
void OnStatusConnecting(nsIChannel* aChannel);
|
||||||
|
void OnStatusRedirecting(nsIChannel* aChannel);
|
||||||
|
void OnStatusNegotiating(nsIChannel* aChannel);
|
||||||
|
void OnStatusTransferring(nsIChannel* aChannel);
|
||||||
|
void OnWindowActivityStart();
|
||||||
|
void OnWindowActivityFinished();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
nsBrowserWindow* mBrowserWindow;
|
nsBrowserWindow* mBrowserWindow;
|
||||||
PRInt32 mProgressStatusFlags;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* nsWebBrowserChrome_h__ */
|
#endif /* nsWebBrowserChrome_h__ */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user