Closed Bug 296855 Opened 19 years ago Closed 16 years ago

Turn on spatial navigation in Firefox

Categories

(Firefox Build System :: General, enhancement)

x86
Windows XP
enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 443043

People

(Reporter: dougt, Unassigned)

References

Details

Attachments

(2 files)

I would like to have Spatial Navigation built along with FireFox.  We can have
it in the build but have it be disabled via preferences.
The FireFox Windows DLL size is 45056 bytes.
I assume this is something we're targeting for 1.9. 
yes.  in the build but disabled for 1.9 would be ideal.  I can put a patch
together if you think this is something we should do.
We can build spatial navigation as an extension appearing in the EM, which will
allow users to turn it on or off.
QA Contact: build.config → benjamin
benjamin -- what do I need to change?  It is a xpcom component right now.
Hoopdydoo.
Assignee: dougt → benjamin
Status: NEW → ASSIGNED
Attachment #185792 - Flags: review?(dougt)
Comment on attachment 185792 [details] [diff] [review]
Build spatial navigation as an extension, rev.1

-EXPORT_LIBRARY  = 1
 MOZILLA_INTERNAL_API = 1
+FORCE_SHARED_LIB = 1

Will this break static builds that include snav?

If not, r=dougt.  I don't have a full understanding of the install.rdf
It will not break static builds, but it does force this particular component to
be built non-statically (removing the EXPORT_LIBRARY removes this lib from the
static link-list at the end)
Comment on attachment 185792 [details] [diff] [review]
Build spatial navigation as an extension, rev.1

i am not sure that this will work.  spatialnavigation links against layout.  If
we build as non-static, i think this extensions may not find the right symbols.
Attachment #185792 - Flags: review?(dougt)
Depends on: 297223
This is basically the same patch without the "chrome.manifest" hack which turns
out was a local build fluke.

Spatial navigation does not link against layout symbols (layout is a component
library, it is impossible to link against it). It does use layout components,
but that is not a problem.

This patch is tested and works like a charm.
Attachment #185852 - Flags: review?(dougt)
Comment on attachment 185852 [details] [diff] [review]
Build spatial navigation as an extension, rev.1.1 [checked in]

okay.  I haven't tested it, but I trust that it does the right thing.  r=dougt.

What about having it be built as a default extension?
Attachment #185852 - Flags: review?(dougt) → review+
That's something Ben has to decide, plus it would need some work in the
installer similar to what inspector has.
Attachment #185852 - Attachment description: Build spatial navigation as an extension, rev.1.1 → Build spatial navigation as an extension, rev.1.1 [checked in]
Assignee: benjamin → bugs
Status: ASSIGNED → NEW
I just tried building Firefox with spatial navigation on the trunk, and it looks
like static builds are busted again, at least on Windows. I get the link error
about nsRect.cpp. I used to get that on the 1.8 branch, but that error was fixed
a month or two ago. I suspect the following checkin on the trunk:

http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&whitespace_mode=show&file=Makefile.in&branch=&root=/cvsroot&subdir=mozilla/extensions/spatialnavigation/src&command=DIFF_FRAMESET&rev1=1.8&rev2=1.9

Doug, did you perhaps mean #ifdef instead of #ifndef there?
no, if we aren't building a static build, we want to include those files.  What
was the link error?

Oh, btw -- Ben, any thoughts on including this as an optional extension;  It
does alot for our accessiblity story.
Here are the link errors I am seeing (I hope the formatting comes out
semi-readable...):

/cygdrive/c/MozillaRoot/mozilla/build/cygwin-wrapper link -NOLOGO -DLL
-OUT:snav.dll -PDB:snav.pdb -SUBSYSTEM:WINDOWS  nsSpatialNavigation.obj
nsSpatialNavigationUtils.obj nsSpatialNavigationService.obj   ./module.res   
-IMPLIB:fake-import   ../../../dist/lib/unicharutil_s.lib
../../../dist/lib/xpcom.lib ../../../dist/lib/xpcom_core.lib
../../../dist/lib/nspr4.lib ../../../dist/lib/plc4.lib
../../../dist/lib/plds4.lib    kernel32.lib user32.lib gdi32.lib winmm.lib
wsock32.lib advapi32.lib   
   Creating library fake-import and object fake-import.exp

nsSpatialNavigation.obj : error LNK2019: unresolved external symbol "public: int
__thiscall nsRect::Contains(int,int)const " (?Contains@nsRect@@QBEHHH@Z)
referenced in function "public: int __thiscall nsRect::Contains(struct nsPoint
const &)const " (?Contains@nsRect@@QBEHABUnsPoint@@@Z)

