Closed Bug 249593 Opened 20 years ago Closed 20 years ago

[WinNT] Firefox won't start because of missing Function "CopyStgMedium" in urlmon.dll (or urlmon.dll doesn't exist at all)

Categories

(Firefox :: General, defect, P3)

x86
Windows NT
defect

Tracking

()

RESOLVED FIXED
Firefox1.0beta

People

(Reporter: g.s, Assigned: bernard.alleysson)

References

Details

(4 keywords, Whiteboard: Thunderbird version of bug: bug 228034)

Attachments

(1 file)

User-Agent:       Mozilla/4.78 [en]C-CCK-MCD   (Win95; U)
Build Identifier: Can't say, since it doesn't start, but Installer contains the string "0.9"

I downloaded FirefoxSetup-0.9.exe and installed it on a Windows 95 (4.00.950) 
without Internet Explorer. This system has URLMON.DLL version 4.70.1215. When I 
try to start Firefox, windows tells me that "export" CopyStgMedium is missing in 
URLMON.DLL.
Firefox 0.8 is working well on the same system.

Reproducible: Always
Steps to Reproduce:
1. Install Firefox
2. Run Firefox


Actual Results:  
Firefox didn't start.

Expected Results:  
I expected Firefox 0.9 to run with the same DLL that 0.8 runs with.
this is a regression from:

1.86.8.1 <scott@scott-macgregor.org> 2004-05-16 17:57
Port Thunderbird 0.6 changes to the 1.0 branch

http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&whitespace_mode=show&root=/cvsroot&subdir=mozilla/widget/src/windows&command=DIFF_FRAMESET&file=nsClipboard.cpp&rev2=1.86.8.1&rev1=1.86

