Closed Bug 349068 Opened 18 years ago Closed 18 years ago

need to ensure that EULA was shown at least once per installed major version

Categories

(Firefox :: General, defect)

2.0 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Firefox 2

People

(Reporter: beltzner, Assigned: mconnor)

Details

(Keywords: fixed1.8.1)

Attachments

(1 file, 2 obsolete files)

The EULA is currently showed in the installed on Windows and as part of the DMG opening process on Mac. We don't show EULAs for Linux, nor do we show them in cases where Firefox is part of a system image or software bundle.

The goal is to ensure that for each version of Firefox where the EULA has changed, we get at least one indication that *some* user has seen and accepted the EULA. We can't ensure that all various users of a single system have seen it, of course :(

sspitzer is handling the showing of EULAs for the software update case in bug 329729, which may end up being related.

Ideas:

 - installers add a file to the appdir called EULA that holds the version number; on startup, we check to see if that file exists, if it doesn't, we show the EULA and add the file (security implications?)

 - use a pref (this is ugly, though, for migrated profile cases, or when the user wipes their profile and they get the EULA again, ick)
Marking blocking, drivers can yell at me and cbeard for both assuming that this bug was already on file. Probably more my fault than his. :(
Flags: blocking-firefox2+
sidenote: the good news is that we have strings and code to display the EULA; the only tricky part is determining when we do it. :(
(In reply to comment #0)
> The goal is to ensure that for each version of Firefox where the EULA has
> changed, we get at least one indication that *some* user has seen and accepted
> the EULA. We can't ensure that all various users of a single system have seen
> it, of course :(
note: there are several apps that do show a EULA on first run on a per user basis. It isn't that we can't do this... it is more along the lines of we don't want to.
(In reply to comment #3)
> (In reply to comment #0)
> > The goal is to ensure that for each version of Firefox where the EULA has
> > changed, we get at least one indication that *some* user has seen and accepted
> > the EULA. We can't ensure that all various users of a single system have seen
> > it, of course :(
> note: there are several apps that do show a EULA on first run on a per user
> basis. It isn't that we can't do this... it is more along the lines of we don't
> want to.

Yes, exactly.

(In reply to comment #1)
> Marking blocking, drivers can yell at me and cbeard for both assuming that this
> bug was already on file. Probably more my fault than his. :(

My bad. There have been several conversations around the right approach for this, and I never filed the bug.
Writing to the appdir is bad manners (and may cause security warnings in some cases). Per-profile is better than that, but we'd have to figure out what to do with the DMG/installer so that the EULA didn't show up twice.

This EULA thing *so* sucks.
mconnor and I were talking about this on the phone, and I realized that we might be going about this wrong. Instead of checking for the presence of something and showing the EULA when it *isn't* found, why not check and show the EULA when it *is* found?

We'd have to make it a requirement of any distributor who will install an image to add this file, and we'd probably have to put it in the root profiles folder (since the directory name and salts get created on first run, aiui) but it might solve a lot of the thorny issues.

Once the EULA is shown and accepted, we mark the file (or remove it?) and that's the end of that.
Maybe it's a separate bug, but a clear and concise description of what problem(s) we're solving with the EULA -- read: what state would we be in without a EULA, which we're trying to avoid -- might make it easier to align people WRT how much effort we should invest in various EULA-related activities, and how much we care about various edge cases.  (Like me accepting the EULA for my sister when I install Firefox for her, etc.)

This will also help me explain things to extension developers who want to know what they can assume that a user has already agreed to, and when.  Thanks!
(In reply to comment #7)
> We'd have to make it a requirement of any distributor who will install an image
> to add this file, and we'd probably have to put it in the root profiles folder
> (since the directory name and salts get created on first run, aiui) but it
> might solve a lot of the thorny issues.

Yes, this works. Any distributor that MoCo licenses to preload Firefox will require some level of customization to meet technical, legal or marketing requirements. The plan is to use the CCK to encapsulate these modifications, and so it sounds like we could insert a preference value as proposed at that time.
Assignee: nobody → mconnor
The strings we have in place for the similar dialog in updates.dtd will suffice here, the dialog is basically the same, we just need to figure out when to show it (and how to do it per major version).  Pushing off b2 radar since that was the only thing that needs to block b2 here.
Target Milestone: Firefox 2 beta2 → Firefox 2
I have this mostly-implemented, just need to figure out where the EULA will be living, and I can get this patched.
Whiteboard: [need EULA location/format]
Attached file XHTML'ized EULA - take one (obsolete) —
Is this what you wanted? This validates on validator.w3.org as "Valid XHTML 1.0 Strict."
Attachment #237926 - Flags: review?(mconnor)
Comment on attachment 237926 [details]
XHTML'ized EULA - take one

looks good, thanks!
Attachment #237926 - Flags: review?(mconnor) → review+
This is, of course, not hit by default, but can be used for distributions.  This reuses a good chunk of code from the antiphishing EULA, which is working just fine in the prefwindow.
Attachment #237926 - Attachment is obsolete: true
Attachment #238146 - Flags: review?(gavin.sharp)
Whiteboard: [need EULA location/format] → [has patch][needs review gavin]
Comment on attachment 238146 [details] [diff] [review]
implement first-run EULA, disabled by default

>Index: browser/base/content/EULA.js

>+      // enable the OK button when the request completes
>+      const Ci = Components.interfaces, Cr = Components.results;
>+      if ((aStateFlags & Ci.nsIWebProgressListener.STATE_STOP) &&
>+          (aStateFlags & Ci.nsIWebProgressListener.STATE_IS_WINDOW)) {
>+        // check for failure
>+        if (aRequest.status & 0x80000000) {

!Components.isSuccessCode(aRequest.status)

>+  /**
>+   * Make sure we set the pref on acceptance so we 
>+   */

so we... what? :)

>+  /**
>+   * Called when the user changes the agree/disagree radio.
>+   */
>+  onchangeRadio: function ()

nit: onChangeRadio

>\ No newline at end of file

fix that?

>Index: browser/base/content/EULA.xul

>+<dialog id="eulaDialog"
>+        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>+        title="&license.titleText;"
>+        
>+        onload="gEULADialog.init();"
>+        ondialogaccept="gEULADialog.accept()"
>+        ondialogcancel="gEULADialog.cancel()"
>+        buttondisabledaccept="true">

Kill the extra space?
Attachment #238146 - Flags: review?(gavin.sharp) → review+
Attachment #238146 - Attachment is obsolete: true
Attachment #238166 - Flags: approval1.8.1?
Status: NEW → ASSIGNED
Whiteboard: [has patch][needs review gavin] → [has patch][needs approval]
checked in on trunk
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Comment on attachment 238166 [details] [diff] [review]
with gavin's comments

a=schrep for 181drivers
Attachment #238166 - Flags: approval1.8.1? → approval1.8.1+
Whiteboard: [has patch][needs approval] → [checkin needed (1.8 branch)]
fixed on branch, will put docs up later this week for this.
Keywords: fixed1.8.1
Whiteboard: [checkin needed (1.8 branch)]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: