Closed
Bug 274542
Opened 20 years ago
Closed 20 years ago
Official Firefox installer contains evil dead AccessibleMarshal.dll
Categories
(Firefox :: Installer, defect)
Tracking
()
VERIFIED
FIXED
People
(Reporter: aaronlev, Assigned: chase)
References
Details
(Keywords: access)
Attachments
(4 files, 2 obsolete files)
2.50 KB,
text/plain
|
Details | |
3.53 KB,
text/plain
|
Details | |
29.59 KB,
application/octet-stream
|
Details | |
800 bytes,
patch
|
aaronlev
:
review+
benjamin
:
superreview+
|
Details | Diff | Splinter Review |
The AccessibleMarshal.dll's job is to let external Windows apps use some COM API extensions such as ISimpleDOMNode and ISimpleDOMText, which allow screen readers to get DOM info. The good version of this dll comes with Seamonkey installers, in official Firefox zip files, and installers that I build on my system. I use 7zip and uxp. Good AccessibleMarshal.dll: 8704 bytes Evil AccessibleMarshal.dll: 30835 bytes and marshalling is broken. Some debugging ideas: * debug lines in the official installer scripts to dump the filesize of AccessibleMarshal.dll after each step to determine what's bloating/hosing it. * temporarily turn off MOZ_INSTALLER_USE_7ZIP to see if 7zip or uxp is doing it * temporarily turn off rebasing/stripping to see if they're doing it
Reporter | ||
Comment 1•20 years ago
|
||
Chase, do you have to look at this to see what build step is creating the dead bloated version of AccessibleMarshal.dll?
Reporter | ||
Comment 2•20 years ago
|
||
*** Bug 273896 has been marked as a duplicate of this bug. ***
Reporter | ||
Updated•20 years ago
|
Assignee: bugs → cmp
Updated•20 years ago
|
Flags: blocking-aviary1.1?
Assignee | ||
Comment 3•20 years ago
|
||
Keep AccessibleMarshal.dll from being rebased and output what files will be rebased in the process.
Attachment #171696 -
Flags: superreview?(bsmedberg)
Attachment #171696 -
Flags: review?(aaronleventhal)
Assignee | ||
Updated•20 years ago
|
Status: NEW → ASSIGNED
Reporter | ||
Comment 4•20 years ago
|
||
Comment on attachment 171696 [details] [diff] [review] Do not rebase AccessibleMarshal.dll, output rebase list I'd put a comment in there something like: # Remove AccessibleMarshal from rebase list, because it is a COM dll. Rebasing would break it.
Attachment #171696 -
Flags: review?(aaronleventhal) → review+
Comment 5•20 years ago
|
||
Why is rebasing screwing up AccessibleMarshal? There is no reason why COM DLLs cannot be rebased in general.
Reporter | ||
Comment 6•20 years ago
|
||
(In reply to comment #5) > Why is rebasing screwing up AccessibleMarshal? There is no reason why COM DLLs > cannot be rebased in general. Doesn't the rebasing act on the dll's as a group? I don't know much about rebasing, but I would think that the XPCOM and COM dll's should be treated as separate groups.
Reporter | ||
Comment 7•20 years ago
|
||
Hmm, a strange thing is that when I enable rebasing and build an installer on my machine, there is no problem. But, it would be nice even to have a temporary fix to this problem as it is preventing me from working with screen reader developers on DOM support.
Comment 8•20 years ago
|
||
cmp, I rather don't like this patch as a long-term solution, but I think that we perhaps should apply it to the build machine as a temporary fix. Can you tell me what "rebase" you're using on the build machine? We might want to try a newer version to see if it stops corruption. It is also possible that there is a non-MSVC "rebase" command in the path; google says that there is a bogus "rebase" that comes with cygwin apache. http://www.cygwin.com/ml/cygwin/2003-04/msg00747.html
Reporter | ||
Comment 9•20 years ago
|
||
Chase, bsmedberg also mentioned that rebase should never change the size of the target dll. It's only modifying preset address ranges.
Assignee | ||
Comment 10•20 years ago
|
||
Running 'dumpbin' on AccessibleMarshal.dll from beast shows: Summary 1000 .data 5000 .orpc 2000 .rdata 1000 .reloc 1000 .rsrc 1000 .text 'which rebase' on beast is: /cygdrive/c/Program Files/Microsoft Visual Studio/VC98/bin/rebase
Assignee | ||
Comment 11•20 years ago
|
||
In your report you mention: The good version of this dll comes with Seamonkey installers, in official Firefox zip files, and installers that I build on my system. I use 7zip and uxp. When was the last time you tested AccessibleMarshal.dll in an official Firefox zip file? I've looked closely at sizes and MD5 sums from my latest build and have seen some interesting results. The version in mozilla/accessible/public/msaa/: Size = 30836 bytes MD5 = 63e8d0d804b1424c62d42964979d606f The version in mozilla/dist/bin/: Size = 30836 MD5 = 805ac727251305514e9390e0dd21e1dc The version in the zip file: Size = 30836 bytes MD5 = 805ac727251305514e9390e0dd21e1dc The version in browser.xpi: Size = 30836 bytes MD5 = 805ac727251305514e9390e0dd21e1dc This suggests that the version in the zip file is as broken as the version in the installer. Can you help me confirm this? The files I'm testing can be found at: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2005-01-19-16-trunk/
Reporter | ||
Comment 12•20 years ago
|
||
Yes, the zip version is broken too. I was certain when I tested last month that the zip version of the AccessibleMarshal.dll was okay.
Assignee | ||
Comment 13•20 years ago
|
||
Aaron, Could you try out the zip build at: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2005-01-19-17-trunk/ I've replaced the normal AccessibleMarshal.dll with a "virgin" copy. I'd be interested to know if this version (which is taken directly from beast's accessible/public/msaa/ directory) produces positive results for you.
Reporter | ||
Comment 14•20 years ago
|
||
(In reply to comment #13) > I'd be interested to know if this version (which is taken directly from beast's > accessible/public/msaa/ directory) produces positive results for you. I've actually done that test already. In fact, using the "virgin" dll does produce positive results. What does that tell us? That whatever in the install process is bloating the dll is in fact screwing it up. What's doing that?
Reporter | ||
Comment 15•20 years ago
|
||
Comment on attachment 171696 [details] [diff] [review] Do not rebase AccessibleMarshal.dll, output rebase list The AccessibleMarshal.dll from beast's accessible/public/msaa directory is also broken, so it's not rebasing or anything in the installer build process. The dll is broken as soon as it's made.
Attachment #171696 -
Attachment is obsolete: true
Attachment #171696 -
Flags: superreview?(bsmedberg)
Attachment #171696 -
Flags: review+
Assignee | ||
Comment 16•20 years ago
|
||
Aaron reports that a version of AccessibleMarshal.dll built from beast with MOZ_DEBUG_SYMBOLS undefined (off) also does not work.
Reporter | ||
Comment 17•20 years ago
|
||
I'm a little embarrassed, but I think I've been giving wrong info. It doesn't look like any of the AccessibleMarshal.dll's produced by mozilla.org have ever worked. I was fooled because of the way regsvr32 works. All the official builds I used were actually using the AccessibleMarshal.dll I register when I build my own.
Reporter | ||
Comment 18•20 years ago
|
||
Reporter | ||
Comment 19•20 years ago
|
||
Assignee | ||
Comment 20•20 years ago
|
||
Changing the summary from "Official Firefox installer contains evil bloated dead AccessibleMarshal.dll" to "Official Firefox installer contains evil dead AccessibleMarshal.dll" This helps to reflect that we aren't certain that bloating of AccessibleMarshal.dll factors into this particular bug.
Summary: Official Firefox installer contains evil bloated dead AccessibleMarshal.dll → Official Firefox installer contains evil dead AccessibleMarshal.dll
Assignee | ||
Comment 21•20 years ago
|
||
Comment on attachment 171947 [details]
dumpbin /symbols for the good dll
Noting differences in this output compared to the output of dumpbin on the bad
dll, the difference in MSVCRT.DLL and MSVCR71.DLL should be due to the
difference in compilers.
beast uses vc6 and the machine from which the good dll is made uses vc71.
Here's the output of 'cl' on beast:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
Reporter | ||
Comment 22•20 years ago
|
||
Reporter | ||
Comment 23•20 years ago
|
||
Attachment #171950 -
Attachment is obsolete: true
Reporter | ||
Comment 24•20 years ago
|
||
Here's a difference: Good: /cygdrive/c/moz/mozilla/build/cygwin-wrapper midl /no_robust /cygdrive/c/moz/mozilla/accessible/public/msaa/ISimpleDOMDocument.idl Microsoft (R) 32b/64b MIDL Compiler Version 6.00.031 Bad: /cygdrive/c/builds/tinderbox/Fx-Trunk/WINNT_5.0_Clobber/mozilla/build/cygwin-wrapper midl /cygdrive/c/builds/tinderbox/Fx-Trunk/WINNT_5.0_Clobber/mozilla/accessible/public/msaa/ISimpleDOMNode.idl Microsoft (R) MIDL Compiler Version 5.01.0164 So, the official builds use an older version of midl. Because of this, configure decides not to use /no_robust http://lxr.mozilla.org/seamonkey/source/configure#2851
Assignee | ||
Comment 25•20 years ago
|
||
Bug 208461 deals with a change that occurred in midl semantics in later versions of VC. That bug includes some history on patches made to support midl's "/no_robust" argument that appeared in versions of midl beginning with 6.0.359.
Assignee | ||
Comment 26•20 years ago
|
||
Per suggestion from Aaron I set MIDL_FLAGS to "/Oicf". The resulting build can be found at: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2005-01-20-22-trunk/ The zip distribution has an AccessibleMarshal.dll that is 8308 bytes. Let us know if this file works where the others didn't.
Reporter | ||
Comment 27•20 years ago
|
||
(In reply to comment #26) > Per suggestion from Aaron I set MIDL_FLAGS to "/Oicf". The resulting build can > be found at: ... This one works both for me and Sylvain, who is CC'd in this bug. Perhaps we should be using /Oicf across the board. It makes the resulting dll smaller, at least in this case. Not to mention the marshalling now works.
Reporter | ||
Comment 28•20 years ago
|
||
MSDN on /Oicf: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/midl/midl/_oi.asp "Oif or Oicf Specifies the codeless proxy method of marshaling that includes all the features provided by /Oi and /Oic but uses a new interpreter (fast format strings) that provides better performance than /Oi or /Oic." "Starting with MIDL version 6.0.359, the MIDL compiler generates /Oicf /robust stubs by default. Some language features are not supported in some modes. In this case, the compiler automatically switches to the appropriate mode and issues a warning." "/Oic is supported on Windows NT 3.51 or later and Windows 95 or later. /Oif is supported on Windows NT 4.0" That's enough compatibility for me.
Assignee | ||
Comment 29•20 years ago
|
||
(In reply to comment #27) > Perhaps we should be using /Oicf across the board. It makes the resulting dll > smaller, at least in this case. Not to mention the marshalling now works. The safest fix for this bug is to change just the midl invocations within public/accessible/. I'll come up with a patch for that and attach it here.
Assignee | ||
Comment 30•20 years ago
|
||
Attachment #172038 -
Flags: superreview?(bsmedberg)
Attachment #172038 -
Flags: review?(aaronleventhal)
Reporter | ||
Comment 31•20 years ago
|
||
Comment on attachment 172038 [details] [diff] [review] Add /Oicf to accessible/public/msaa's midl invocations I still think it's better to use /Oicf throughout the code, after reading what msdn says. But okay with me, as long as AccessibleMarshal.dll works :)
Attachment #172038 -
Flags: review?(aaronleventhal) → review+
Comment 32•20 years ago
|
||
Comment on attachment 172038 [details] [diff] [review] Add /Oicf to accessible/public/msaa's midl invocations We should talk with adamlock about changing to /Oicf globally.
Attachment #172038 -
Flags: superreview?(bsmedberg) → superreview+
Assignee | ||
Comment 33•20 years ago
|
||
Comment on attachment 172038 [details] [diff] [review] Add /Oicf to accessible/public/msaa's midl invocations Checking in Makefile.in; /cvsroot/mozilla/accessible/public/msaa/Makefile.in,v <-- Makefile.in new revision: 1.10; previous revision: 1.9 done
Assignee | ||
Updated•20 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Comment 34•20 years ago
|
||
aaronl: is enough of accessibility available on nt3.51 for me to worry about this change? my guess is it isn't, but i don't have the time to pull our my MSAA disks...
Comment 35•20 years ago
|
||
I don't think W95 supports accessibility out of the box either.
Updated•20 years ago
|
Flags: blocking-aviary1.1?
Updated•18 years ago
|
Status: RESOLVED → VERIFIED
QA Contact: bugzilla → installer
Comment 36•5 years ago
|
||
Keywords: sec508
You need to log in
before you can comment on or make changes to this bug.
Description
•