Open Bug 248380 Opened 20 years ago Updated 2 years ago

No sound on clicking links

Categories

(Core :: Widget: Win32, enhancement, P5)

x86
Windows XP
enhancement

Tracking

()

People

(Reporter: aam, Unassigned)

References

(Blocks 2 open bugs)

Details

(Whiteboard: Eqivalent Seamonkey bug is 98674 [tpi:+])

Attachments

(1 file, 5 obsolete files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040614 Firefox/0.9
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040614 Firefox/0.9

In IE one gets a sound whan clicking on a link, which is useful so that one
knows something is happening. This doesn't happen in Firefox.

Reproducible: Always
Steps to Reproduce:
1.
2.
3.
I think this is the Firefox version of Mozilla suite's Bug 98676
Assignee: firefox → bugs
Component: General → OS Integration
QA Contact: firefox.general → firefox.os-integration
I believe that the correlating Browser bug is bug 83056. Not sure if it is a
valid to dupe against it. I checked 83056 for any previous Firefox dupes and I
did not see any.
The equivalent Seamonkey bug (for Windows) is bug 98674.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: No csound on clicking links → No sound on clicking links
Whiteboard: Eqivalent Seamonkey bug is 98674
What's the status of this bug?

Firefox should use Start Navigation (and possibly Stop Navigation) for this
sound, or add its own sound to Control Panel.

I opened bug 265037 about sounds in Firefox, but obviously the click link part
of that bug is a dupe of this.
Blocks: 265037
It looks like this bug has not been resolved, yet.  My vote is to add Firefox
sounds to the control panel, like MS IE has.  Default sounds should be added
during installation.
I often am looking at the keyboard, mouse or my mistress as I click and I expect
a sound to confirm my navigations.  I designed my home-entertainment computer
system as a sound system first.  It has the best 5.1 surround sound card and can
speak on my 6 speakers at any time, regardless of what source I am listening to.
 I exploit all the sound capabilities of my programs.  I am disappointed in
programs such as this that cannot give me audio feedback.


I completely agree with adding it to control panel.  Trust me, from a marketing
perspective this feature is critical although from a programming prespective it
may not seem that big of a deal.  

People love that clicking sound because it does let you know something happened.
 I'll admit it is one of the reasons I personally still use IE along with the
unfriendly website syndrome.  

Thanks,
Assignee: bugs → nobody
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
reopening this. because bug 265037 has several sounds issues, but I'll work only for the navigation sounds soon.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Version: unspecified → Trunk
Assignee: nobody → masayuki
Status: REOPENED → ASSIGNED
Not part of shell integration. Moving to widget though that might be wrong as well
Assignee: masayuki → nobody
Component: Shell Integration → Widget: Win32
Product: Firefox → Core
QA Contact: shell.integration → win32
Attached patch Patch v0.1 (work in progress) (obsolete) — Splinter Review
rough sketch.
Assignee: nobody → masayuki
Attached patch Patch v0.2 (work in progress) (obsolete) — Splinter Review
finished the XP level works.

The differences from IE8:
* The navigation sounds are played at reload by the user.
* The navigation start sound is played at application starting.
* The navigation start sound is not played when the clicked links are sent to the external applications.
* The navigation end sound is played when the all contents are loaded.

The navigation sounds are not *system* sounds. They are just application settings of the Explorer (both the shell/filer of Windows and Internet Explorer). So, we need to have the settings ourselves. However, we cannot use the control panel of Windows because that refers the name of exe file. THis means one application has only one settings per users. Therefore, it's not useful for the users who install two or more Firefox or SeaMonkey in the system. And also it's not useful for XULRunner too. So, we should have the settings in our prefs.
Attachment #388125 - Attachment is obsolete: true
There should be a pref to enable/disable this as well.
Attached patch Patch v0.3 (work in progress) (obsolete) — Splinter Review
This patch's default setting is silent.

The users can choose the sound files by 2 ways.
1. ui.sound.event.refer_explorer_settings
  If this is true, nsSound uses the explorer's settings. The default setting is false.

2. ui.sound.event.file.*
  If 1 is false, users can set the sound file path directly.

I think that the first setting can be changed by migrater for IE.
Attachment #388205 - Attachment is obsolete: true
Attached patch Patch v0.4 (work in progress) (obsolete) — Splinter Review
adding "enablenavigationsound" attribute to the browser element. by this, we can improve the compatibility of addons.
Attachment #388238 - Attachment is obsolete: true
Attached patch Patch v0.5 (obsolete) — Splinter Review
this could be the final.
Attachment #388267 - Attachment is obsolete: true
If a server that has images is down, Firefox waits the server for a while, and then sound is played when timeout occurs.
I feel incompatibility for that in comparison with IE. (Though I use only IE6, and not knowing about IE8)

Can the sound be played on DOMContentLoaded event?
Attached patch Patch v0.6Splinter Review
good point! how about this?
Attachment #388414 - Attachment is obsolete: true
(In reply to comment #19)
> good point! how about this?

Great!

But I found a difference with IE.
If both navigation start sound and end sound exist,
and if navigation end occurs when navigation start sound is being played (i.e. immediately after navigation start),
Fx: navigation start sound is stopped, and navigation end sound is played.
IE: navigation start sound continues to be played, and navigation end sound is not played.

Should we simulate this?
I think that it should not be a problem. IE may use SND_NOSTOP for PlaySound. But we don't use it now. We should keep the compatibility with our old products excepting that has some problems.
Comment on attachment 388677 [details] [diff] [review]
Patch v0.6

this patch has two parts:

1. browser and toolkit part:

The browser element should play the sounds when the page loading is started and the DOM tree is loaded. For controlling to play or not play the sounds in the browser element, it should have new attribute "enablenavigationsound". If it is true, the sounds should be played if the system settings are set to so. Otherwise, it should not play them. This new attribute helps for the compatibility with addons. (e.g., DOM Inspector)

However, browser element should not play the sounds when it is hidden (e.g., in background tab). But by this limitation, middle clicking on the link doesn't play the start navigation sound. Because the browser element is hidden at that time. For this issue, tabbrowser component needs to play the sound at that time.

Note that the start navigation sound and the end navigation sound are *not* system sounds on Windows. They are just Explorer's settings. So, we should not refer such another application settings in default settings. But this bug can give a different feeling for the users who are switched from IE. Therefore, I think that we need a pref "ui.sound.event.refer_explorer_settings" and it should be automatically enabled when IE settings are imported by the migrator.

Asaf, would you review this part?

2. Adding new sound events for nsISound.

The start navigation sound and the end navigation sound are not system sound on Windows as I said above.

Therefore, we should not always refer the system settings because they are just another application settings.

I think if we can, we should add our these sound settings to the control panel. However, the application sound events refers the name of exe file. This means users cannot change the sound settings per application. So, this is bad for XULRunner. E.g., an user may want to play the navigation sound in one XUL application, but the user may not want to play them on another XUL application.

I think that we should have the sound settings in our prefs which save the sound file paths.

And also for switching from IE users, we should have "ui.sound.event.refer_explorer_settings" for referring the Explorer/IE settings. This helps the users who are switched from IE.

Roc, would you review this part?
Attachment #388677 - Flags: superreview?(roc)
Attachment #388677 - Flags: review?(roc)
Attachment #388677 - Flags: review?(mano)
Comment on attachment 388677 [details] [diff] [review]
Patch v0.6

Oops, Ere should also review the nsSound part. Ere, please check the previous my comment.
Attachment #388677 - Flags: review?(emaijala)
I think we should just use IE's sounds if we're going to enable them at all.

CCing Beltzner to see if this is a feature that Firefox actually wants.
(In reply to comment #25)
> I think we should just use IE's sounds if we're going to enable them at all.

I don't think so because Explorer and IE share the sound settings. Some (many?) Fx users want to keep the Explorer sound settings, but they may not want to play the sounds on Fx (and another gecko based products).

The IE users may think that "the sound settings are shared" isn't problem. But some gecko based product users might not think so.

The sounds setting is just for another application (Explorer). So, I think that we should not use the settings on the rules of Windows (PlaySound API cannot play the other application's event sounds directly, therefore, I get their settings from registry).

I recommend that gecko should have a pref which can kill the link for the IE sound settings. However, I'm not sure whether the default value of it should be false or not.
The real questions here are UI questions: when should we play IE's sounds by default, and how should users be able to control it? Let's get some answers to those questions before we worry about how to implement it.
The start navigation sound is played when the page loading is started. In other words, the sound is played when a link is clicked (but excepting that the link target is in same page (i.e., <a href="#foo">) and the link href is "javascript:..."). The start navigation sound is enabled on the default system settings on Win2k, XP and Vista, probably.

The end navigation sound is played when the page's DOM tree creation is finished. This is not played in default settings on all Windows.

If the users want to change the sound settings, they can do it in the sound settings of the control panel. On Vista, first, show the "Sound" dialog of the control panel and show the "Sound" tab in it. Then, there are two ways for changing the sound settings. One is to change the sound theme by the dropdown list. The sound themes are presets of the each sound events. Other is, to choose an event from the "program event" tree. It have some parent nodes: "Windows" and "Explorer" and something. Each nodes have each event nodes. Users can select an event from the nodes, and they can select a sound for it. The events of "Windows" is system sounds. Others are local settings for the each applications. The navigation sounds are children of the "Explorer" node. (PlaySound API can play the sounds under "Windows" node and under the process's exe file name node (i.e., explorer.exe -> "Explorer") via the aliases of the events).

# Note that I'm using Japanese Windows, so, the each UI's captions may be wrong on the actual English Windows.

So, if Fx users need to disable the sounds, the UI should be in the pref dialog I think.
Flags: wanted1.9.2?
Attachment #388677 - Flags: review?(emaijala) → review+
Comment on attachment 388677 [details] [diff] [review]
Patch v0.6

+  const DWORD flags = SND_NODEFAULT | SND_ALIAS | SND_ASYNC;
+  nsCOMPtr<nsIRunnable> player = new nsSoundPlayer(this, sound, flags);

Why the |flags| constant? Other than that nsSound looks ok to me. 

Let me add that the Windows Control Panel sound settings are quite obscure and difficult to change unless you know your way. Having the relevant settings in application's own preferences makes sense from usability standpoint. 

Personally I don't like the start navigation sound at all and disable it whenever possible. I'd therefore suggest to default to sounds being off, which would also be in line with past behavior.
Thank you, but I found the patch makes damage to the tp tests. So, I need some works for it.
Attachment #388677 - Flags: superreview?(roc)
Attachment #388677 - Flags: review?(roc)
Attachment #388677 - Flags: review?(mano)
resetting the flag for 1.9.2, there are some performance issues and other issues (mainly relation between IE internal settings).
Flags: wanted1.9.2?
No longer blocks: 520417
Depends on: 520417
Feel free to take this. I don't have much time to work on this.
Assignee: masayuki → nobody
Status: ASSIGNED → NEW
Priority: -- → P5
Whiteboard: Eqivalent Seamonkey bug is 98674 → Eqivalent Seamonkey bug is 98674 [tpi:+]

Masayuki, I can't seem to find Windows sounds related to clicking links anymore in Windows 11, such as "Start Navigation". Do you know if those went away? Also, is bug 98674 a duplicate of this bug here, or vice-versa rather?

Flags: needinfo?(masayuki)

At least on Win10, there is a "navigation start" setting in "Explorer" group.

I'd have wanted to fix this bug for new users coming from Internet Explorer, however, now Chrome is the alternative one. Chrome does not play the event sound, and requesting to play sound at clicking a link may cause worse response. So I think that we should not fix this at least in the default settings anymore.

Flags: needinfo?(masayuki)

Oh you're right, they exist under the File Explorer group. Since this setting still exists I'm not going to close this bug as wontfix, but will adjust the severity since we don't expect to turn this on by default. Thank you for your input!

Severity: normal → S4
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: