Bug 1444500 - Add an about:library page to Firefox draft
authorUrsula Sarracini <usarracini@mozilla.com>
Tue, 10 Apr 2018 15:11:55 -0400
changeset 779886 522b622992d2398d513ce4757c7ddee5386945f2
parent 779146 30d72755b1749953d438199456f1524ce84ab5e5
push id105903
push userusarracini@mozilla.com
push dateTue, 10 Apr 2018 19:17:20 +0000
bugs1444500
milestone61.0a1
Bug 1444500 - Add an about:library page to Firefox MozReview-Commit-ID: 2hhGhSflnXM
browser/base/content/illustrations/under-construction.svg
browser/base/jar.mn
browser/components/about/AboutRedirector.cpp
browser/components/build/nsModule.cpp
browser/components/library/content/aboutLibrary.xhtml
browser/components/library/jar.mn
browser/components/library/moz.build
browser/components/moz.build
browser/themes/shared/aboutLibrary.css
browser/themes/shared/jar.inc.mn
new file mode 100644
--- /dev/null
+++ b/browser/base/content/illustrations/under-construction.svg
@@ -0,0 +1,52 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" viewBox="0 0 300 300">
+  <title>underconstruction</title>
+  <g>
+    <rect x="-917.367" y="-923.375" width="1746.368" height="2032.375" fill="#f9f9fa"/>
+    <rect x="0.153" y="0.328" width="300" height="300" fill="#f9f9fa"/>
+  </g>
+  <g>
+    <path d="M127.569,137.757H32.254a1,1,0,1,1,0-2h95.315a1,1,0,0,1,0,2Z" fill="#eaeaee"/>
+    <path d="M112,131.216H66.235a.5.5,0,0,1,0-1H112a.5.5,0,1,1,0,1Z" fill="#eaeaee"/>
+    <path d="M153.286,90.512h29s-9.073-20.278,10.189-22.9c17.18-2.339,23.97,15.315,23.97,15.315s2.037-10.185,12.253-8.237c10.074,1.921,17.512,18.124,17.512,18.124h25.25" fill="#fff"/>
+    <path d="M250.483,190.51H160.147a1,1,0,0,1,0-2h90.336a1,1,0,0,1,0,2Z" fill="#eaeaee"/>
+    <path d="M271.842,197.04h-3a.5.5,0,0,1,0-1h3a.5.5,0,0,1,0,1Zm-11,0h-12a.5.5,0,0,1,0-1h12a.5.5,0,0,1,0,1Zm-21,0h-1a.5.5,0,0,1,0-1h1a.5.5,0,0,1,0,1Zm-5,0h-3a.5.5,0,0,1,0-1h3a.5.5,0,0,1,0,1Zm-11,0h-12a.5.5,0,0,1,0-1h12a.5.5,0,0,1,0,1Zm-21,0h-1a.5.5,0,0,1,0-1h1a.5.5,0,0,1,0,1Zm-5,0h-3a.5.5,0,0,1,0-1h3a.5.5,0,0,1,0,1Zm-11,0h-12a.5.5,0,0,1,0-1h12a.5.5,0,0,1,0,1Zm-21,0h-1a.5.5,0,0,1,0-1h1a.5.5,0,0,1,0,1Zm-5,0h-3a.5.5,0,0,1,0-1h3a.5.5,0,0,1,0,1Zm-11,0h-12a.5.5,0,0,1,0-1h12a.5.5,0,0,1,0,1Z" fill="#eaeaee"/>
+    <path d="M271.953,87.855h-8.417a.5.5,0,0,1,0-1h8.417a.5.5,0,0,1,0,1Zm-17.417,0h-1a.5.5,0,0,1,0-1h1a.5.5,0,0,1,0,1Zm-5,0H246.7a.5.5,0,0,1-.445-.273l-.075-.144a.5.5,0,0,1,.8-.583h2.554a.5.5,0,0,1,0,1Zm-67.754-.811h-1a.5.5,0,0,1,0-1h1a.5.5,0,0,1,0,1Zm-5,0h-3a.5.5,0,0,1,0-1h3a.5.5,0,0,1,0,1Zm-11,0h-12a.5.5,0,0,1,0-1h12a.5.5,0,0,1,0,1Zm76.5-6.071a.5.5,0,0,1-.4-.2,29.445,29.445,0,0,0-8.594-7.98.5.5,0,0,1,.488-.873,30.442,30.442,0,0,1,8.9,8.246.5.5,0,0,1-.4.8Zm-61.511-1.657a.5.5,0,0,1-.5-.446,21.6,21.6,0,0,1-.127-2.31,12.735,12.735,0,0,1,3.366-9.271.5.5,0,1,1,.715.7,11.776,11.776,0,0,0-3.081,8.572,20.638,20.638,0,0,0,.122,2.2.5.5,0,0,1-.444.55A.489.489,0,0,1,180.769,79.316Zm34.445-3.263a.5.5,0,0,1-.43-.245,26.836,26.836,0,0,0-7.915-8.6.5.5,0,1,1,.553-.832,27.8,27.8,0,0,1,8.222,8.925.5.5,0,0,1-.43.755Zm3.335-.458a.5.5,0,0,1-.425-.764,11.223,11.223,0,0,1,2-2.414.5.5,0,0,1,.67.742,10.211,10.211,0,0,0-1.815,2.2A.5.5,0,0,1,218.549,75.6Zm5.363-4.241a.5.5,0,0,1-.139-.981,9.579,9.579,0,0,1,1.024-.237.5.5,0,1,1,.174.984,9.034,9.034,0,0,0-.92.214A.477.477,0,0,1,223.912,71.354Zm-33.04-6.833a.5.5,0,0,1-.111-.987c.681-.156,1.4-.286,2.139-.386.3-.041.592-.076.883-.1a.507.507,0,0,1,.546.45.5.5,0,0,1-.45.546c-.277.026-.559.06-.843.1-.709.1-1.4.22-2.053.37A.472.472,0,0,1,190.872,64.521Zm7.944-.405a.562.562,0,0,1-.07,0c-.317-.045-.64-.08-.966-.107a.5.5,0,0,1-.456-.54.51.51,0,0,1,.54-.456c.346.029.686.066,1.021.113a.5.5,0,0,1-.069.995Z" fill="#eaeaee"/>
+    <path d="M272.787,92.835H153.281a1,1,0,0,1,0-2H272.787a1,1,0,0,1,0,2Z" fill="#fff"/>
+    <path d="M38.952,66.668H55.078s-5.046-11.276,5.666-12.734c9.554-1.3,13.329,8.516,13.329,8.516s1.133-5.664,6.815-4.58c5.6,1.068,9.738,10.079,9.738,10.079h14.042" fill="#fff"/>
+    <path d="M51.448,64.69h-12a.5.5,0,0,1,0-1h12a.5.5,0,1,1,0,1Zm53.214-.21h-12a.5.5,0,1,1,0-1h12a.5.5,0,0,1,0,1ZM54.529,60.966a.5.5,0,0,1-.493-.425,12.793,12.793,0,0,1-.149-1.9,10.026,10.026,0,0,1,.072-1.225.49.49,0,0,1,.558-.434.5.5,0,0,1,.434.557,9.015,9.015,0,0,0-.064,1.1,11.984,11.984,0,0,0,.137,1.753.5.5,0,0,1-.419.569A.477.477,0,0,1,54.529,60.966Zm19.646-1.357a.5.5,0,0,1-.447-.276c-.916-1.828-3.579-6.195-8.5-7.259a.5.5,0,1,1,.211-.976c5.348,1.154,8.207,5.831,9.187,7.788a.5.5,0,0,1-.224.671A.493.493,0,0,1,74.175,59.609Zm12.3-.947a.5.5,0,0,1-.333-.127c-.24-.214-.488-.423-.743-.624a.5.5,0,1,1,.62-.785c.27.213.534.436.789.663a.5.5,0,0,1-.333.873ZM82.223,56.1a.493.493,0,0,1-.15-.023,7.039,7.039,0,0,0-.782-.2,6.368,6.368,0,0,0-1.966-.088A.5.5,0,0,1,79.2,54.8a7.382,7.382,0,0,1,2.278.1,8.17,8.17,0,0,1,.894.224.5.5,0,0,1-.149.978ZM56.009,54.358a.5.5,0,0,1-.372-.834,6.664,6.664,0,0,1,.787-.74.5.5,0,1,1,.623.781,5.67,5.67,0,0,0-.666.627A.5.5,0,0,1,56.009,54.358Z" fill="#eaeaee"/>
+    <path d="M105.707,69.021H39.247a1,1,0,0,1,0-2h66.46a1,1,0,0,1,0,2Z" fill="#fff"/>
+    <ellipse cx="155.103" cy="246.936" rx="77.947" ry="6.445" fill="#eaeaee"/>
+    <g>
+      <path d="M222.7,80.317H78.836a10.312,10.312,0,0,0-10.3,10.3V224.644a9.823,9.823,0,0,0,9.95,9.668H223.052a9.823,9.823,0,0,0,9.95-9.668V90.617A10.313,10.313,0,0,0,222.7,80.317Z" fill="#fff"/>
+      <g>
+        <path d="M78.486,230.146a5.82,5.82,0,0,1-5.951-5.668V90.451a6.308,6.308,0,0,1,6.3-6.3H222.7a6.308,6.308,0,0,1,6.3,6.3V224.478a5.82,5.82,0,0,1-5.95,5.668Z" fill="#f9f9fa"/>
+        <path d="M222.7,85.152a5.306,5.306,0,0,1,5.3,5.3V224.478a4.821,4.821,0,0,1-4.95,4.669H78.486a4.821,4.821,0,0,1-4.95-4.669V90.451a5.306,5.306,0,0,1,5.3-5.3H222.7m0-2H78.836a7.308,7.308,0,0,0-7.3,7.3V224.478a6.821,6.821,0,0,0,6.95,6.669H223.052a6.821,6.821,0,0,0,6.95-6.669V90.451a7.308,7.308,0,0,0-7.3-7.3Z" fill="#eaeaee"/>
+      </g>
+      <g>
+        <circle cx="86.597" cy="96.582" r="3.241" fill="#eaeaee"/>
+        <circle cx="97.052" cy="96.582" r="3.241" fill="#eaeaee"/>
+        <path d="M186.919,100.247h-72.3a3.509,3.509,0,0,1-3.509-3.509v-.313a3.509,3.509,0,0,1,3.509-3.509h72.3a3.509,3.509,0,0,1,3.509,3.509v.313A3.509,3.509,0,0,1,186.919,100.247Z" fill="#eaeaee"/>
+        <circle cx="204.486" cy="96.582" r="3.241" fill="#eaeaee"/>
+        <circle cx="214.942" cy="96.582" r="3.241" fill="#eaeaee"/>
+      </g>
+    </g>
+    <path d="M201,147.124V135.376a8.136,8.136,0,0,0-8.126-8.126H108.126A8.136,8.136,0,0,0,100,135.376v11.748a8.136,8.136,0,0,0,8.126,8.126h5.062l-12.476,40.1a5.042,5.042,0,0,0,.776,4.526,6.092,6.092,0,0,0,4.925,2.371h3.045a5.813,5.813,0,0,0,5.7-3.9l13.129-42.2a5.105,5.105,0,0,0,.185-.9h44.054a5.105,5.105,0,0,0,.185.9l13.13,42.2a5.812,5.812,0,0,0,5.7,3.9h3.045a6.092,6.092,0,0,0,4.925-2.371,5.042,5.042,0,0,0,.776-4.526l-12.476-40.1h5.062A8.136,8.136,0,0,0,201,147.124Z" fill="#fff"/>
+    <g>
+      <path d="M176.152,150.614a1.139,1.139,0,0,1,.15.3l14.427,45.908a.984.984,0,0,0,.813.308h3.045a.967.967,0,0,0,.814-.308l-14.234-45.236a1.119,1.119,0,0,1,.15-.972Z" fill="#c2f0ff"/>
+      <path d="M105.6,196.876a1.26,1.26,0,0,0,.813.254h3.045a.991.991,0,0,0,.813-.306l14.411-45.909a1.1,1.1,0,0,1,.15-.3h-5.166a1.111,1.111,0,0,1,.15.971Z" fill="#c2f0ff"/>
+    </g>
+    <g>
+      <path d="M119.406,135.083H115.3a.307.307,0,0,0-.292.216l-3.494,11.3a.306.306,0,0,0,.292.4h4.105a.305.305,0,0,0,.292-.216l3.495-11.3A.306.306,0,0,0,119.406,135.083Z" fill="#c2f0ff"/>
+      <path d="M129.343,135.083h-4.1a.307.307,0,0,0-.293.216l-3.494,11.3a.306.306,0,0,0,.292.4h4.105a.3.3,0,0,0,.292-.216l3.495-11.3A.306.306,0,0,0,129.343,135.083Z" fill="#c2f0ff"/>
+      <path d="M139.28,135.083h-4.1a.308.308,0,0,0-.293.216l-3.494,11.3a.306.306,0,0,0,.292.4h4.1a.3.3,0,0,0,.292-.216l3.5-11.3A.306.306,0,0,0,139.28,135.083Z" fill="#c2f0ff"/>
+      <path d="M149.217,135.083h-4.105a.308.308,0,0,0-.293.216l-3.494,11.3a.306.306,0,0,0,.292.4h4.105a.3.3,0,0,0,.292-.216l3.495-11.3A.306.306,0,0,0,149.217,135.083Z" fill="#c2f0ff"/>
+      <path d="M159.154,135.083h-4.1a.308.308,0,0,0-.293.216l-3.494,11.3a.306.306,0,0,0,.292.4h4.1a.3.3,0,0,0,.292-.216l3.5-11.3A.306.306,0,0,0,159.154,135.083Z" fill="#c2f0ff"/>
+      <path d="M169.091,135.083h-4.105a.306.306,0,0,0-.292.216L161.2,146.6a.306.306,0,0,0,.292.4h4.1a.3.3,0,0,0,.292-.216l3.5-11.3A.306.306,0,0,0,169.091,135.083Z" fill="#c2f0ff"/>
+      <path d="M179.028,135.083h-4.1a.306.306,0,0,0-.292.216l-3.5,11.3a.306.306,0,0,0,.292.4h4.1a.3.3,0,0,0,.292-.216l3.5-11.3A.306.306,0,0,0,179.028,135.083Z" fill="#c2f0ff"/>
+      <path d="M188.965,135.083h-4.1a.306.306,0,0,0-.292.216l-3.5,11.3a.306.306,0,0,0,.292.4h4.1a.3.3,0,0,0,.292-.216l3.5-11.3A.306.306,0,0,0,188.965,135.083Z" fill="#c2f0ff"/>
+      <path d="M192.4,140.435l-1.9,6.151a.306.306,0,0,0,.292.4h1.9a.306.306,0,0,0,.306-.306v-6.152A.306.306,0,0,0,192.4,140.435Z" fill="#c2f0ff"/>
+      <path d="M109.9,135.083h-1.9a.305.305,0,0,0-.3.306v6.152a.306.306,0,0,0,.6.091l1.9-6.152A.306.306,0,0,0,109.9,135.083Z" fill="#c2f0ff"/>
+    </g>
+    <path d="M198.12,147.124V135.376a5.251,5.251,0,0,0-5.246-5.246H108.126a5.251,5.251,0,0,0-5.246,5.246v11.748a5.251,5.251,0,0,0,5.246,5.246h9.1l-13.761,43.838a2.19,2.19,0,0,0,.346,1.964,3.2,3.2,0,0,0,2.6,1.2h3.045a3,3,0,0,0,2.95-1.877l14.164-45.123h47.839l14.18,45.122a3,3,0,0,0,2.951,1.878h3.045a3.2,3.2,0,0,0,2.605-1.2,2.191,2.191,0,0,0,.345-1.967L183.762,152.37h9.112A5.251,5.251,0,0,0,198.12,147.124Zm-87.849,49.7a.991.991,0,0,1-.813.306h-3.045a1.26,1.26,0,0,1-.813-.254l14.216-45.291a1.1,1.1,0,0,0,.046-.335h4.714Zm85.13,0a.967.967,0,0,1-.814.308h-3.045a.984.984,0,0,1-.813-.308L176.407,151.25h4.714a1.1,1.1,0,0,0,.046.336ZM182.235,150.13c-.013,0-.025,0-.038,0h-6.935a.293.293,0,0,0-.029,0H125.75a.233.233,0,0,0-.028,0h-6.935c-.013,0-.026,0-.039,0H108.126a3.01,3.01,0,0,1-3.006-3.006V135.376a3.01,3.01,0,0,1,3.006-3.006h84.748a3.01,3.01,0,0,1,3.006,3.006v11.748a3.01,3.01,0,0,1-3.006,3.006Z" fill="#00b0ec"/>
+  </g>
+</svg>
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -33,16 +33,17 @@ browser.jar:
         content/browser/abouthome/sync@2x.png          (content/abouthome/sync@2x.png)
         content/browser/abouthome/settings@2x.png      (content/abouthome/settings@2x.png)
         content/browser/abouthome/restore@2x.png       (content/abouthome/restore@2x.png)
         content/browser/abouthome/restore-large@2x.png (content/abouthome/restore-large@2x.png)
 
         content/browser/illustrations/error-connection-failure.svg (content/illustrations/error-connection-failure.svg)
         content/browser/illustrations/error-server-not-found.svg (content/illustrations/error-server-not-found.svg)
         content/browser/illustrations/error-malformed-url.svg (content/illustrations/error-malformed-url.svg)