I would suggest that windows 95 follow the path taken by #ifdef _MINGW32__, at
least in this file
Assignee: firefox → win32
Component: General → GFX: Win32
Keywords: regression
Product: Firefox → Browser
QA Contact: firefox.general → ian
Version: unspecified → Trunk
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: blocking-aviary1.0?
sorry, the faulty code is only on the aviary branch, so it is a firefox bug,
by "follow the path taken by #ifdef _MINGW32__" I mean doing some
LoadLibrary/GetProcAddress looking for CopyStgMedium so the code would work
either when CopyStgMedium is not present or urlmon.dll is not present (there are
other bugs about that on NT4 for instance)
Component: GFX: Win32 → OS Integration
Product: Browser → Firefox
Version: Trunk → unspecified
Assignee: win32 → bugs
QA Contact: ian → firefox.os-integration
We don't support Win95, so this will probably get invalidated.
(In reply to comment #3)
> We don't support Win95, so this will probably get invalidated.
You're right but Firerox system requirements are preliminary at the moment...
Mozilla does support Windows 95 though, and the source file nsClipboard.cpp is
shared between Mozilla & Firefox so I guess that there will be some problem when
changes are merged to the trunk (is it is the plan)


*** Bug 248456 has been marked as a duplicate of this bug. ***
*** Bug 249657 has been marked as a duplicate of this bug. ***
*** Bug 250020 has been marked as a duplicate of this bug. ***
We don't support Windows 95, but we have the same problem in Windows NT, and we
do support that.
Flags: blocking-aviary1.0RC1+
Flags: blocking-aviary1.0?
Flags: blocking-aviary1.0+
OS: Windows 95 → Windows NT
Assignee: bugs → firefox
Component: OS Integration → General
QA Contact: firefox.os-integration → firefox.general
Summary: Firefox won't start because of missing Function "CopyStgMedium" in URLMON.DLL → [WinNT] Firefox won't start because of missing Function "CopyStgMedium" in URLMON.DLL
Steps to repro:

1. Install Windows NT 4 (mine came with SP1 and IE2 preinstalled).
2. Download / Install SP6a (difficult when IE2 is all you have).
3. Download / Install Firefox 0.9.1 (difficult to download the setup file, the
mozilla.org web site didn't work in IE2 for downloads, so I had to browse to
ftp://ftp.mozilla.org/ and get there using that).
4. Run Firefox.

Expected:
Firefox runs.

Actual:
The dynamic link library urlmon.dll could not be found.

I guess they didn't ship urlmon.dll with Windows NT, and even after applying SP6
its not there...

Next step:
5. Install IE6 SP1.

Results:
urlmon.dll version 6.00.2800.1106 is present.
Firefox 0.9.1 runs fine.
Summary: [WinNT] Firefox won't start because of missing Function "CopyStgMedium" in URLMON.DLL → [WinNT] Firefox won't start because of missing Function "CopyStgMedium" in urlmon.dll (or urlmon.dll doesn't exist at all)
Keywords: relnote
Whiteboard: Thunderbird version of bug: bug 228034.
This new firefox seems to depend on urlmon.dll, an IE dll.  Why?  If you're
going to go to the effort of writing a separate browser, don't use components of
the most buggy browser around, please.

Tested with a brand new install of NT4 workstation.  Patched with sp6a.  Firefox
won't work.  Immediately after upgrading IE2 to IE6, firefox works.  bleargh. 
Don't sabotage firefox, please.
This may have important security implications as well. If we depend on
urlmon.dll, then we may also be vulnerable to the same security vulnerabilities
that Internet Explorer is wrt urlmon.dll.
URL: none
Just as a FYI, don't depend on URLMON being available, if you want to support
win98.  URLMON is part of Internet Explorer, and there are people who use
products from http://www.litepc.com/98lite.html to remove _ALL_ IE components
from windows 98.  I certainly did that way back when I was managing a few
hundred PCs.
The patch causing this regression (together with the regression in 228034) is
the fix for bug 223909.

Is the functionnality really needed in Firefox ? Maybe for rich edit like Midas ?
I hope that fixing this problem would also make Firefox running under Win95 again.
If the aviary team agree that this bug must be fixed, I can make a patch based
on my comments (comment #2). Please advise.
Bernard, that would be most welcome.
OK, taking
I'm pulling a new tree to build thunderbird
It is really the same as bug 228034
Status: NEW → ASSIGNED
Assignee: firefox → balleysson
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
Attached patch patch v1Splinter Review
In fact CopyStgMedium() is not needed, no need to include urlmon.h
It is remplaced with CopyGlobalMemory()
I've tested thunderbird, pasting an image from Firefox | Copy image and from
Windows | Print screen

There are one big memory leak remaining:
nsClipboardImage are not deleted, it could be a big memory leak because it
holds image data.

It looks like it was originally an XPCOM object, then it was changed, now it
should be cleanup up:
* remove NS_IMPL_ISUPPORTS NS_IMETHOD from class nsImageData (it is not XPCOM
object)
* nsImageData should hold HGLOBAL mImageData not STGMEDIUM
* GetImageData does not need to copy memory, just return mImageData (save on
memory)
* Remove ReleaseNativeData and call C++ delete instead in the function encoding
to JPEG
Comment on attachment 153192 [details] [diff] [review]
patch v1

It fixes the bug for me.

Let me know if you agree with the memory leak bug and if you want me to fix
this with the steps I listed, and if yes, here or in another bug
Attachment #153192 - Flags: review?(mscott)
*** Bug 251333 has been marked as a duplicate of this bug. ***
I have some old Point Of Sale systems with NT4 sp6 that I managed to get running
without having to install IE. I tried ff 0.9.1 and had to roll back to 0.8 since
urlmon.dll doesn't exist on these systems.

It is a bit frustrating to have firefox depend on Internet Explorer.

Any patch/fix that removes this dependency is a Good Thing[tm]
I downloaded and tested the latest daily build (June 18) and it seems to work 
fine on Windows NT 4.0, service pack 6a, with really old version of IE (2.0) 
pre-installed. Good work. 
*** Bug 252687 has been marked as a duplicate of this bug. ***
I just have tested a Firefox latest-trunk nightly of 22-Jul-2004: It works again
on Windows 95! The only problem I can see is that it crashes the first time if
starting without available profile-files. But despite of this crash,
profile-files seem to be created so that the next times when starting, Firefox
does not crash. I hope that the next release versions won't have this problem.

Please have a look at it.
*** Bug 253000 has been marked as a duplicate of this bug. ***
Priority: -- → P3
Target Milestone: --- → Firefox1.0beta
(In reply to comment #24)


I have to revoke comment # 24:

I just have tried the latest-trunk-nightly "Firefox-win32.zip                  
         31-Jul-2004 11:18 5.8M". It runs runs without crashing under Windows 95
also if no profile is available.
(In reply to comment #26)

:-(

The problem with no profile and windows 95 still does exist. But I have filled
bug 253895 therefor.
Flags: blocking-aviary1.0PR+ → blocking-aviary1.0PR-
getting closer on mscott's reveiw queue..
Flags: blocking-aviary1.0PR- → blocking-aviary1.0PR+
Comment on attachment 153192 [details] [diff] [review]
patch v1

This patch hasn't regressed the ability to paste clipboard images in
Thunderbird.

We'll need some folks to help test this fix out in tomorrows Windows build for
Win95/Win98.

Thanks for the patch!
Attachment #153192 - Flags: superreview+
Attachment #153192 - Flags: review?(mscott)
Attachment #153192 - Flags: review+
Blocks: 223909
*** Bug 228034 has been marked as a duplicate of this bug. ***
Blocks: mingw
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Whiteboard: Thunderbird version of bug: bug 228034. → Thunderbird version of bug: bug 228034.,fixed-aviary1.0
Keywords: fixed-aviary1.0
Whiteboard: Thunderbird version of bug: bug 228034.,fixed-aviary1.0 → Thunderbird version of bug: bug 228034
This problem seems to be fixed in Firefox latest-trunk nightlies. But
Thunderbird latest-trunk nightlies still do not work under Windows 95 !!! Why is
this currently only fixed for Firedox and not also for Thunderbird !?
(In reply to comment #31)

(Since Thunderbird- Bug 249593 is set as duplicate of this bug, I think
Thunderbird-problems about this topic have also to be put into this bug.)
(In reply to comment #32)

I mean Bug 228034, sorry.
*** Bug 257486 has been marked as a duplicate of this bug. ***
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: