Closed
Bug 135395
Opened 23 years ago
Closed 23 years ago
Add framework code for mozilla accessibility on Linux
Categories
(Core :: XUL, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: yinbolian, Assigned: yinbolian)
References
Details
(Keywords: access, Whiteboard: need r=)
Attachments
(9 obsolete files)
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: expose mozilla accessibility through Atk → Add framework code for mozilla accessibility on Linux
Assignee | ||
Comment 1•23 years ago
|
||
see Mozilla Accessbility on Linux/Unix (http://bugzilla.mozilla.org/attachment.cgi?id=77614&action=view) and bug 127893 for background information. this bug should implement the framework of MAI (Mozilla ATK Implementation) mentioned in the above document.
Assignee | ||
Comment 2•23 years ago
|
||
1. what's done (1) init process is done: If Atk-bridge is loaded, mozilla will init the Accessibility support for ATK interfaces. If Atk-bridge is missing, nothing happen, mozilla run as normal without Atk support. (2) dependences is reasonable: Compile time: Atk Run Time : a. with accessibility support: all the stack of accessibility libs on Gnome2 b. without accessibility support : Atk libs (3) Simple framework can work: AT apps on the other side can get reference to nsAccessible Object in Mozilla, and call one of its method , "GetName" 2. Main Problems: (1) Tow ways of Implementing Atk support to be chosen: a. like mozilla on Windows: on the same library of widget/src/windows, loaded when mozilla startup. b. like gail on Gnome: seperate shared library, loaded when user set the environment GTK_MODULES. Then if user not config accessibility environment, he got zero overhead. (2) How to sent Atk sigals to Atk-bridge a. like mozilla on Windows: One Heavy Atk Object sents all signals for all nsAccessible object. b. like gail on Gnome: Many Light Atk Objects sent signal for different nsAccessible object. All of the 2x2 ways can work, just tradeoff. I am not very sure which one is the best, but personally I prefer "(1).b+(2).b". Bill and Peter, do you have any suggestion? If you find I am on the wrong way, please pull me back as early as possible. Ant Comments, questions and complaints are welcomed, as early as possible.
Peter Korn wrote: I defer to Bill on this; but since you asked my opinion as well, here it is: I too vote for (1).b - only load the library when an environment variable is set. Note: it may not be GTK_MODULES in the future. I believe a new mechanism is being introduced/has been introduced that will superceed GTK_MODULES. I also lean toward (2).b. We are used to having the various Atk objects firing their own events. We need to track ref-counts on them anyway, so we don't save that task by going with (2).a. Regards, Peter
Assignee | ||
Comment 4•23 years ago
|
||
Assignee | ||
Comment 5•23 years ago
|
||
Assignee | ||
Comment 6•23 years ago
|
||
Assignee | ||
Comment 7•23 years ago
|
||
Assignee | ||
Comment 9•23 years ago
|
||
Assignee | ||
Comment 10•23 years ago
|
||
The new one include all patches for all the changes needed, they are: 1. new directory created: mozilla/widget/src/gtk2/mai 2. new files add in the new directory (see above): nsMaiObject.h nsMaiRoot.h nsMaiUtil.h nsMaiWidget.h nsMaiObject.cpp nsMaiRoot.cpp nsMaiUtil.cpp nsMaiWidget.cpp nsMaiTopLevel.h nsMaiTopLevel.cpp Makefile.in 3. changed files in mozilla/widget/src/gtk2: nsWindow.h nsWindow.cpp nsCommonWidget.h nsCommonWidget.cpp nsAppShell.cpp Makefile.in 4. others configuration files changed: mozilla/allmakefiles.sh mozilla/widget/src/Makefile.in
Attachment #78678 -
Attachment is obsolete: true
Attachment #78680 -
Attachment is obsolete: true
Attachment #78681 -
Attachment is obsolete: true
Attachment #78682 -
Attachment is obsolete: true
Attachment #78689 -
Attachment is obsolete: true
Assignee | ||
Updated•23 years ago
|
Whiteboard: need r=
Comment 11•23 years ago
|
||
*******Jay Yan said:***************** the task of the framework is to solve the problem of compiling dependency(http://bugzilla.mozilla.org/attachment.cgi?id=77614&action=view#Compiling_dependency) and running dependency(http://bugzilla.mozilla.org/attachment.cgi?id=77614&action=view#Runing_dependency) and write some example code. We wanted to put some code on widget/src/gtk2, because it's compiling dependency is similar with gtk2 port. of course, the accessibility code will be seperated with the gtk2 widgets through having a new subdirectory: widget/src/gtk2/mai. Bolian is now making a new patch for it. **********Chris blizzard wrote:************* Yeah, I've been asked to review that code. In general so far the code looks OK but I haven't looked at it in any depth. I'll go into this a little more in the review but we should probably move all of that into the gtk2 widget library instead of making mai a seperate library. Unless there's a really good reason to keep it seperate that I'm overlooking, of course. Anyway, I'm more than happy to include the MAI code in the gtk2 widget code. That's probably where it should live. ******Jay Yan wrote:******** in the first 5 patches, Bolian put code directly on /widget/src/gtk2, after that we think perhaps seperate the MAI code into different library will enhance the performance and reduce the dependency, so we created a new seperated directory under gtk2: MAI and put the code in this new directory, the 6th patch is for this solutuon. if Chris thinks we had better put the code directly on widget/src/gtk2, we can make another all-in-patch and review/sr two patcheds at the same time, and discuss and compare two solution, at last checkin the better solution. (Add Shaver to CC list, hope that Shaver does not mind)
Comment 12•23 years ago
|
||
about the bug assign, patch review, and super review: Now I changed the bug owner to Bolian, beause Bolian is the author of the patch. Actually I have reviewed this patch, but I do not think I am the right person to give r= to this patch( at least now:-)), today, 8 developers in browser-china-atf will have a meeting to review this patch. (we are very very careful:-) ) Can browser-china-atf@sun.com give r= for this patch before Chris give sr=? if not, any idea? thanks everybody.
Assignee: browser-china-atf → bolian.yin
Status: ASSIGNED → NEW
Comment 13•23 years ago
|
||
The reviewing result from browser-china-atf@sun.com 1. ACCESSIBILITY directive should enclose header in nsWindow.h ? in widget/src/windows they did that. We can do without the directive, But if someone complile without ACCESSIBILITY and mai files are all in a sperate directory not complied, I am afraid the compiler can not find the header. So leave it for now, until we find more compelling reason. 2. about the two new methods added in "nsWindow" class. a). mark them as "private" b). move the declares to the end of the class c). remove "virtual", I do not find any other class want to override it. d). keep the return value type "PRBool", do not use "NS_IMETHOD", this is what widget/src/windows/nsWindow.h does 3. adjust the format of the declare of "mTopLevelAccessible" 4. move the destruction work of access from nsWindow::~nsWindow to nsWindow::Destroy 5. align the second line of calling NativeCreate in nsWindow::Create (two places) I is my fault, not UltraEdit's :( 6. Add Comments to nsWindow::DispatchAccessibleEvent BTW, the name is the same in widget/src/windows/nsWindow.cpp 7. exchange the two parts of "==" in nsWindow::DispatchAccessibleEvent and add parentheses( ?how to spell this word?) 8. nsAppShell.cpp, in the comments, change "proxy" to "implementation" 9. Use extern "C" { } to enclose "mai_init". Keep unchange After I check the code, they should keep using the C++ naming convention. So Leave it unchanged. 11. Use "gtype" in all the MAI code if possilbe I will check the exceptions, and change them. 12. Remove the inheritance from "nsISupports"
Assignee | ||
Comment 14•23 years ago
|
||
1. new files in widget/src/gtk2 nsMaiHook.h 2. new dir: widget/src/gtk2/mai new files in widget/src/gtk2/mai Makefile.in nsMaiObject.h nsMaiTopLevel.h nsMaiWidget.h nsMaiInterface.cpp nsMaiRoot.cpp nsMaiUtil.cpp nsMaiInterface.h nsMaiRoot.h nsMaiUtil.h nsMaiObject.cpp nsMaiTopLevel.cpp nsMaiWidget.cpp 3. changed files in mozilla/widget/src/gtk2: nsWindow.h nsWindow.cpp nsCommonWidget.h nsCommonWidget.cpp Makefile.in 4. others configuration files changed: mozilla/allmakefiles.sh mozilla/widget/src/Makefile.in ====================== this patch make some changes to the previous one: 1. mai now is a seperate lib, which can be loaded by gtk_init when: GTK_MODULES=mai 2. some changes according to the previous code-review meeting (see Comment #13 )
Attachment #79586 -
Attachment is obsolete: true
Comment 15•23 years ago
|
||
Comment on attachment 80762 [details] [diff] [review] new patch + InitAccessibleEvent(event); + nsEventStatus status; + DispatchEvent(&event, status); + result = (nsEventStatus_eConsumeNoDefault ? PR_TRUE : PR_FALSE == status); should be result = (nsEventStatus_eConsumeNoDefault == status) ? PR_TRUE : PR_FALSE; + void CreateTopLevelAccessible(); + PRBool DispatchAccessibleEvent(nsIAccessible** aAccessible); We can use NS_IMETHOD_(PRBool) to define it NS_IMETHOD(PRBool) DispatchAccessibleEvent(nsIAccessible** aAccessible); r=browser-china-atf with above modification
Attachment #80762 -
Flags: review+
Comment 16•23 years ago
|
||
Bolian and John, Since Chris has cleaned up gtk2 code today, please update your workspace, prepare new patch with right style, add Pete's comments, and place the modification of Makefile.in into right place. thanks Jay
Assignee | ||
Comment 17•23 years ago
|
||
Hi Blizzard, please sr: changes include: 1. re-formating on the suggestion of Blizzard (many changes) 2. some modification to make Forte CC compile correctly 3. merge Pete's comments thanks all, -- Bolian
Attachment #80762 -
Attachment is obsolete: true
Assignee | ||
Comment 18•23 years ago
|
||
changed files attachment (id=81371): 1. new files in widget/src/gtk2 nsMaiHook.h 2. new dir: widget/src/gtk2/mai new files in widget/src/gtk2/mai Makefile.in nsMaiObject.h nsMaiTopLevel.h nsMaiWidget.h nsMaiInterface.cpp nsMaiRoot.cpp nsMaiUtil.cpp nsMaiInterface.h nsMaiRoot.h nsMaiUtil.h nsMaiObject.cpp nsMaiTopLevel.cpp nsMaiWidget.cpp 3. changed files in mozilla/widget/src/gtk2: nsWindow.h nsWindow.cpp nsCommonWidget.h nsCommonWidget.cpp Makefile.in 4. others configuration files changed: mozilla/allmakefiles.sh
Status: NEW → ASSIGNED
Comment 19•23 years ago
|
||
Comment on attachment 81371 [details] [diff] [review] re-formating, merge comments verified these modificatons: based on new gtk2 trunk code,indent and bracket format, makefile's location, and Pete's modification r=jay.yan
Attachment #81371 -
Flags: review+
Comment 20•23 years ago
|
||
Comment on attachment 81371 [details] [diff] [review] re-formating, merge comments need to fix some indenting in some of those files. other than that sr=blizzard
Attachment #81371 -
Flags: superreview+
Assignee | ||
Comment 21•23 years ago
|
||
thanks everyone. This patch can be used for checkin
Attachment #81371 -
Attachment is obsolete: true
Comment 22•23 years ago
|
||
Chris, now the tindexbox is red, it seems that I can not check it in before our long holiday which is from May 1st to May7th. If you want to go on cleaning up gtk2 port code and do work based on this patch nowadays, can you help to check them in? or I will recreat the patch according to the trunk and check them in on May 8th. Thanks. Jay
Comment 23•23 years ago
|
||
checked in Bolian's new patch, which is based on new trunk. and mark this bug as fixed.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Comment 24•23 years ago
|
||
Comment on attachment 81638 [details] [diff] [review] with indent fixed in some files This patch was made on March 30th. today I checked in new patch.
Attachment #81638 -
Attachment is obsolete: true
Updated•23 years ago
|
QA Contact: jrgm → dsirnapalli
You need to log in
before you can comment on or make changes to this bug.
Description
•