+        content/browser/illustrations/under-construction.svg (content/illustrations/under-construction.svg)
         content/browser/aboutNetError.xhtml            (content/aboutNetError.xhtml)
         content/browser/aboutRobots-icon.png          (content/aboutRobots-icon.png)
         content/browser/aboutRobots-widget-left.png   (content/aboutRobots-widget-left.png)
         content/browser/aboutTabCrashed.css           (content/aboutTabCrashed.css)
         content/browser/aboutTabCrashed.js            (content/aboutTabCrashed.js)
         content/browser/aboutTabCrashed.xhtml         (content/aboutTabCrashed.xhtml)
 *       content/browser/browser.css                   (content/browser.css)
         content/browser/browser.js                    (content/browser.js)
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -80,16 +80,19 @@ static const RedirEntry kRedirMap[] = {
   // Actual activity stream URL for home and newtab are set in channel creation
   // Linkable because of indexeddb use (bug 1228118)
   { "home", "about:blank",
     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
     nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
     nsIAboutModule::ALLOW_SCRIPT |
     nsIAboutModule::MAKE_LINKABLE |
     nsIAboutModule::ENABLE_INDEXED_DB },
+  { "library", "chrome://browser/content/aboutLibrary.xhtml",
+    nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
+    nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT },
   { "newtab", "about:blank",
     nsIAboutModule::ENABLE_INDEXED_DB |
     nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
     nsIAboutModule::ALLOW_SCRIPT },
   { "preferences", "chrome://browser/content/preferences/in-content/preferences.xul",
     nsIAboutModule::ALLOW_SCRIPT },
   { "downloads", "chrome://browser/content/downloads/contentAreaDownloadsView.xul",
--- a/browser/components/build/nsModule.cpp
+++ b/browser/components/build/nsModule.cpp
@@ -98,16 +98,17 @@ static const mozilla::Module::ContractID
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "privatebrowsing", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "rights", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "robots", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "searchreset", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "sessionrestore", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "welcomeback", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "home", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "newtab", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
+    { NS_ABOUT_MODULE_CONTRACTID_PREFIX "library", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "preferences", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "downloads", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "reader", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
 #if defined(XP_WIN)
     { NS_IEHISTORYENUMERATOR_CONTRACTID, &kNS_WINIEHISTORYENUMERATOR_CID },
 #elif defined(XP_MACOSX)
     { NS_SHELLSERVICE_CONTRACTID, &kNS_SHELLSERVICE_CID },
 #endif
new file mode 100644
--- /dev/null
+++ b/browser/components/library/content/aboutLibrary.xhtml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Security-Policy" content="default-src chrome:" />
+    <title>about:library</title>
+    <link rel="stylesheet" href="chrome://browser/skin/aboutLibrary.css" type="text/css" media="all"/>
+    <link rel="stylesheet" href="chrome://global/skin/in-content/info-pages.css" type="text/css" media="all"/>
+    <link rel="icon" type="image/png" href="chrome://global/skin/icons/warning-16.png"/>
+  </head>
+
+  <body>
+    <div class="under-construction"/>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/browser/components/library/jar.mn
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+browser.jar:
+   content/browser/aboutLibrary.xhtml             (content/aboutLibrary.xhtml)
+
new file mode 100644
--- /dev/null
+++ b/browser/components/library/moz.build
@@ -0,0 +1,11 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+JAR_MANIFESTS += ['jar.mn']
+FINAL_LIBRARY = 'browsercomps'
+
+with Files('**'):
+    BUG_COMPONENT = ('Firefox', 'Library')
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -36,16 +36,17 @@ DIRS += [
     'about',
     'contextualidentity',
     'customizableui',
     'dirprovider',
     'downloads',
     'enterprisepolicies',
     'extensions',
     'feeds',
+    'library',
     'migration',
     'newtab',
     'originattributes',
     'places',
     'preferences',
     'privatebrowsing',
     'resistfingerprinting',
     'search',
new file mode 100644
--- /dev/null
+++ b/browser/themes/shared/aboutLibrary.css
@@ -0,0 +1,9 @@
+.under-construction {
+    background-image: url("chrome://browser/content/illustrations/under-construction.svg");
+    background-repeat: no-repeat;
+    background-position: center;
+    min-height: 300px;
+    min-width: 300px;
+    /* Move the image down a bit - should be slightly higher than halfway down the page */
+    margin-top: -10%;
+}
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -6,16 +6,17 @@
 # actual theme-specific manifests, so that shared resources need only
 # be specified once. As a result, the source file paths are relative
 # to the location of the actual manifest.
 
   skin/classic/browser/aboutNetError.css                       (../shared/aboutNetError.css)
   skin/classic/browser/blockedSite.css                         (../shared/blockedSite.css)
   skin/classic/browser/error-pages.css                         (../shared/error-pages.css)
 * skin/classic/browser/aboutSessionRestore.css                 (../shared/aboutSessionRestore.css)
+  skin/classic/browser/aboutLibrary.css                        (../shared/aboutLibrary.css)
   skin/classic/browser/aboutTabCrashed.css                     (../shared/aboutTabCrashed.css)
   skin/classic/browser/aboutWelcomeBack.css                    (../shared/aboutWelcomeBack.css)
   skin/classic/browser/addons/addon-install-blocked.svg        (../shared/addons/addon-install-blocked.svg)
   skin/classic/browser/addons/addon-install-confirm.svg        (../shared/addons/addon-install-confirm.svg)
   skin/classic/browser/addons/addon-install-downloading.svg    (../shared/addons/addon-install-downloading.svg)
   skin/classic/browser/addons/addon-install-error.svg          (../shared/addons/addon-install-error.svg)
   skin/classic/browser/addons/addon-install-installed.svg      (../shared/addons/addon-install-installed.svg)
   skin/classic/browser/addons/addon-install-warning.svg        (../shared/addons/addon-install-warning.svg)