nsSpatialNavigationUtils.obj : error LNK2001: unresolved external symbol
"public: int __thiscall nsRect::Contains(int,int)const "
(?Contains@nsRect@@QBEHHH@Z)

nsSpatialNavigationService.obj : error LNK2001: unresolved external symbol
"public: int __thiscall nsRect::Contains(int,int)const "
(?Contains@nsRect@@QBEHHH@Z)

nsSpatialNavigation.obj : error LNK2019: unresolved external symbol "public:
void __thiscall nsRect::Inflate(int,int)" (?Inflate@nsRect@@QAEXHH@Z) referenced
in function "public: void __thiscall nsRect::Inflate(struct nsSize const &)"
(?Inflate@nsRect@@QAEXABUnsSize@@@Z)

nsSpatialNavigationUtils.obj : error LNK2001: unresolved external symbol
"public: void __thiscall nsRect::Inflate(int,int)" (?Inflate@nsRect@@QAEXHH@Z)

nsSpatialNavigationService.obj : error LNK2001: unresolved external symbol
"public: void __thiscall nsRect::Inflate(int,int)" (?Inflate@nsRect@@QAEXHH@Z)

nsSpatialNavigation.obj : error LNK2019: unresolved external symbol "public:
void __thiscall nsRect::Deflate(int,int)" (?Deflate@nsRect@@QAEXHH@Z) referenced
in function "public: void __thiscall nsRect::Deflate(struct nsSize const &)"
(?Deflate@nsRect@@QAEXABUnsSize@@@Z)

nsSpatialNavigationUtils.obj : error LNK2001: unresolved external symbol
"public: void __thiscall nsRect::Deflate(int,int)" (?Deflate@nsRect@@QAEXHH@Z)

nsSpatialNavigationService.obj : error LNK2001: unresolved external symbol
"public: void __thiscall nsRect::Deflate(int,int)" (?Deflate@nsRect@@QAEXHH@Z)

nsSpatialNavigation.obj : error LNK2019: unresolved external symbol "public: int
__thiscall nsFont::Equals(struct nsFont const &)const "
(?Equals@nsFont@@QBEHABU1@@Z) referenced in function "public: int __thiscall
nsFont::operator==(struct nsFont const &)const " (??8nsFont@@QBEHABU0@@Z)

nsSpatialNavigationUtils.obj : error LNK2001: unresolved external symbol
"public: int __thiscall nsFont::Equals(struct nsFont const &)const "
(?Equals@nsFont@@QBEHABU1@@Z)

nsSpatialNavigationService.obj : error LNK2001: unresolved external symbol
"public: int __thiscall nsFont::Equals(struct nsFont const &)const "
(?Equals@nsFont@@QBEHABU1@@Z)

nsSpatialNavigationUtils.obj : error LNK2019: unresolved external symbol
"public: int __thiscall nsRect::Intersects(struct nsRect const &)const "
(?Intersects@nsRect@@QBEHABU1@@Z) referenced in function "__int64 __cdecl
spatialDistance(int,struct nsRect &,struct nsRect &)"
(?spatialDistance@@YA_JHAAUnsRect@@0@Z)

snav.dll : fatal error LNK1120: 5 unresolved externals
Checking in Makefile.in;
/cvsroot/mozilla/extensions/spatialnavigation/src/Makefile.in,v  <--  Makefile.in
new revision: 1.10; previous revision: 1.9
done

The link problem should be fix.
The link error is indeed fixed now. Thanks Doug.
If the patch has been checked-in, can this bug be closed RESO FIXED or is there some other step left to complete?
Summary: Turn on spatial navigation in FireFox → Turn on spatial navigation in Firefox
snav is not enabled in firefox, so, leave the bug open.
Mini-spam to bring this enhancement back in the game. 

Spatial navigation would be a great addition to the firefox product and an easy feature to add in the forthcoming battle vs IE7 :)
The extension doesn't work with 1.5.

This feature is great for people with RSI.
see www.meer.net/~dougt/snav
The plugin I found there couldn't be installed in FF 1.5.0.4.

It said it was only compatible with 1.5. 
QA Contact: benjamin → build.config
Assignee: bugs → nobody
per comments 0-2, requesting blocking-firefox3.  The company I work at is interested in this.
Flags: blocking-firefox3?
wasn't timeless working on something with this?
This isn't going to be a release blocker, in any case.

I realize its good for a11y, but I'm not sure whether it makes sense to ship in core vs. promote via AMO.  If this is something people want in Fx3, it should be proposed via the normal PRD process for features (file a change req via http://wiki.mozilla.org/Firefox3/Firefox_Requirements/Change_Requests) and it can be discussed at the fx3 meeting.
Severity: normal → enhancement
Flags: blocking-firefox3? → blocking-firefox3-
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: