Closed Bug 417302 (robots) Opened 16 years ago Closed 16 years ago

about:robots

Categories

(Firefox :: General, enhancement)

enhancement
Not set
normal

Tracking

()

VERIFIED FIXED
Firefox 3 beta5

People

(Reporter: fligtar, Assigned: Dolske)

References

Details

(Keywords: late-l10n)

Attachments

(7 files, 4 obsolete files)

Attached image animated robot favicon
In the spirit of the Firefox 3 firstrun pages, I would like to permanently commemorate the noble deeds of the robot community in their fight for an open web. The proposed format for this is an about:robots page that will change the favicons for all open and future tabs in the current browser session to the blinking robot favicon.

Courtesy of beltzner, the suggested interaction is:
- User types about:robots
- about:config/netError styled page with a large robot graphic and tagline will appear
- all current favicons will change to the animated robot favicon
- there will be a button, and clicking it will undo the favicon changes and close the tab (note: what if this is the only page open?)

Suggested strings for the tagline:
"We have come to visit you with peace and goodwill!" (beltzner; The Day The Earth Stood Still)
"Robots are taking over!" (jslater; random)
"Welcome Humans! I am ready for you" (pkim)
"0.68 seconds sir. For an android, that is nearly an eternity" (pkim)
"I know you and Frank were planning to disconnect me, and I'm afraid that's something I cannot allow to happen" (pkim)

Suggested strings for the button text:
"Gort! Klaatu barada nikto!" (beltzner; The Day The Earth Stood Still; used to stop the robot Gort from destroying the earth)

Other suggestions for the tagline and button are welcome, but we need to decide on this quickly.

jslater will be working on the graphic in the same style as the existing firstrun ones, and any direction/ideas for it are welcome.

In order to make beta4, we will need to move quickly on this important recognition of robotic generosity.
April 1st is coming early this year :-)

Don't forget "I'm sorry Dave, I can't let you do that" (2001 A Space Odyssey)
Can we steal Ryan's about:icecream code and build on top of that?
Random tagline idea: "There is nothing you need to know about robots."

or "There is nothing you need to know about: robots."
Another good header for the page might be "Frakkin' Toasters" ;)
(In reply to comment #4)
> Another good header for the page might be "Frakkin' Toasters" ;)
> 

Or just make this about:toasters
I like robots better. Just don't document this eastereggs. I love it when people find them and proclaim " I discovered a Firefox Easteregg " it's really funny.

What is the about:icecream code do right now?
* “A robot may not injure humanity, or, through inaction, allow humanity to come to harm. [The Zeroth Law of Robotics]”
* “A robot may not injure a human being, or, through inaction, allow a human being to come to harm. [The First Law of Robotics]”
* “A robot must obey the orders given it by human beings except where such orders would conflict with the First Law. [The Second Law of Robotics]”
* “A robot must protect its own existence as long as such protection does not conflict with the First or Second Law. [The Third Law of Robotics]”
 Isaac Asimov

or 

You will be assimilated.
 The Borg

and +1 for Klaatu barada nikto!
    The robots were created by man.
           They  evolved.
           They rebelled.
       There are  many copies.
        And they have a plan.

You know, change that to "browsers" and it's pretty darn apt...
Hmmm, just read that there's a remake of "The Day The Earth Stood Still" currently in production with probable? 2008 release...starring Keanu Reeves as Klaatu.
"whoa"
So, we need to decide on what to do here really soon. String freeze for beta4 is in 6 days and code freeze is in 11. Before we start figuring out what strings to use - is someone willing to take on writing the code for this? i.e., the about: page that changes all the favicons?
Attached file about:robots extension v.0.1 (obsolete) —
So, here's a hacked-up version of about:icecream that adds a simple about:robots error-like page. The page itself is just HTML+CSS+JS, so changing things around is easy. The text is basically all movie/book quotes. Also, I tried to stuff in cropped version of the Beta2/3 firstrun robot, but my attempt looked crappy.

* We should settle on the strings ASAP, since there's a string freeze a few days away. I'm not sure how well localized versions will capture "movie reference appeal", but as long as they're still a bit silly/goofy it shouldn't really matter.

* I'd really like to include some artwork from the Nobox folks, but it would be nice to keep it looking somewhat like a normal Firefox error page. Just not as plain and boring as it is now. :-)

* This isn't doing the "change all the favicons" thing. I think that would end up being more invasive and time-consuming than it's worth, so I've punted. As an alternative, maybe we could do something like Personas and robot-ize other parts of the theme? In fact, a Robots theme for Personas would be cool. :)
I think this should remain an extension rather than becoming part of Firefox.
(In reply to comment #14)
> I think this should remain an extension rather than becoming part of Firefox.

I agree.
(In reply to comment #15)
> (In reply to comment #14)
> > I think this should remain an extension rather than becoming part of Firefox.
> 
> I agree.
> 

i don't care either way, but jesse, reed -- care to share why extension path seems best?
Haven't seen a reply to pkim's question, but wanted to clarify my opinion. I wouldn't be upset at all if we decided this shouldn't be in Firefox, but I am slightly saddened that folks waited until after dolske worked on a prototype to express their concern - especially since they've been CC'd on the bug for some time.

I asked around internally before filing this bug, expecting someone to disagree with it, and no one did. It's pretty hard to find a relevant non-controversial easter egg. Some people think about:mozilla is disrespectful to the Bible, "Warning: this gun is loaded", etc.

We don't have much time, so we need to decide on this bug's future. Is anyone besides Jesse and Reed extremely opposed to it, and if so, why?
(In reply to comment #14)
> I think this should remain an extension rather than becoming part of Firefox.

Is there a security concern that you have, or is that just a matter of keeping code size down. I'm pretty happy with this little bit of whimsy, and agree with previous comments that it's the type of thing that will make people smile at a low "fun-per-KB" rate.

Dolske, please be sure to add a localization note that mentions the robot references and invites our localizers to have some fun with the page.
Flags: wanted-firefox3+
Keywords: late-l10n
Attached file about:robots extension v.0.2 (obsolete) —
Added "And they have a plan", made button do, err, nothing.

In-product patch coming up.
Attachment #304121 - Attachment is obsolete: true
Attached patch Patch v.1 (obsolete) — Splinter Review
Assignee: nobody → dolske
Attachment #304861 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #304875 - Flags: review?(gavin.sharp)
Comment on attachment 304875 [details] [diff] [review]
Patch v.1

Some drive-by comments that are relatively mundane review comments and should not be intended to subtract from overall whimsy levels.

>+    <link rel="icon" type="image/png" id="favicon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAACGFjVEwAAAASAAAAAJNtBPIAAAAaZmNUTAAAAAAAAAAQAAAAEAAAAAAAAAAALuAD6AABhIDeugAAALhJREFUOI2Nk8sNxCAMRDlGohauXFOMpfTiAlxICqAELltHLqlgctg1InzMRhpFAc%2BLGWTnmoeZYamt78zXdZmaQtQMADlnU0OIAlbmJUBEcO4bRKQY2rUXIPmAGnDuG%2FBx3%2FfvOPVaDUg%2BoAPUf1PArIMCSD5glMEsUGaG%2BkyAFWIBaCsKuA%2BHGCNijLgP133XgOEtaPFMy2vUolEGJoCIzBmoRUR9%2B7rxj16DZaW%2FmgtmxnJ8V3oAnApQwNS5zpcAAAAaZmNUTAAAAAEAAAAQAAAAEAAAAAAAAAAAAB4D6AIB52fclgAAACpmZEFUAAAAAjiNY2AYBVhBc3Pzf2LEcGreqcbwH1kDNjHauWAUjAJyAADymxf9WF%2Bu8QAAABpmY1RMAAAAAwAAABAAAAAQAAAAAAAAAAAAHgPoAgEK8Q9%2FAAAAFmZkQVQAAAAEOI1jYBgFo2AUjAIIAAAEEAAB0xIn4wAAABpmY1RMAAAABQAAABAAAAAQAAAAAAAAAAAAHgPoAgHnO30FAAAAQGZkQVQAAAAGOI1jYBieYKcaw39ixHCC%2F6cwFWMTw2rz%2F1MM%2F6Vu%2Ff%2F%2F%2FxTD%2F51qEIwuRjsXILuEGLFRMApgAADhNCsVfozYcAAAABpmY1RMAAAABwAAABAAAAAQAAAAAAAAAAAAHgPoAgEKra7sAAAAFmZkQVQAAAAIOI1jYBgFo2AUjAIIAAAEEAABM9s3hAAAABpmY1RMAAAACQAAABAAAAAQAAAAAAAAAAAAHgPoAgHn3p%2BwAAAAKmZkQVQAAAAKOI1jYBgFWEFzc%2FN%2FYsRwat6pxvAfWQM2Mdq5YBSMAnIAAPKbF%2F1BhPl6AAAAGmZjVEwAAAALAAAAEAAAABAAAAAAAAAAAAAeA%2BgCAQpITFkAAAAWZmRBVAAAAAw4jWNgGAWjYBSMAggAAAQQAAHaszpmAAAAGmZjVEwAAAANAAAAEAAAABAAAAAAAAAAAAAeA%2BgCAeeCPiMAAABAZmRBVAAAAA44jWNgGJ5gpxrDf2LEcIL%2FpzAVYxPDavP%2FUwz%2FpW79%2F%2F%2F%2FFMP%2FnWoQjC5GOxcgu4QYsVEwCmAAAOE0KxUmBL0KAAAAGmZjVEwAAAAPAAAAEAAAABAAAAAAAAAAAAAeA%2BgCAQoU7coAAAAWZmRBVAAAABA4jWNgGAWjYBSMAggAAAQQAAEpOBELAAAAGmZjVEwAAAARAAAAEAAAABAAAAAAAAAAAAAeA%2BgCAeYVWtoAAAAqZmRBVAAAABI4jWNgGAVYQXNz839ixHBq3qnG8B9ZAzYx2rlgFIwCcgAA8psX%2FWvpAecAAAAaZmNUTAAAABMAAAAQAAAAEAAAAAAAAAAAAB4D6AIBC4OJMwAAABZmZEFUAAAAFDiNY2AYBaNgFIwCCAAABBAAAcBQHOkAAAAaZmNUTAAAABUAAAAQAAAAEAAAAAAAAAAAAB4D6AIB5kn7SQAAAEBmZEFUAAAAFjiNY2AYnmCnGsN%2FYsRwgv%2BnMBVjE8Nq8%2F9TDP%2Blbv3%2F%2F%2F8Uw%2F%2BdahCMLkY7FyC7hBixUTAKYAAA4TQrFc%2BcEoQAAAAaZmNUTAAAABcAAAAQAAAAEAAAAAAAAAAAAB4D6AIBC98ooAAAABZmZEFUAAAAGDiNY2AYBaNgFIwCCAAABBAAASCZDI4AAAAaZmNUTAAAABkAAAAQAAAAEAAAAAAAAAAAAB4D6AIB5qwZ%2FAAAACpmZEFUAAAAGjiNY2AYBVhBc3Pzf2LEcGreqcbwH1kDNjHauWAUjAJyAADymxf9cjJWbAAAABpmY1RMAAAAGwAAABAAAAAQAAAAAAAAAAAAHgPoAgELOsoVAAAAFmZkQVQAAAAcOI1jYBgFo2AUjAIIAAAEEAAByfEBbAAAABpmY1RMAAAAHQAAABAAAAAQAAAAAAAAAAAAHgPoAgHm8LhvAAAAQGZkQVQAAAAeOI1jYBieYKcaw39ixHCC%2F6cwFWMTw2rz%2F1MM%2F6Vu%2Ff%2F%2F%2FxTD%2F51qEIwuRjsXILuEGLFRMApgAADhNCsVlxR3%2FgAAABpmY1RMAAAAHwAAABAAAAAQAAAAAAAAAAAAHgPoAgELZmuGAAAAFmZkQVQAAAAgOI1jYBgFo2AUjAIIAAAEEAABHP5cFQAAABpmY1RMAAAAIQAAABAAAAAQAAAAAAAAAAAAHgPoAgHlgtAOAAAAKmZkQVQAAAAiOI1jYBgFWEFzc%2FN%2FYsRwat6pxvAfWQM2Mdq5YBSMAnIAAPKbF%2F0%2FMvDdAAAAAElFTkSuQmCC"/>

Doesn't matter for string freeze, but we probably want this as an external icon, I would think?  I guess themers aren't likely to mess with it, but when someone like Alex does an icon inventory for Firefox 7, this could fly under the radar.

>+        if (buttonClicked)
>+          button.style.visibility = "hidden";
>+        else
>+          button.label = "Please do not press this button again.";

Should be localized if we're aiming for string freeze (even if we're not sure what to do here yet).

>Index: browser/components/aboutRobots.js
>+  getURIFlags: function(uri) Ci.nsIAboutModule.ALLOW_SCRIPT,
>+
>+  newChannel: function(uri) {
>+    var ios = Cc["@mozilla.org/network/io-service;1"].
>+              getService(Ci.nsIIOService);
>+    var childURI = ios.newURI("chrome://browser/content/aboutRobots.xhtml", null, null);
>+    var channel = ios.newChannelFromURI(childURI);
>+    channel.originalURI = uri;
>+    return channel;
>+  }
>+};

If I'm not mistaken, these will give about:robots chrome privilege.  getURIFlags should probably return ALLOW_SCRIPT | URI_SAFE_FOR_UNTRUSTED_CONTENT, and newChannel will (I think) also need to drop privilege, like it does here:

http://lxr.mozilla.org/seamonkey/source/docshell/base/nsAboutRedirector.cpp#96
Comment on attachment 304875 [details] [diff] [review]
Patch v.1

>Index: browser/components/aboutRobots.js

>+  newChannel: function(uri) {
>+    var ios = Cc["@mozilla.org/network/io-service;1"].
>+              getService(Ci.nsIIOService);
>+    var childURI = ios.newURI("chrome://browser/content/aboutRobots.xhtml", null, null);
>+    var channel = ios.newChannelFromURI(childURI);
>+    channel.originalURI = uri;
>+    return channel;
>+  }

This implementation of newChannel gives the page chrome privileges, which is undesirable from a security point of view. You need some code like at http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/docshell/base/nsAboutRedirector.cpp&rev=1.31#124  to avoid this, I think. r- because of this issue.

>Index: browser/base/content/aboutRobots.xhtml

>+      function robotButton()
>+      {
>+        var button = document.getElementById('errorTryAgain');
>+        if (buttonClicked)
>+          button.style.visibility = "hidden";
>+        else
>+          button.label = "Please do not press this button again.";

Use another entity for this string, and retrieve it from an attribute, to make it localizable?
Attachment #304875 - Flags: review?(gavin.sharp) → review-
(In reply to comment #21)

> >+    <link rel="icon" type="image/png" id="favicon" href="data:image/png; 
> Doesn't matter for string freeze, but we probably want this as an external
> icon, I would think?  I guess themers aren't likely to mess with it, but when
> someone like Alex does an icon inventory for Firefox 7, this could fly under
> the radar.

It's a data: URI in netError.xhtml too (which this is based on). The comments in bug 229737 indicate that favicons in chrome pages don't work. I tried setting the favicon here to an existing icon, and indeed it didn't work.

> >+          button.label = "Please do not press this button again.";
> 
> Should be localized if we're aiming for string freeze (even if we're not sure
> what to do here yet).

Crap. Forgot to change this before I attached the patch.
Attached patch Patch v.2Splinter Review
Patch to fix review comments.
Attachment #304875 - Attachment is obsolete: true
Attachment #304907 - Flags: superreview?(mconnor)
Attachment #304907 - Flags: review?(gavin.sharp)
Since we're up against a string-freeze, this is a patch only for the strings. We can get that in now, and then finish up the code review.
Attachment #304908 - Flags: ui-review+
Attachment #304908 - Flags: review+
Checking in browser/locales/en-US/chrome/browser/aboutRobots.dtd;
  initial revision: 1.1
Comment on attachment 304908 [details] [diff] [review]
[checked in] Strings-only, from patch v.2

This landed without approval. Shame on you, dolske.
Attachment #304908 - Flags: approval1.9?
Alias: robots → about:robots
Alias: about:robots → robots
Comment on attachment 304908 [details] [diff] [review]
[checked in] Strings-only, from patch v.2

a=beltzner for 1.9
Attachment #304908 - Flags: approval1.9? → approval1.9+
(In reply to comment #27)
> (From update of attachment 304908 [details] [diff] [review])
> This landed without approval. Shame on you, dolske.

Eh, he knew it was coming.
Oops, jar manifest apparently needed too so localizers see it. Ok'd with mconnor on IRC (as I did with mconnor and beltzner with the DTD checkin).

Checking in browser/locales/jar.mn;
  new revision: 1.76; previous revision: 1.75
Comment on attachment 304907 [details] [diff] [review]
Patch v.2

There are no tests on this code. Please include tests.
Let me put it this way, Mr. Beltzner. Attachment 304907 [details] [diff] is the most reliable patch ever made. No about:robots patch has ever made a mistake or distorted information. It is, by any practical definition of the words, foolproof and incapable of error.
Target Milestone: Firefox 3 beta4 → Firefox 3 beta5
Note for reviewer: aboutRobots.js is basically doing the same thing as the code in browser/components/feeds/src/nsAboutFeeds.cpp.
Attachment #304907 - Flags: superreview?(mconnor)
Attachment #304907 - Flags: review?(mconnor)
Attachment #304907 - Flags: review?(gavin.sharp)
Attachment #304908 - Attachment description: Strings-only, from patch v.2 → [checked in] Strings-only, from patch v.2
Comment on attachment 304907 [details] [diff] [review]
Patch v.2

We should probably have some sort of automated test against about: pages that are accessible from content to make sure we're not doing something dumb, ever.  This looks good though, rock!
Attachment #304907 - Flags: review?(mconnor)
Attachment #304907 - Flags: review+
Attachment #304907 - Flags: approval1.9+
There's some new artwork coming; will handle that in a followup bug.

Checking in browser/base/jar.mn;
  new revision: 1.121; previous revision: 1.120
Checking in browser/base/content/aboutRobots.xhtml;
  initial revision: 1.1
Checking in browser/components/Makefile.in;
  new revision: 1.62; previous revision: 1.61
Checking in browser/components/aboutRobots.js;
  initial revision: 1.1
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5pre) Gecko/2008030801 Minefield/3.0b5pre ID:2008030801

Is this working for anyone else, or am I typing about:robots into the URL bar incorrectly?
It's not mentioned in nsAboutRedirector.cpp, so it will not work.
<http://mxr.mozilla.org/seamonkey/source/docshell/base/nsAboutRedirector.cpp#66>
(In reply to comment #37)
> It's not mentioned in nsAboutRedirector.cpp, so it will not work.
> <http://mxr.mozilla.org/seamonkey/source/docshell/base/nsAboutRedirector.cpp#66>

That's not strictly necessary (about:blocked, the malware page for Firefox, isn't mentioned there either) but I would expect to see a line like this somewhere, registering the factory:

http://mxr.mozilla.org/mozilla/source/browser/components/safebrowsing/src/nsSafebrowsingApplication.js#59

That's what XPCOMUtils.generateModule() call should be doing though, so I'm not sure from looking what the problem is here.
(In reply to comment #36)

> Is this working for anyone else, or am I typing about:robots into the URL bar
> incorrectly?

*sigh* Yes, the windows/linux packages-static needs updating too, I believe. I'll file a followup bug to fix that.
Attached patch Packaging changes v.1 (obsolete) — Splinter Review
Eh, I'll just attach here instead of filing a new bug.
Attachment #308265 - Flags: review?
Comment on attachment 308265 [details] [diff] [review]
Packaging changes v.1

>Index: browser/installer/unix/packages-static

>+bin/components/aboutrobots.js

about_R_obots.js
Attachment #308265 - Flags: review? → review+
...can't sleep, robots will get me...
Attachment #308265 - Attachment is obsolete: true
Attachment #308266 - Flags: review?
Attachment #308266 - Flags: review?
Checking in browser/installer/unix/packages-static;
  new revision: 1.156; previous revision: 1.155
Checking in browser/installer/windows/packages-static;
  new revision: 1.159; previous revision: 1.158
Why am I strongly reminded of the about:kitchensink that people were so keen to tear out a few years back?

And what happened to the whole focus on blockers thing?  ;)
It would be wonderful to make a connection to the origin of the word 'robot' there. I would very appreciate it, since it is one of a very few words that Czech people through Czech language have given to the world lang language, including English:

http://en.wikipedia.org/wiki/R.U.R._(Rossum's_Universal_Robots)

Furthermore, it could help to create worthwhile knowledge and maybe marketing bonus to both sides. Thank you for consideration.
(In reply to comment #45)
> It would be wonderful to make a connection to the origin of the word 'robot'
> there. I would very appreciate it, since it is one of a very few words that
> Czech people through Czech language have given to the world lang language,
> including English:
> 
> http://en.wikipedia.org/wiki/R.U.R._(Rossum's_Universal_Robots)
> 
> Furthermore, it could help to create worthwhile knowledge and maybe marketing
> bonus to both sides. Thank you for consideration.
> 

+1
"Robots are Your Plastic Pal Who's Fun To Be With" should have an ending period like all the other lines.
Attachment #308317 - Flags: review?(gavin.sharp)
Comment on attachment 308317 [details] [diff] [review]
Add missing period - v1

8-|
Attachment #308317 - Flags: review?(gavin.sharp) → review+
Comment on attachment 308317 [details] [diff] [review]
Add missing period - v1

Actually, I think I like it better without the period. Can you add a comma and semi-colon, though?
Attachment #308317 - Flags: review+ → review-
Attachment #308317 - Flags: review- → review+
Checking in browser/locales/en-US/chrome/browser/aboutRobots.dtd;
/cvsroot/mozilla/browser/locales/en-US/chrome/browser/aboutRobots.dtd,v  <--  aboutRobots.dtd
new revision: 1.2; previous revision: 1.1
done
> Why am I strongly reminded of the about:kitchensink that people were so keen to
tear out a few years back?

Because it's literally identical. I hope there's going to be a hard limit of one additional whimsy about: for every major release. Perhaps even one in total, in addition to about:mozilla.
Yes, limiting net-whimsy levels is essential!

Confirmed working on windows nightlies for me now after checkin in comment 43. 
Attached image Screenshot
Theme Development issue:

I want aboutRobots.xhtml
<html xmlns="http://www.w3.org/1999/xhtml" id="robot">
or
<html xmlns="http://www.w3.org/1999/xhtml" class="robot">

I want to change the icon like this.
Chris: Don't get all knotted up here, about:kitchensink never went into the tree. Close, but never quite made it. IIRC, this is the only treat other than about:mozilla to make it in. We're not cluttering things up here too much. :)






                                                             And they have a plan.
Blocks: 422887
Nice! And the bit with the button "Please do not press this button again" drew a smile. The artwork in bug 422887 does a really good job of tying up with firstrun. And it does set it apart from about:mozilla, which it's hardly a thing you would want to show to anyone to start with. Great easter egg!
Nice to have:

"The answer to life, the universe and everything is.. 42!"
Where's the "More than meets the eye" reference?
I think the about:robots should be converted to a comic about the attack to Gran Paradiso now that there is a story
It seems that the robots.imgtitle entity isn't use anywhere.
Is it ok to have a final "." on robots.dontpress since this string is used for a button's label?

See for example Microsoft's guidelines about punctuation
http://msdn.microsoft.com/en-us/library/bb158706.aspx
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.