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