In the below code i use aWebProgress to and then GetDOMWindow on that, however GetDOMWindow only allows nsIDOMWindow, would the QueryInterface accommodate for this for this
NS_IMETHODIMP WebBrowserChrome::OnLocationChange(nsIWebProgress* aWebProgress, nsIRequest* aRequest, nsIURI *location, uint32_t aFlags) { PRBool isSubFrameLoad = PR_FALSE; // Is this a subframe load if (aWebProgress) { nsCOMPtr<nsIDOMWindow> domWindow; nsCOMPtr<nsIDOMWindow> topDomWindow; aWebProgress->GetDOMWindow(getter_AddRefs(domWindow)); if (domWindow) { // Get root domWindow domWindow->GetTop(getter_AddRefs(topDomWindow)); } if (domWindow != topDomWindow) isSubFrameLoad = PR_TRUE; } if (!isSubFrameLoad) CWebBrowserChromeUI::UpdateCurrentURI(this); return NS_OK; } On Wed, Feb 10, 2016 at 8:30 PM, Kyle Huey <m...@kylehuey.com> wrote: > Yes, SizeToContent is only accessible to JS now. > > - Kyle > > On Wed, Feb 10, 2016 at 5:28 PM, Devan Shah <devan.sha...@gmail.com> > wrote: > >> yep >> >> This is how I was using nsIDOMWindow before: >> >> NS_IMETHODIMP WebBrowserChrome::OnLocationChange(nsIWebProgress* >> aWebProgress, >> nsIRequest* aRequest, >> nsIURI *location, >> uint32_t aFlags) >> { >> PRBool isSubFrameLoad = PR_FALSE; // Is this a subframe load >> if (aWebProgress) { >> nsCOMPtr<nsIDOMWindow> domWindow; >> nsCOMPtr<nsIDOMWindow> topDomWindow; >> aWebProgress->GetDOMWindow(getter_AddRefs(domWindow)); >> if (domWindow) { // Get root domWindow >> domWindow->GetTop(getter_AddRefs(topDomWindow)); >> } >> if (domWindow != topDomWindow) >> isSubFrameLoad = PR_TRUE; >> } >> if (!isSubFrameLoad) >> CWebBrowserChromeUI::UpdateCurrentURI(this); >> return NS_OK; >> } >> >> So here just changing nsCOMPtr<nsIDOMWindow> to nsCOMPtr<nsPIDOMWindow> >> and using QueryInterface should do the trick right? >> >> Also I am using a function called SizeToContent() from nsIDOMWindow which >> I do not see exists any more in nsPIDOMWindow either was this one removed >> completly. >> >> On Wed, Feb 10, 2016 at 8:24 PM, Kyle Huey <m...@kylehuey.com> wrote: >> >>> Right, that will work, although you could nsCOMPtr to make it a lot >>> prettier: >>> >>> void test(nsIDOMWindow* aDOMWindow, nsIBaseWindow** aBaseWindow) >>> { >>> nsCOMPtr<nsPIDOMWindow> window = do_QueryInterface(aDOMWindow); >>> nsCOMPtr<nsIDocShell> docShell; >>> if (window) >>> window->GetDocShell(getter_AddRefs(docShell)); >>> nsIWebShell* rootWebShell = 0; >>> NS_IF_RELEASE(rootWebShell); >>> // return status; >>> } >>> >>> - Kyle >>> >>> On Wed, Feb 10, 2016 at 5:22 PM, Devan Shah <devan.sha...@gmail.com> >>> wrote: >>> >>>> Do you happen to have a QueryInterface example, >>>> >>>> Would something like the following work: >>>> >>>> void test(nsIDOMWindow* aDOMWindow, nsIBaseWindow** aBaseWindow) >>>> { >>>> nsPIDOMWindow* window = 0; >>>> nsresult status = >>>> aDOMWindow->QueryInterface(NS_GET_IID(nsPIDOMWindow), (void**)&window); >>>> nsIDocShell* docShell = 0; >>>> if (window) >>>> window->GetDocShell(&docShell); >>>> nsIWebShell* rootWebShell = 0; >>>> NS_IF_RELEASE(rootWebShell); >>>> NS_IF_RELEASE(docShell); >>>> NS_IF_RELEASE(window); >>>> // return status; >>>> } >>>> >>>> On Wed, Feb 10, 2016 at 8:16 PM, Kyle Huey <m...@kylehuey.com> wrote: >>>> >>>>> Alright, just QueryInterface between nsIDOMWindow and nsPIDOMWindow >>>>> when you have one and need the other and you should be fine. >>>>> >>>>> - Kyle >>>>> >>>>> On Wed, Feb 10, 2016 at 5:15 PM, Devan Shah <devan.sha...@gmail.com> >>>>> wrote: >>>>> >>>>>> Currently I just want to get it up and running again on FF 45 again, >>>>>> with out making too much changes because we plan to deprecate this >>>>>> feature >>>>>> mid this year or so. >>>>>> >>>>>> Just need to get it working on Firefox 45, currently works perfectly >>>>>> on Firefox 38. >>>>>> >>>>>> >>>>> >>>> >>> >> > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform