Closed Bug 46852 Opened 24 years ago Closed 24 years ago

nsIBaseWindow needs to be split into two interfaces

Categories

(Core Graveyard :: Embedding: APIs, defect, P1)

x86
Windows 98
defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.8

People

(Reporter: jud, Assigned: adamlock)

Details

(Keywords: embed, Whiteboard: [nsbeta3-])

Attachments

(5 files)

This will remove confusion about the bi-directional nature of the current 
semantics.



     Needs to be split into two interfaces: 
          The methods implemented by the embedding application should stay in
          nsIBaseWindow - destroy(), setPosition(), getPosition(), setSize(),
          getSize(), setPositionAndSize(), getPositionAndSize(), visibility,
          setFocus(), title, repaint() 

          The down call methods used by the embedding application could be
          moved into a new public interface - initWindow(), create(), destroy(),
          setSize(), repaint(), setFocus(). Both nsIBaseWindow and the new
          interface will be implemented by nsWebBrowser.
Keywords: embed
Keywords: nsbeta3
Whiteboard: [nsbeta3+]
Target Milestone: --- → M18
Priority: P3 → P1
Now that I'm diving into this one, I'm not sure of it's relevance anymore. We
want embedding windows to look and feel just like regular windows (nsIBaseWindow
as is). We also want embedding apps to be able to manipulate browser windows,
thus both parties impl nsIBaseWindow. Can someone refresh me on the relevance
and logic surrounding the split?
per email with Jud, changing nsbeta3+ to nsbeta3- on all "embed" keyword bugs
since embedding changes will not be made in the mn6 branch. If you feel this bug
fix needs to go into mn6 branch, please list the reasons/user impact/risk and
nominate for rtm. Thanks.
Whiteboard: [nsbeta3+] → [nsbeta3-]
Target Milestone: M18 → mozilla0.6
over to adam.
Assignee: valeski → adamlock
Target Milestone: mozilla0.6 → mozilla0.8
Updating QA Contact
QA Contact: jrgm → mdunn
Blocks: 64833
This new interface contains a subset of the methods on nsIBaseWindow and is 
intended for implementation by the embedders chrome/site object. I've changed 
nsDocShellTreeOwner.cpp so that the embedder can choose which interface to 
implement - nsIWebBrowserSiteWindow or nsIBaseWindow. The implementation of 
nsIBaseWindow in nsDocShellTreeOwner has been changed to work with either.
couple questions:
1. why support either? shouldn't we just support the sitewindow?
2. the comment at the top of nsIWebBrowserSiteWindow.idl says "nsIBaseWindow"
where I think you want to say "nsIWebBrowserSiteWindow."?
1. We could just support just the site window but at the risk of breaking every 
embedders existing code. If that isn't an issue I can chop the backwards 
support.
2. That's fixed.

If you think I should change the code for 1) I'll resubmit a new patch.
please re-submit. we're not shooting for backwards compat right now.
can you do a diff -u . It's hard to tell what methods have been moved where.

cc'ing conrad as he wanted to make sure there was a particular method being 
propegated.
Conrad, can you check to see if what you need is there?

If it is I'll submit this for review
So far, it looks good. I'll work it into my embedding app, and see how it fits
together.
Will the embedding API web page on mozilla.org be updated to reflect these API changes? That would be great...
Everything has been checked in now except for the ActiveX control
It's all checked in now, marking FIXED
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Verified fixed -- source changed
Status: RESOLVED → VERIFIED
Is there separate bug for the fact that the visibility attribute needs to be on
nsIWebBrowserSiteWindow? Since it's not there now, the embedding app, if it ever
wants it window to show, has to create it visible. If it's a JS dialog and then
the dialog is moved and resized after it's created (normal case), it looks
really bad. I shouldn't complain because I said the patch looked fine but I had
not actually applied it and tested the JS dialog case.
No longer blocks: 64833
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: