From 5dda7e45d5db0cd97e6d86c8786ff68a63a221fb Mon Sep 17 00:00:00 2001 From: "hyatt%netscape.com" Date: Thu, 17 Aug 2000 22:44:01 +0000 Subject: [PATCH] Fix for 48187, r=danm git-svn-id: svn://10.0.0.236/trunk@76589 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xul/document/src/nsXULDocument.cpp | 28 +++++++++++++++++-- mozilla/rdf/content/src/nsXULDocument.cpp | 28 +++++++++++++++++-- 2 files changed, 52 insertions(+), 4 deletions(-) diff --git a/mozilla/content/xul/document/src/nsXULDocument.cpp b/mozilla/content/xul/document/src/nsXULDocument.cpp index 3db62f50b04..9672cc30d4d 100644 --- a/mozilla/content/xul/document/src/nsXULDocument.cpp +++ b/mozilla/content/xul/document/src/nsXULDocument.cpp @@ -2844,8 +2844,32 @@ nsXULDocument::CreateRange(nsIDOMRange** aRange) NS_IMETHODIMP nsXULDocument::GetDefaultView(nsIDOMAbstractView** aDefaultView) { - NS_NOTREACHED("nsXULDocument::GetDefaultView"); - return NS_ERROR_NOT_IMPLEMENTED; + NS_ENSURE_ARG_POINTER(aDefaultView); + *aDefaultView = nsnull; + + nsIPresShell *shell = NS_STATIC_CAST(nsIPresShell *, + mPresShells.ElementAt(0)); + NS_ENSURE_TRUE(shell, NS_OK); + + nsCOMPtr ctx; + nsresult rv = shell->GetPresContext(getter_AddRefs(ctx)); + NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && ctx, rv); + + nsCOMPtr container; + rv = ctx->GetContainer(getter_AddRefs(container)); + NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && container, rv); + + nsCOMPtr ifrq(do_QueryInterface(container)); + NS_ENSURE_TRUE(ifrq, NS_OK); + + nsCOMPtr window; + ifrq->GetInterface(NS_GET_IID(nsIDOMWindow), getter_AddRefs(window)); + NS_ENSURE_TRUE(window, NS_OK); + + window->QueryInterface(NS_GET_IID(nsIDOMAbstractView), + (void **)aDefaultView); + + return NS_OK; } nsresult diff --git a/mozilla/rdf/content/src/nsXULDocument.cpp b/mozilla/rdf/content/src/nsXULDocument.cpp index 3db62f50b04..9672cc30d4d 100644 --- a/mozilla/rdf/content/src/nsXULDocument.cpp +++ b/mozilla/rdf/content/src/nsXULDocument.cpp @@ -2844,8 +2844,32 @@ nsXULDocument::CreateRange(nsIDOMRange** aRange) NS_IMETHODIMP nsXULDocument::GetDefaultView(nsIDOMAbstractView** aDefaultView) { - NS_NOTREACHED("nsXULDocument::GetDefaultView"); - return NS_ERROR_NOT_IMPLEMENTED; + NS_ENSURE_ARG_POINTER(aDefaultView); + *aDefaultView = nsnull; + + nsIPresShell *shell = NS_STATIC_CAST(nsIPresShell *, + mPresShells.ElementAt(0)); + NS_ENSURE_TRUE(shell, NS_OK); + + nsCOMPtr ctx; + nsresult rv = shell->GetPresContext(getter_AddRefs(ctx)); + NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && ctx, rv); + + nsCOMPtr container; + rv = ctx->GetContainer(getter_AddRefs(container)); + NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && container, rv); + + nsCOMPtr ifrq(do_QueryInterface(container)); + NS_ENSURE_TRUE(ifrq, NS_OK); + + nsCOMPtr window; + ifrq->GetInterface(NS_GET_IID(nsIDOMWindow), getter_AddRefs(window)); + NS_ENSURE_TRUE(window, NS_OK); + + window->QueryInterface(NS_GET_IID(nsIDOMAbstractView), + (void **)aDefaultView); + + return NS_OK; } nsresult