From 96046e257b5737cd9ea69a03ff499c1c7294d241 Mon Sep 17 00:00:00 2001 From: "peterlubczynski%netscape.com" Date: Sat, 16 Feb 2002 05:07:47 +0000 Subject: [PATCH] Made a dummy document to hold our url and pass back to the instance owner in order to fix bug 121033 in NP_FULL mode, NPP_GetURLNotify() does not resolve relative URLs correctly r=av sr=beard git-svn-id: svn://10.0.0.236/trunk@114668 18797224-902f-48f8-a5cc-f745e15eee43 --- .../plugin/base/src/nsPluginViewer.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/mozilla/modules/plugin/base/src/nsPluginViewer.cpp b/mozilla/modules/plugin/base/src/nsPluginViewer.cpp index 9ecfaad2a76..e4569c88371 100644 --- a/mozilla/modules/plugin/base/src/nsPluginViewer.cpp +++ b/mozilla/modules/plugin/base/src/nsPluginViewer.cpp @@ -64,7 +64,7 @@ #include "nsPluginViewer.h" #include "nsGUIEvent.h" #include "nsIPluginViewer.h" - +#include "nsContentCID.h" #include "nsITimer.h" #include "nsITimerCallback.h" @@ -81,7 +81,7 @@ static NS_DEFINE_IID(kIContentViewerIID, NS_ICONTENTVIEWER_IID); static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kCPluginManagerCID, NS_PLUGINMANAGER_CID); static NS_DEFINE_IID(kIDocumentIID, NS_IDOCUMENT_IID); - +static NS_DEFINE_IID(kHTMLDocumentCID, NS_HTMLDOCUMENT_CID); class PluginViewerImpl; @@ -359,6 +359,21 @@ PluginViewerImpl::StartLoad(nsIRequest* request, nsIStreamListener*& aResult) nsresult rv = NS_ERROR_FAILURE; if(host) { + // create a document so that we can pass something back to plugin + // instance if it wants one + nsCOMPtr doc(do_CreateInstance(kHTMLDocumentCID)); + if (doc) { + mDocument = doc; + NS_ADDREF(mDocument); // released in ~nsPluginViewer + + // set the document's URL + // so it can be fetched later for resolving relative URLs + nsCOMPtr uri; + GetURI(getter_AddRefs(uri)); + if (uri) + mDocument->SetDocumentURL(uri); + } + nsRect r; mWindow->GetClientBounds(r); rv = CreatePlugin(request, host, nsRect(0, 0, r.width, r.height), aResult);