Changes to enable an asynchronous creation of a webshell in response to a

window.open call.
This commit is contained in:
hyatt%netscape.com 1999-04-19 21:08:44 +00:00
Родитель 681ea7bf01
Коммит 47df321322
7 изменённых файлов: 96 добавлений и 1 удалений

Просмотреть файл

@ -240,6 +240,10 @@ public:
NS_IMETHOD NewWebShell(PRUint32 aChromeMask, NS_IMETHOD NewWebShell(PRUint32 aChromeMask,
PRBool aVisible, PRBool aVisible,
nsIWebShell *&aNewWebShell); nsIWebShell *&aNewWebShell);
NS_IMETHOD CanCreateNewWebShell(PRBool& aResult);
NS_IMETHOD SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell);
NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult); NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult);
NS_IMETHOD FocusAvailable(nsIWebShell* aFocusedWebShell, PRBool& aFocusTaken); NS_IMETHOD FocusAvailable(nsIWebShell* aFocusedWebShell, PRBool& aFocusTaken);
@ -1889,6 +1893,27 @@ nsWebShell::NewWebShell(PRUint32 aChromeMask,
return NS_OK; return NS_OK;
} }
NS_IMETHODIMP
nsWebShell::CanCreateNewWebShell(PRBool& aResult)
{
aResult = PR_TRUE;
if (nsnull != mContainer) {
return mContainer->CanCreateNewWebShell(aResult);
}
return NS_OK;
}
NS_IMETHODIMP
nsWebShell::SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell)
{
if (nsnull != mContainer) {
return mContainer->SetNewWebShellInfo(aName, anURL, aOpenerShell, aChromeMask, aNewShell);
}
return NS_OK;
}
NS_IMETHODIMP NS_IMETHODIMP
nsWebShell::FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult) nsWebShell::FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult)
{ {

Просмотреть файл

@ -91,7 +91,15 @@ public:
NS_IMETHOD NewWebShell(PRUint32 aChromeMask, NS_IMETHOD NewWebShell(PRUint32 aChromeMask,
PRBool aVisible, PRBool aVisible,
nsIWebShell *&aNewWebShell) = 0; nsIWebShell *&aNewWebShell) = 0;
// XXX dave sez: if kipp doesn't think NewWebShell should be part of
// this interface, then the next two methods probably shouldn't either.
// They should move to whereever NewWebShell moves.
NS_IMETHOD CanCreateNewWebShell(PRBool& aResult) = 0;
NS_IMETHOD SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell) = 0;
NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, NS_IMETHOD FindWebShellWithName(const PRUnichar* aName,
nsIWebShell*& aResult) = 0; nsIWebShell*& aResult) = 0;

Просмотреть файл

@ -240,6 +240,10 @@ public:
NS_IMETHOD NewWebShell(PRUint32 aChromeMask, NS_IMETHOD NewWebShell(PRUint32 aChromeMask,
PRBool aVisible, PRBool aVisible,
nsIWebShell *&aNewWebShell); nsIWebShell *&aNewWebShell);
NS_IMETHOD CanCreateNewWebShell(PRBool& aResult);
NS_IMETHOD SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell);
NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult); NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult);
NS_IMETHOD FocusAvailable(nsIWebShell* aFocusedWebShell, PRBool& aFocusTaken); NS_IMETHOD FocusAvailable(nsIWebShell* aFocusedWebShell, PRBool& aFocusTaken);
@ -1889,6 +1893,27 @@ nsWebShell::NewWebShell(PRUint32 aChromeMask,
return NS_OK; return NS_OK;
} }
NS_IMETHODIMP
nsWebShell::CanCreateNewWebShell(PRBool& aResult)
{
aResult = PR_TRUE;
if (nsnull != mContainer) {
return mContainer->CanCreateNewWebShell(aResult);
}
return NS_OK;
}
NS_IMETHODIMP
nsWebShell::SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell)
{
if (nsnull != mContainer) {
return mContainer->SetNewWebShellInfo(aName, anURL, aOpenerShell, aChromeMask, aNewShell);
}
return NS_OK;
}
NS_IMETHODIMP NS_IMETHODIMP
nsWebShell::FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult) nsWebShell::FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult)
{ {

Просмотреть файл

@ -1743,6 +1743,21 @@ nsBrowserWindow::NewWebShell(PRUint32 aChromeMask,
return rv; return rv;
} }
NS_IMETHODIMP
nsBrowserWindow::CanCreateNewWebShell(PRBool& aResult)
{
aResult = PR_TRUE; // We can always make a new web shell synchronously
return NS_OK;
}
NS_IMETHODIMP
nsBrowserWindow::SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell)
{
return NS_OK; // We don't care about this method, since we can make new web shells immediately.
}
NS_IMETHODIMP NS_IMETHODIMP
nsBrowserWindow::FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult) nsBrowserWindow::FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult)
{ {

Просмотреть файл

@ -106,6 +106,10 @@ public:
NS_IMETHOD NewWebShell(PRUint32 aChromeMask, NS_IMETHOD NewWebShell(PRUint32 aChromeMask,
PRBool aVisible, PRBool aVisible,
nsIWebShell *&aNewWebShell); nsIWebShell *&aNewWebShell);
NS_IMETHOD CanCreateNewWebShell(PRBool& aResult);
NS_IMETHOD SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell);
NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult); NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult);
NS_IMETHOD FocusAvailable(nsIWebShell* aFocusedWebShell, PRBool& aFocusTaken); NS_IMETHOD FocusAvailable(nsIWebShell* aFocusedWebShell, PRBool& aFocusTaken);

Просмотреть файл

@ -561,6 +561,20 @@ NS_IMETHODIMP nsXPBaseWindow::NewWebShell(PRUint32 aChromeMask,
return rv; return rv;
} }
NS_IMETHODIMP
nsXPBaseWindow::CanCreateNewWebShell(PRBool& aResult)
{
aResult = PR_TRUE; // We can always make a new web shell synchronously
return NS_OK;
}
NS_IMETHODIMP
nsXPBaseWindow::SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell)
{
return NS_OK; // We don't care about this method, since we can make new web shells immediately.
}
//---------------------------------------- //----------------------------------------

Просмотреть файл

@ -97,6 +97,10 @@ public:
NS_IMETHOD NewWebShell(PRUint32 aChromeMask, NS_IMETHOD NewWebShell(PRUint32 aChromeMask,
PRBool aVisible, PRBool aVisible,
nsIWebShell *&aNewWebShell); nsIWebShell *&aNewWebShell);
NS_IMETHOD CanCreateNewWebShell(PRBool& aResult);
NS_IMETHOD SetNewWebShellInfo(const nsString& aName, const nsString& anURL,
nsIWebShell* aOpenerShell, PRUint32 aChromeMask,
nsIWebShell** aNewShell);
NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult); NS_IMETHOD FindWebShellWithName(const PRUnichar* aName, nsIWebShell*& aResult);
NS_IMETHOD FocusAvailable(nsIWebShell* aFocusedWebShell, PRBool& aFocusTaken); NS_IMETHOD FocusAvailable(nsIWebShell* aFocusedWebShell, PRBool& aFocusTaken);