1: <html><style>
2: .broken { color: red; }
3: .fixed { color: blue; }
4: </style>
5:
6: <body><p><b>Corrections</b>
7:
8: <p>This page contains a list of corrections to be made in the next printing of
9: the book. If you have suggestions for changes or find errors in the text,
10: feel free open a <a href="bugs.html">bug</a> with a report of the problem, post a message in the User Notes
11: section on the chapter pages, or send a message to the <a
12: href="mailto:reviewers@mozdev.org">reviewers@mozdev.org</a> mailing list.
13:
14: <p><b>Note:</b> All errors in the text and examples are shown in <b class="broken">red</b> and all corrections are shown in <b
15: class="fixed">blue</b>.
16:
17: <a name="preface"></a>
18: <p><b>Preface</b>
19:
20: <ul>
21:
22: <li>On page ix: '<b class="broken">other browsers such as Galeon and Chimera</b>' has been changed to '<b class="fixed">other browsers
23: such as Galeon and Camino</b>'<br><br>
24:
25: <li>On page xiv: '<b class="broken">http://www.oreilly.com/mozilla/</b>' has been changed
26: to '<b class="fixed">http://www.oreilly.com/catalog/mozilla/</b>'<br><br>
27:
28: <li>On page xvii: '<b class="broken">David McNamara, and Mark Hammond.</b>' has been changed to '<b class="fixed">David
29: McNamara, Mark Hammond, Gary Frederick, and Andreas Halter.</b>'<br><br>
30:
31: <li>On page xvii: '<b class="broken">David Hyatt and Mike Pinkerton for the Chimera browser</b>' has been changed to '<b
32: class="fixed">David Hyatt and Mike Pinkerton for the Camino browser</b>'<br><br>
33:
34: <li>On page xvii: '<b class="broken">including Kim Steckler, Rachel Oeschger, and Priscilla, Dylan, and Devon Collins.</b>' has been
35: changed to '<b class="fixed">including Kim Steckler, Rachel Oeschger, Marjana Molan, Lia Molan King, and Priscilla, Dylan, and Devon
36: Collins.</b>'<br><br>
37:
38: </ul>
39:
40:
41: <a name="ch1"></a>
42: <p><b>Chapter 1</b>
43:
44: <ul>
45:
46: <li>On page 2: In sidebar '<b class="broken">like Chimera (an ultra-fast browser that works only on Mac OS X)</b>' has been changed to
47: '<b class="fixed">like Camino (an ultra-fast browser that works only on Mac OS X)</b>'<br><br>
48:
49: <li>On page 7: In sidebar '<b class="broken">Another project, call m/b (short for mozilla/browser), addresses shortcomings</b>' has
50: been changed to '<b class="fixed">The Firebird project (http://www.mozilla.org/projects/firebird/) also addresses
51: shortcomings</b>'<br><br>
52:
53: <li>On page 7: In sidebar '<b class="broken">Some examples include Chimera (http://chimera.mozdev.org)</b>' has been changed to '<b
54: class="fixed">Some examples include Camino (http://www.mozilla.org/projects/camino/)</b>'<br><br>
55:
56: <li>On page 7: '<b class="broken">applications web built using XPFE</b>' has been
57: changed to '<b class="fixed">applications built using XPFE</b>'<br><br>
58:
59: </ul>
60:
61:
62: <a name="ch2"></a>
63: <p><b>Chapter 2</b>
64:
65: <ul>
66:
67: <li>On page 10: Added a new sentence to the end of the 2nd paragraph of the xFly examples sidebar: '<b class="fixed">An installable version
68: of the complete xFly application can be found at http://xfly.mozdev.org.</b>'<br><br>
69:
70: <li>On page 12: '<b class="broken"><window
71: xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
72: /></b>' has been changed to '<b class="fixed"><window
73: xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"></b>'<br><br>
74:
75: <li>On page 14: In first code sample from Windows features section, '<b
76: class="broken">xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"></b>' has been changed to '<b
77: class="fixed">xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"</b>'<br><br>
78:
79: <li>On page 17: '<b class="broken">selecting File > Open File > from</b>' has been
80: changed to '<b class="fixed">selecting File > Open File from</b>'<br><br>
81:
82: <li>On page 20: '<b class="broken">CenterWindoOnScreen( ) function</b>' has been changed
83: to '<b class="fixed">CenterWindowOnScreen( ) function</b>'<br><br>
84:
85: <li>On page 25: '<b class="broken">Under that directory, create the three new directories, <i>content</i>, <i>locale</i>, and <i>skin</i>, as
86: shown in Figure 2-5.</b>' has been changed to '<b class="fixed">Under that directory, create the three new directories, <i>content</i>,
87: <i>locale</i>, and <i>skin</i>, as shown in Figure 2-5. The <i>locale</i> directory will have the default 'en-US' language pack
88: structure.</b>'<br><br>
89:
90: <li>On page 25: In Figure 2-5 there should be an en-US subfolder under the locale folder. Here is a correct image <b>(Click for bigger
91: version)</b>:<br><br>
92:
93: <a href="http://books.mozdev.org/screenshots/moz_0205.png"><img src="http://books.mozdev.org/screenshots/moz_0205_small.jpg" alt="New
94: Figure 2-5"></a><br><br>
95:
96: <li>On page 31: In Example 2-14 '<b class="broken">locale/</b>' has been changed to '<b class="fixed">locale/en-US/</b>'<br><br>
97:
98: <li>On page 32: In Example 2-15 '<b class="broken">locale,install,url,resource:/chrome/xfly/locale/</b>' has been changed to '<b
99: class="fixed">locale,install,url,resource:/chrome/xfly/locale/en-US/</b>'<br><br>
100:
101: <li>On page 33: A warning note has been added before the last paragraph of the chapter
102:
103: <xmp class="fixed">
104: If you have trouble editing and relaunching the xFly application,
105: there are a couple of platform specific culprits to look into. On
106: Windows, the Quick Launch feature may prevent you from seeing changes
107: to your files. On Unix, file permission conflicts can also cause
108: problems viewing your files. Making sure that Quick Launch is disabled
109: and double checking file permissions may help get xFly working
110: on your system.
111: </xmp>
112:
113: </ul>
114:
115:
116: <a name="ch3"></a>
117: <p><b>Chapter 3</b>
118:
119: <ul>
120:
121: <li>On page 34: '<b class="broken">We've packed a lot information in this chapter and it be a useful reference</b>' has been changed
122: to '<b class="fixed">We've packed a lot of information in this chapter and it will be a useful reference</b>'<br><br>
123:
124: <li>On page 35: '<b class="broken">secondLevelNodes[I] = docEl.childNodes[i];</b>' has been changed to '<b
125: class="fixed">secondLevelNodes[I] = docEl.childNodes[I];</b>'<br><br>
126:
127: <li>On page 38: In Example 3-3 the namespace declarations have been changed to (note the addition of quotes and the removal of italics)
128:
129: <xmp class="fixed">
130: xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
131: xmlns:nc="http://home.netscape.com/NC-rdf#">
132: </xmp>
133:
134: <li>On page 38: In Example 3-3 '<b class="broken"><image src="page1.png"></b>' has been changed to '<b class="fixed"><image
135: src="page1.png"/></b>'<br><br>
136:
137: <li>On page 40: '<b class="broken"><toolbarbutton id="printBtn" label="Open"
138: oncommand="doPrint( );" /></b>' has been changed to '<b class="fixed"><toolbarbutton
139: id="printBtn" label="Print" oncommand="doPrint( );" ></b>'<br><br>
140:
141: <li>On page 51: '<b class="broken"><decription>The mozdev.org site [...] your own development project</decription></b>' has been
142: changed to '<b class="fixed"><description>The mozdev.org site [...] your own development project</description></b>'<br><br>
143:
144: <li>On page 54: '<b class="broken">Clicking on the box sets the <tt>clicked</tt> attribute</b>' has been
145: changed to '<b class="fixed">Clicking on the box sets the <tt>checked</tt> attribute</b>'<br><br>
146:
147: <li>On pages 58 and 59: Example 3-15 has been changed to (note the addition of spaces to separate values)
148:
149: <xmp class="fixed">
150: <?xml version="1.0"?>
151: <window id="hello-goodbye"
152: title="Hello Goodbye"
153: xmlns:html="http://www.w3.org/1999/xhtml"
154: xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
155: style="min-width:100px;min-height:100px;background-color:white;">
156: <broadcasterset id="broadcasterset">
157: <broadcaster id="cmd_hello" oncommand="alert('Hello There!');"/>
158: </broadcasterset>
159: <keyset id="keyset">
160: <key id="key_h" key="H" observes="cmd_hello" modifiers="accel,shift" />
161: <key id="key_g" key="G" command="cmd_goodbye" modifiers="accel,shift" />
162: </keyset>
163: <commandset id="commandset">
164: <command id="cmd_goodbye" oncommand="alert('Goodbye!');" />
165: </commandset>
166: <spacer flex="1"/>
167: <label value="hello/goodbye"/>
168: <textbox value="type ctl+shft+h"/>
169: <textbox value="type ctl+shft+g"/>
170: <spacer flex="1"/>
171: </window>
172: </xmp>
173:
174: <li>On page 63: '<b class="broken">But there are also CSS versions of these properties that
175: use the prefix <tt>box-pack</tt> becomes <tt>box-pack</tt> when it's defined in CSS, for example.</b>' has been
176: changed to '<b class="fixed">But there are also CSS versions of these properties that
177: use the prefix <tt>box-</tt>. <tt>pack</tt> becomes <tt>box-pack</tt> when it's defined in CSS, for example.</b>'<br><br>
178:
179: </ul>
180:
181:
182: <a name="ch4"></a>
183: <p><b>Chapter 4</b>
184:
185: <ul>
186:
187: <li>On page 88: '<b class="broken">these are selectors are identical</b>' has been changed to '<b class="fixed">these selectors are
188: identical</b>'<br><br>
189:
190: <li>On page 109: '<b class="broken">The <i>chome</i> URL that the -moz-binding property points to</b>' has been changed to '<b
191: class="fixed">The <i>chrome</i> URL that the -moz-binding property points to</b>'<br><br>
192:
193: </ul>
194:
195:
196: <a name="ch5"></a>
197: <p><b>Chapter 5</b>
198:
199: <ul>
200:
201: <li>On page 113: Javascript 1.5 reference link in footnote has been changed from
202: '<b class="broken">http://developer.netscape.com/docs/manuals/js/core/jsref15/contents.html</b>' to
203: '<b class="fixed">http://developer.netscape.com/docs/manuals/index.html?content=javascript.html</b>'<br><br>
204: </li>
205:
206: <li>On page 120: '<b class="broken"></script.</b>' has been changed to '<b class="fixed"></script></b>'<br><br>
207: </li>
208:
209: <li>On page 120: '<b class="broken">dump(l+'\n');</b>' has been changed to '<b class="fixed">dump(len+'\n');</b>'<br><br>
210: </li>
211:
212: <li>On page 123: Example 5-3
213: <xmp class="broken">
214: for (var i=0; i<chex.length; i++)
215: chex[i].setAttributte("checked", "false");
216: for (var i=0; i<unchex.length; i++)
217: unchex[i].setAttributte("checked", "true");
218: </xmp>
219: has been changed to
220: <xmp class="fixed">
221: for (var i=0; i<chex.length; i++)
222: chex[i].setAttribute("disabled", "false");
223: for (var i=0; i<unchex.length; i++)
224: unchex[i].setAttribute("disabled", "true");
225: </xmp>
226: <br>
227: </li>
228:
229: <li>On page 135: Example 5-11 has been changed to
230: <xmp class="fixed">
231: <head>
232: <title>Sound Service Play Example</title>
233: <script>
234: function play() {
235: netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
236: var sample = Components.classes["@mozilla.org/sound;1"].createInstance();
237: sample = sample.QueryInterface(Components.interfaces.nsISound);
238: const SND_NETWORK_STD_CID = "@mozilla.org/network/standard-url;1";
239: const SND_I_URL = "nsIURL";
240: const SND_URL = new C.Constructor(SND_NETWORK_STD_CID, SND_I_URL);
241: var url = new SND_URL();
242: url.spec = 'http://jslib.mozdev.org/test.wav';
243: sample.play(url);
244: }
245: </script>
246: </head>
247:
248: <form name="form">
249: <input type="button" value="Play Sound" onclick="play();">
250: </form>
251: </xmp>
252:
253: <li>On page 137: '<b class="broken">var connection = Components.classes ["@mozilla.org/network/ldap-connection;1";</b>'
254: has been changed to
255: '<b class="fixed">var connection = Components.classes ["@mozilla.org/network/ldap-connection;1"];</b>'<br><br>
256: </li>
257:
258: <li>On page 140: '<b class="broken">js> load(`chrome/jslib/jslib.js');</b>' has been changed to '<b class="fixed">js>
259: load('chrome/jslib/jslib.js');</b>'<br><br>
260: </li>
261:
262: </ul>
263:
264: <a name="ch06"></a>
265: <p><b>Chapter 6</b>
266:
267: <ul>
268:
269: <li>On page 145: Example 6-1 has been changed to
270:
271: <xmp class="fixed">
272: var myFile = "xFly.jar";
273: initInstall( // initialize the installation
274: "Install xFly", // display name of installation
275: "xFly", // package name
276: "0.0.1", // version of install
277: 1); // flags - an optional argument,
278: // reserved for future use
279: f = getFolder("Chrome"); // specify a target directory
280: setPackageFolder(f);
281: addFile(myFile); // add software to the installation
282: registerChrome(
283: PACKAGE | DELAYED_CHROME, // chrome switch (i.e., type)
284: getFolder("Chrome","xFly.jar"), // destination of package
285: "content/xFly/"); // location of manifest in package
286: if (0 == getLastError( )) // if there have been no errors:
287: performInstall( ); // install "xfly.jar"
288: else // otherwise
289: cancelInstall( ); // cancel the installation.
290: </xmp>
291:
292: </ul>
293:
294: <a name="ch07"></a>
295: <p><b>Chapter 7</b>
296:
297: <ul>
298:
299: <li>On page 181: There are 3 errors in Figure 7-2 ...<br><br>
300:
301: 1) In the XUL box, '<b class="broken">klabel="Input Field"</b>' should be '<b class="fixed">label="Input Field"</b>'<br><br>
302:
303: 2) In the XBL box, '<b class="broken"><binding id+"inputfield"></b>' should be '<b class="fixed"><binding id="inputfield"></b>'<br><br>
304:
305: 3) In the XBL box, '<b class="broken"><xul:label xbl:inherits="value+label"?></b>' should be '<b class="fixed"><xul:label xbl:inherits="value=label"/></b>'<br><br>
306:
307: Here is a correct image <b>(Click for bigger version)</b>:<br><br>
308:
309: <a href="http://books.mozdev.org/screenshots/moz_0702.gif"><img src="http://books.mozdev.org/screenshots/moz_0702_small.gif" alt="New Figure 7-2"></a>
310:
311: </li>
312:
313: </ul>
314:
315: </p>
316:
317: <a name="ch08"></a>
318: <p><b>Chapter 8</b>
319:
320: <ul>
321:
322: <li>On page 211: In 2nd sentence of paragraph '<b class="broken">QueryInterace</b>' has been
323: changed to '<b class="fixed">QueryInterface</b>'<br><br></li>
324:
325: <li>On page 222: In Example 8-4 has been changed to:
326:
327: <xmp class="fixed">
328: function SimpleComponent(){}
329:
330: SimpleComponent.prototype = {
331:
332: get yourName() { return this.mName; },
333: set yourName(aName) { return this.mName = aName; },
334:
335: write: function () { dump("Hello " + this.mName + "\n"); },
336: change: function (aValue) { this.mName = aValue; },
337: mName: "a default value",
338:
339: QueryInterface: function (iid) {
340: if (!iid.equals(Components.interfaces.nsISimple)
341: && !iid.equals(Components.interfaces.nsISupports))
342: {
343: throw Components.results.NS_ERROR_NO_INTERFACE;
344: }
345: return this;
346: }
347: }
348:
349: var Module = {
350: firstTime: true,
351:
352: registerSelf: function (compMgr, fileSpec, location, type) {
353: if (this.firstTime) {
354: dump("*** Deferring registration of simple JS components\n");
355: this.firstTime = false;
356: throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN;
357: }
358: debug("*** Registering sample JS components\n");
359: compMgr =
360: compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
361: compMgr.registerFactoryLocation(this.myCID,
362: "Simple JS Component",
363: this.myProgID,
364: fileSpec,
365: location,
366: type);
367: },
368:
369: getClassObject : function (compMgr, cid, iid) {
370: if (!cid.equals(this.myCID))
371: throw Components.results.NS_ERROR_NO_INTERFACE
372: if (!iid.equals(Components.interfaces.nsIFactory))
373: throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
374: return this.myFactory;
375: },
376:
377: myCID: Components.ID("{98aa9afd-8b08-415b-91ed-01916a130d16}"),
378: myProgID: "@mozilla.org/js_simple_component;1",
379:
380: myFactory: {
381: createInstance: function (outer, iid) {
382: dump("CI: " + iid + "\n");
383: if (outer != null)
384: throw Components.results.NS_ERROR_NO_AGGREGATION;
385: return (new SimpleComponent()).QueryInterface(iid);
386: }
387: },
388:
389: canUnload: function(compMgr) {
390: dump("****** Unloading: Simple JS component! ****** \n");
391: return true;
392: }
393: }; // END Module
394:
395: function NSGetModule(compMgr, fileSpec) { return Module; }
396: </xmp>
397: </li>
398:
399: <li>On page 237: Example 8-13, line 9
400: <xmp class="broken">
401: NS_INIT_REFCNT( ); // has been depricated use NS_INIT_ISUPPORTS()
402: mValue = PL_strdup("default value");
403: </xmp>
404: has been changed to
405: <xmp class="fixed">
406: // NS_INIT_REFCNT( ); // has been depricated use NS_INIT_ISUPPORTS()
407: NS_INIT_ISUPPORTS();
408: mValue = PL_strdup("default value");
409: </xmp>
410: <br>
411: </li>
412:
413: <li>On page 239: Example 8-15 has been changed to <br/></li>
414:
415: <xmp class="fixed">
416: DEPTH = ../../..
417: topsrcdir = ../../..
418: srcdir = .
419: VPATH = .
420:
421: include $(DEPTH)/config/autoconf.mk
422:
423: MODULE = xpcom
424: XPIDL_MODULE = simple
425: LIBRARY_NAME = simple
426: IS_COMPONENT = 1
427: MODULE_NAME = nsSimpleModule
428: REQUIRES = string \
429: xpcom \
430: $(NULL)
431:
432:
433: CPPSRCS = \
434: nsSimple.cpp \
435: nsSimpleModule.cpp \
436: $(NULL)
437:
438: XPIDLSRCS = nsISimple.idl
439:
440: include $(topsrcdir)/config/config.mk
441:
442: LIBS += \
443: $(XPCOM_LIBS) \
444: $(NSPR_LIBS) \
445: $(NULL)
446:
447: include $(topsrcdir)/config/rules.mk
448:
449: EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS)
450:
451: install:: $(TARGETS)
452: </xmp>
453:
454: </ul>
455:
456: <a name="ch9"></a>
457: <p><b>Chapter 9</b>
458:
459: <ul>
460:
461: <li>On page 247: '<b class="broken">When it appears inside the <template>, the <listbox> tag has two special attributes.</b>'
462: has been changed to '<b class="fixed">The <listbox> gains two special attributes when it contains a <template>.</b>'
463: <br><br>
464:
465: <li>On page 250: '<b class="broken">"Using Data for Style,"</b>' has been changed to '<b class="fixed">"Using Data for Style",</b>'
466: <br><br>
467:
468: <li>On page 254: Example 9-5
469:
470: <xmp class="broken">
471: <rdf:Description about="urn:root">
472: <fly:list</td>>
473: <rdf:Seq>
474: <rdf:li>
475: <rdf:Description ID="House">
476: <fly:label</td>>House</fly:label>
477: <fly:list</td>>
478: <rdf:Seq>
479: <rdf:li>
480: <rdf:Description about="musca_autumnalis"
481: fly:label</td>="Face Fly"/>
482: </rdf:li>
483: <rdf:Seq>
484: </fly:list>
485: </rdf:li>
486: </rdf:Seq>
487: </fly:list>
488: </rdf:Description>
489: </xmp>
490:
491: has been changed to
492:
493: <xmp class="fixed">
494: <rdf:Description about="urn:root">
495: <fly:list</td>>
496: <rdf:Seq>
497: <rdf:li>
498: <rdf:Description ID="House">
499: <fly:label</td>>House</fly:label>
500: </rdf:Description>
501: <fly:list</td>
502: <rdf:Seq>
503: <rdf:li>
504: <rdf:Description about="musca_autumnalis"
505: fly:label</td>="Face Fly"/>
506: </rdf:li>
507: <rdf:Seq>
508: </fly:list>
509: </rdf:li>
510: </rdf:Seq>
511: </fly:list>
512: </rdf:Description>
513: </xmp>
514:
515: <li>On page 255: Example 9-6
516:
517: <xmp class="broken">
518: <treecols>
519: <treecol id="LabelCol" flex="1" sort="?label" label="Name"
520: primary="true" />
521: <treecol id="LoCol" flex="1" sort="?location" label="Location"/>
522: <treecol id="ColCol" flex="1" sort="?color" label="Color"/>
523: </treecols>
524: </xmp>
525:
526: has been changed to
527:
528: <xmp class="fixed">
529: <treecols>
530: <treecol id="LabelCol" flex="1"
531: sort="rdf:http://xfly.mozdev.org/fly-rdf#label"
532: class="sortDirectionIndicator" primary="true" label="Name"/>
533: <treecol id="LoCol" flex="1"
534: sort="rdf:http://xfly.mozdev.org/fly-rdf#location"
535: label="Location"/>
536: <treecol id="ColCol" flex="1"
537: sort="rdf:http://xfly.mozdev.org/fly-rdf#color"
538: label="Color"/>
539: </treecols>
540: </xmp>
541:
542: <li>On page 257: In Example 9-7
543:
544: <xmp class="broken">
545: <triple subject="?listitem"
546: predicate=" http://xfly.mozdev.org/fly-rdf#location"
547: object="?location"/>
548: </xmp>
549:
550: has been changed to
551:
552: <xmp class="fixed">
553: <triple subject="?listitem"
554: predicate="fly-location#location"
555: object="?location"/>
556: </xmp>
557:
558: <li>On page 258: '<b class="broken">The most important additions to Example 9-7 are the
559: container="?uri" member="?listitem" attributes on the <template></b>' has been
560: changed to '<b class="fixed">The most important inclusions to Example 9-7 are the
561: container="?uri" member="?listitem" attributes on the <template></b>'
562: <br><br>
563:
564: </ul>
565:
566: <a name="ch10"></a>
567: <p><b>Chapter 10</b>
568:
569: <ul>
570:
571: <li>One page 268: In Example 10-1 '<b class="broken"><rdf:Description about="http://my.jar-of-flies.com"></b>' has been
572: changed to '<b class="fixed"><rdf:Description about="urn:root"></b>'<br><br>
573:
574: <li>On page 279: '<b class="broken">The URI is also accessible as a datasource property:</b>' has been
575: changed to '<b class="fixed">The URI, such as rdf:someName, is also accessible as a datasource
576: property:</b>'<br><br>
577:
578: <li>On page 280: In Table 10-3 '<b class="broken">Mostly used for retrieving, datasources, resources, and literals.</b>' has been
579: changed to '<b class="fixed">Mostly used for retrieving datasources, resources, and literals.</b>'<br><br>
580:
581: <li>On page 288: The code at the top of the page
582:
583: <xmp class="broken">
584: containerUtils = Components.classes['@mozilla.org/rdf/container-utils;1'
585: getService(Components.interfaces.nsIRDFContainerUtils);
586: </xmp>
587:
588: has been changed to:
589:
590: <xmp class="fixed">
591: containerUtils = Components.classes['@mozilla.org/rdf/container-utils;1'].
592: getService(Components.interfaces.nsIRDFContainerUtils);
593: </xmp>
594:
595: <li>On page 297: '<b class="broken">http://www.jslib.mozdev.org</b>' has been changed to '<b
596: class="fixed">http://jslib.mozdev.org</b>'<br><br>
597:
598: <li>On page 297: In Example 10-14 '<b class="broken">// if(del)gRDF.removeSeq('types',false);</b>' has been deleted. It is not
599: needed in this example.<br><br>
600:
601: </ul>
602:
603:
604: <a name="ch11"></a>
605: <p><b>Chapter 11</b>
606:
607: <ul>
608: <li>On page 314: In Example 11-5 and Example 11-6 '<b class="broken">var linetext =
609: document.createTextNode(messageParagraphs[i]);</b>' has been changed to '<b class="fixed">var linetext =
610: document.createTextNode(lines[i]);</b>'<br><br>
611: </ul>
612:
613:
614: <a name="ch12"></a>
615: <p><b>Chapter 12</b>
616:
617: <ul>
618:
619: <li>On page 336: In Example 12-6
620:
621: <xmp class="broken">
622: print ` <checkbox label="%s" />' % form['op1'].value
623: print ` <checkbox label="%s" />' % form['op2'].value
624: print ` <checkbox label="%s" />' % form['op3'].value
625: </xmp>
626:
627: has been changed to (note the difference in indentation and in using a single quote versus a backtick)
628:
629: <xmp class="fixed">
630: print ' <checkbox label="%s" />' % form['op1'].value
631: print ' <checkbox label="%s" />' % form['op2'].value
632: print ' <checkbox label="%s" />' % form['op3'].value
633: </xmp>
634:
635: <li>On page 341: The following sentence has been deleted '<b class="broken">You can delete the <i>key3.db</i> and <i>secmod.db</i> files
636: because they do not pertain to certificate creation or modification.</b>'<br><br>
637:
638: <div>
639: <b>NOTE:</b> This last fix in chapter 12 is a <a href="http://mozdev.org/bugs/show_bug.cgi?id=2602">short/quick fix</a>
640: for some major flaws in the security section of this chapter.
641: There is a more desirable fix, <a href="http://mozdev.org/bugs/show_bug.cgi?id=2888">outlined in the bug monitoring it</a>,
642: but it would require a substantial rewrite to the section.
643: Please consider both of these options for a second printing.
644: </div>
645:
646: </ul>
647:
648:
649: </p>
650:
651: <a name="appa"></a>
652: <p><b>Appendix A</b>
653:
654: <ul>
655:
656: <li>On page 365: '<b class="broken">http://www.mozilla.org/source.tml</b>' has been changed to '<b
657: class="fixed">http://www.mozilla.org/source.html</b>'<br><br>
658: </li>
659:
660: <li>On page 367 and 368: CVS Instructions ...
661: <br/><br/>
662: Linux Instructions (p367)<br/>
663: <xmp class="broken">
664: 1. Set the CVSROOT variable:
665: $ setenv CVSROOT :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
666: 2. Log in as anonymous@cvs-mirror.mozilla.org using the password "anonymous":
667: </xmp>
668:
669: has been changed to (note the adding to '=' after CVSROOT,
670: the changing of 'setenv' to 'export',
671: and the simplification of instruction 2)
672:
673: <xmp class="fixed">
674: 1. Set the CVSROOT variable:
675: $ export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
676: 2. Log in using the password "anonymous":
677: </xmp>
678:
679: Windows Instructions (p368)<br/>
680: <xmp class="broken">
681: 1. Set the CVSROOT variable:
682: > set CVSROOT :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
683: 2. Log in as anonymous@cvs-mirror.mozilla.org using the password "anonymous":
684: </xmp>
685:
686: has been changed to (note the adding to '=' after CVSROOT,
687: and the simplification of instruction 2)
688:
689: <xmp class="fixed">
690: 1. Set the CVSROOT variable:
691: > set CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
692: 2. Log in using the password "anonymous":
693: </xmp>
694:
695: </li>
696:
697: </ul>
698:
699: <a name="index"></a>
700: <p><b>Index</b>
701:
702: <ul>
703:
704: <li>
705: On page 437: '<b class="broken">Chimera, 2</b>' has been changed to '<b class="fixed">Camino, 2</b>'<br><br>
706: </li>
707:
708: </ul>
709:
710:
711: <br><br>
712:
713: <?php $hide_text_control=1; $post_to_list=NO; $author='reviewers@mozdev.org'; require(NOTES); ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>