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

Reply via email to