aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/EphyBrowser.cpp
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2005-05-04 02:49:32 +0800
committerChristian Persch <chpe@src.gnome.org>2005-05-04 02:49:32 +0800
commita8903de9c29718f69cb5f847725ca09688e50474 (patch)
tree204732f77d5010e8dc5f09eb2f8afa9b519feb64 /embed/mozilla/EphyBrowser.cpp
parentf4c20450ae05f307f3ccc9b673929c5759685ced (diff)
downloadgsoc2013-epiphany-a8903de9c29718f69cb5f847725ca09688e50474.tar
gsoc2013-epiphany-a8903de9c29718f69cb5f847725ca09688e50474.tar.gz
gsoc2013-epiphany-a8903de9c29718f69cb5f847725ca09688e50474.tar.bz2
gsoc2013-epiphany-a8903de9c29718f69cb5f847725ca09688e50474.tar.lz
gsoc2013-epiphany-a8903de9c29718f69cb5f847725ca09688e50474.tar.xz
gsoc2013-epiphany-a8903de9c29718f69cb5f847725ca09688e50474.tar.zst
gsoc2013-epiphany-a8903de9c29718f69cb5f847725ca09688e50474.zip
Use the web navigation to get the URI, not the document. Fixes bug
2005-05-03 Christian Persch <chpe@cvs.gnome.org> * embed/mozilla/EphyBrowser.cpp: * embed/mozilla/EphyBrowser.h: * embed/mozilla/mozilla-embed.cpp: Use the web navigation to get the URI, not the document. Fixes bug #301044.
Diffstat (limited to 'embed/mozilla/EphyBrowser.cpp')
-rw-r--r--embed/mozilla/EphyBrowser.cpp48
1 files changed, 19 insertions, 29 deletions
diff --git a/embed/mozilla/EphyBrowser.cpp b/embed/mozilla/EphyBrowser.cpp
index aa2d639bc..91bfca09d 100644
--- a/embed/mozilla/EphyBrowser.cpp
+++ b/embed/mozilla/EphyBrowser.cpp
@@ -965,48 +965,38 @@ nsresult EphyBrowser::GetDOMWindow (nsIDOMWindow **aDOMWindow)
return NS_OK;
}
-nsresult EphyBrowser::GetDocumentUrl (nsACString &url)
+nsresult EphyBrowser::GetDocumentURI (nsIURI **aURI)
{
- nsresult rv;
-
- NS_ENSURE_TRUE (mDOMWindow, NS_ERROR_FAILURE);
-
- nsCOMPtr<nsIDOMDocument> DOMDocument;
- mDOMWindow->GetDocument (getter_AddRefs(DOMDocument));
- NS_ENSURE_TRUE (DOMDocument, NS_ERROR_FAILURE);
+ if (!mDOMWindow) return NS_ERROR_NOT_INITIALIZED;
- nsCOMPtr<nsIDOM3Document> doc = do_QueryInterface(DOMDocument);
- NS_ENSURE_TRUE (doc, NS_ERROR_FAILURE);
-
- nsEmbedString docURI;
- rv = doc->GetDocumentURI (docURI);
+ nsresult rv;
+ nsCOMPtr<nsIWebNavigation> webNav (do_GetInterface (mDOMWindow, &rv));
NS_ENSURE_SUCCESS (rv, rv);
- NS_UTF16ToCString (docURI, NS_CSTRING_ENCODING_UTF8, url);
-
- return NS_OK;
+ return webNav->GetCurrentURI (aURI);
}
-nsresult EphyBrowser::GetTargetDocumentUrl (nsACString &url)
+nsresult EphyBrowser::GetTargetDocumentURI (nsIURI **aURI)
{
- nsresult rv;
+ if (!mWebBrowser) return NS_ERROR_NOT_INITIALIZED;
- NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE);
+ nsCOMPtr<nsIDOMDocument> domDoc;
+ GetTargetDocument (getter_AddRefs(domDoc));
+ NS_ENSURE_TRUE (domDoc, NS_ERROR_FAILURE);
- nsCOMPtr<nsIDOMDocument> DOMDocument;
- GetTargetDocument (getter_AddRefs(DOMDocument));
- NS_ENSURE_TRUE (DOMDocument, NS_ERROR_FAILURE);
+ nsCOMPtr<nsIDOMDocumentView> docView (do_QueryInterface (domDoc));
+ NS_ENSURE_TRUE (docView, NS_ERROR_FAILURE);
- nsCOMPtr<nsIDOM3Document> doc = do_QueryInterface(DOMDocument);
- NS_ENSURE_TRUE (doc, NS_ERROR_FAILURE);
+ nsCOMPtr<nsIDOMAbstractView> abstractView;
+ docView->GetDefaultView (getter_AddRefs (abstractView));
+ NS_ENSURE_TRUE (abstractView, NS_ERROR_FAILURE);
+ /* the abstract view is really the DOM window */
- nsEmbedString docURI;
- rv = doc->GetDocumentURI (docURI);
+ nsresult rv;
+ nsCOMPtr<nsIWebNavigation> webNav (do_GetInterface (abstractView, &rv));
NS_ENSURE_SUCCESS (rv, rv);
- NS_UTF16ToCString (docURI, NS_CSTRING_ENCODING_UTF8, url);
-
- return NS_OK;
+ return webNav->GetCurrentURI (aURI);
}
nsresult EphyBrowser::ForceEncoding (const char *encoding)