diff --git a/dom/public/idl/base/nsIDOMNavigator.idl b/dom/public/idl/base/nsIDOMNavigator.idl index 2d26e9a647cb..421f8e16c524 100644 --- a/dom/public/idl/base/nsIDOMNavigator.idl +++ b/dom/public/idl/base/nsIDOMNavigator.idl @@ -40,7 +40,7 @@ #include "domstubs.idl" -[scriptable, uuid(a6cf906e-15b3-11d2-932e-00805f8add32)] +[scriptable, uuid(8758b72b-63d4-4685-b908-4275126410fb)] interface nsIDOMNavigator : nsISupports { readonly attribute DOMString appCodeName; @@ -58,6 +58,7 @@ interface nsIDOMNavigator : nsISupports readonly attribute DOMString securityPolicy; readonly attribute DOMString userAgent; readonly attribute boolean cookieEnabled; + readonly attribute boolean onLine; boolean javaEnabled(); boolean taintEnabled(); diff --git a/dom/src/base/nsGlobalWindow.cpp b/dom/src/base/nsGlobalWindow.cpp index 23d742e1eb41..111443b81638 100644 --- a/dom/src/base/nsGlobalWindow.cpp +++ b/dom/src/base/nsGlobalWindow.cpp @@ -6215,6 +6215,22 @@ NavigatorImpl::GetCookieEnabled(PRBool *aCookieEnabled) return rv; } +NS_IMETHODIMP +NavigatorImpl::GetOnLine(PRBool* aOnline) +{ + NS_PRECONDITION(aOnline, "Null out param"); + + *aOnline = PR_FALSE; // No ioservice would mean this is the case + + nsCOMPtr ios(do_GetService(NS_IOSERVICE_CONTRACTID)); + if (ios) { + ios->GetOffline(aOnline); + *aOnline = !*aOnline; + } + + return NS_OK; +} + NS_IMETHODIMP NavigatorImpl::JavaEnabled(PRBool *aReturn) {