# Adobe® SVG Viewer for Windows

## Release Notes

### Version 2.0 beta 2 (Build 2.0x33, 12/14/00)

## Contents

- About the SVG Viewer
- System requirements
- How to install the SVG Viewer
- How to copy Netscape plug-ins into other Browsers
- How to view SVG files in your Web browser
- How to turn artwork into SVG
- Tips and Hints
- Known Problems
- Revision History
- Contact Information
- Copyright Notice
- More Information on Adobe's support for SVG

## About the SVG Viewer

The Adobe SVG Viewer supports much of the Candidate Recommendation draft specification of SVG published on 11/2/00. Please keep in mind that the specification is under development, and will continue to evolve until it is made a recommended specification.

## How to install the SVG Viewer

1. Before installing, please close any application which you have used to view SVG with an old version of the viewer.
2. Run the installer. The latest released installers can be downloaded from http://www.adobe.com/svg/viewer/install.

## How to copy Netscape plug-ins into other Browsers

If you install another copy of Netscape which is supported by the Netscape plug-in, you can copy the following files into your plug-ins folder to view SVG from within that browser:

- NPSVGVw.dll
- SVGView.dll
- SVGViewer.zip

## How to view SVG files in your Web browser

Once you install the Adobe SVG Viewer, you should be able to view any SVG file that you export from Illustrator in any supported Web browser.

## How to turn artwork into SVG

You can export SVG from Illustrator 9. You can create your artwork in Illustrator, export it as SVG, and then add any JavaScript interactivity, animation, or filter effects by hand.

## Tips and Hints

- Style attributes (or style attributes that use entity references) render more quickly than embedded stylesheets.
- Use tightly-bound percentages on the `x`, `y`, `width`, and `height` attributes on `filter` elements in order to minimize the area over which the filter effect needs to be calculated. This will result in graphics which display much more quickly.
- You can retrieve the SVG document object from from withing SVG event handlers by calling `getTarget` on the `evt` object which is passed in. For example:

        // Retrieve the SVG document object:
        var directTarget = evt.getTarget();
        var svgDocument;
        if( directTarget.getNodeType() != 9 )  // if not DOCUMENT_NODE
          svgDocument = directTarget.getOwnerDocument();
        else
          svgDocument = directTarget;

## System Requirements

- Windows 95, 98, 2000, or NT 4.0
- Netscape Navigator or Communicator versions 4.0 through 4.75, or Internet Explorer 4.0 or higher. Netscape 6 is not supported.
- 13 MB of hard disk space
- 32 MB of RAM recommended

## Known Problems with the SVG Viewer

### All Browsers

1. It's possible for elements near the edge of an SVG graphic to not receive a mouseout event.
2. SVG files won't be associated with your browser on Win/9x systems until you log in again.

### Internet Explorer

1. You must have Internet Explorer 4 or higher installed in order to use the SVG Viewer as an ActiveX control in other applications (like Microsoft Office).
2. Background images in the HTML page sometimes don't display correctly when underneath SVG.
3. If you open more than one window containing a link to the same SVG file, and the SVG file is embedded using the HTML <embed> tag, then when you print one of the windows it may print based on changes to the DOM in the other window. This is due to limitations of Internet Explorer.
4. Due to Internet Explorer limitations, it's not possible to see properties of other windows from a script defined inside an SVG file.
5. Using the Adobe SVG Netscape plug-in under Internet Explorer on Windows is not supported.

### Netscape

1. Netscape 6.0 reports errors when printing pages with plug-ins, and then fails to print embedded contents. Netscape will report two plugin error alerts. Dismissing the alerts presented will then result in Netscape printing the HTML page, but with blank area for the SVG content.
2. When you leave a Web page, Netscape can often unload the Adobe SVG Viewer plug-in before Netscape terminates all scripts running in the HTML. Therefore you should be careful when writing scripts to check to see if the plug-in is still loaded before you attempt to access the SVG DOM from `setTimeout` or `setInterval` callbacks in your HTML JavaScript.
3. Due to design limitations of Netscape, avoid using HTML with the following form:

         <a href="#" onclick="myScriptWhichModifiesSVG()">

   The problem is that JavaScript responds to the onclick event and begins executing the script, but then Netscape also responds to the fact that you clicked on a link, and interrupts JavaScript to re-load the current page. This conflict can be avoided by re-writing the code as follows:

         <a href="javascript:myScriptWhichModifiesSVG()">

4. If a JavaScript event handler contains an error, any subsequent JavaScript will fail to execute. This is due to a bug in Netscape's handling of scripts executed by plug-ins.
5. Due to Netscape script limitations, you can't change the URL of another frame from an SVG event handler.
6. Due to Netscape script engine limitations, calling the `alert()` function from within an SVG event handler might not work, and it might cause subsequent JavaScript to no longer execute. Similar problems occur for any Netscape modal window, including the security privileges window. This bug appears to have been partially fixed by Netscape in Netscape 4.75, but not on Windows 98.
7. There is a bug in Netscape involving plug-ins that use JavaScript. If you load a page with a plug-in that uses JavaScript and then disable Java and quit the browser, Netscape will crash.
8. Netscape does not always allow you to access the `document.embeds[]` array from within an SVG script. To work around this, use `document.mySVG`, where `mySVG` is the name of your embed object.
9. If you use "Print Preview" in Netscape on a page which contains plug-ins (such as the Adobe SVG Viewer), Netscape will crash. For a similar reason Netscape will crash when you try to print a page containing plug-ins using Acrobat Distiller.
10. If you use Netscape 4.0x to view the same SVG file in two windows, and that file uses a global JavaScript function on the window object, sometimes JavaScript will not initialize in the second window. The work-around is to upgrade to a more recent version of Netscape.
11. Due to a bug in Netscape 6, attempting to right-click within the SVG area to bring up context menu fails in Netscape 6. Instead, you get the Netscape 6 context menu.

## Revision History

### Changes since version 1.0 of the Adobe SVG Viewer

- Elements and Attributes:
  - Added support for the following elements: `altGlyph`, `altGlyphDef`, `font`, `font-face`, `glyph`, `glyphRef`, `hkern`, `missing-glyph`, `mpath`, `pattern`, and `vkern`.
  - Added support for the SVG Presentation Attributes.
  - Finished support for `use` element use of `symbol` elements.
  - Added support for the `spreadMethod` attribute on gradients.
  - Added support for the new attribute `primitiveUnits` on filter effects.
  - Added support for "discrete" mode for `feComponentTransfer`.
- CSS properties:
  - Added support for the following CSS properties: `alignment-baseline`, `direction`, `dominant-baseline`, `flood-color`, `flood-opacity`, `kerning`, `lighting-color`, `pointer-events`, and `unicode-bidi`. Support for the `pointer-events` property does not include support for transparency on raster elements.
  - Added support for the `font-variant` property, but only when applied to SVG fonts.
  - Removed support for the `baseline-identifier` property, which has been replaced with the `alignment-baseline` property in the most recently supported specification.
  - Changed the default values for the properties `clip-rule` and `fill-rule` from `even-odd` to `non-zero` to reflect the changes in the most recently supported specification.
  - The latest Candidate Recommendation draft specification for SVG changes the way CSS units are handled. They are now converted to user space on parse, rather than being converted at display time. This significantly changes the way the "Zoom" command works.
- DOM:
  - The Viewer's DOM Level 2 support now conforms to the Candidate Release specification for DOM 2, except for the `keyEvent` interface, which is not specified in the DOM 2 Candidate Release specification. Support for the `keyEvent` interface conforms to the last DOM 2 published version of that interface, in the 9/99 draft specification.
  - Added support for the `SVGRect` interface.
  - Added support for the `SVGPoint` interface, except for the method `matrixTransform`.
  - Added support for the `SVGTextContentElement` interface, except for the `getTextLength` and `getLengthAdjust` properties.
  - Added support for `rootElement`, `getRootElement`, `currentScale`, `getCurrentScale`, `setCurrentScale`, `currentTranslate`, `getCurrentTranslate`, and `setCurrentTranslate` on the `SVGDocument` interface.
  - Added support for the DOM2 methods `hasAttribute` and `hasAttributeNS` on the `Element` interface.
  - Added support for a new, non-standard, method on the `Document` object called `garbageCollect`. This method takes no parameters and returns no results. Calling this method will free up any Node objects that have previously been removed from the tree. If a script has performed an operation that results in the removal of a node from the tree, once the script has no further use for the removed (and returned) node, the script should call `garbageCollect` on the SVG document. Once called, any reference a script has to a node which was not part of the document when `garbageCollect` was called will always fail when its methods are accessed. This is only of benefit for Netscape browsers, since Netscape's LiveConnect does not offer weak reference support. For easy cross-platform support, this call can be made under Internet Explorer, but it will do nothing on that platform.
- Other Changes:
  - To conform to the latest Candidate Recommendation draft specification for SVG, support for `userSpace` units have been dropped.
  - Added support for user stylesheets. The SVG Viewer looks for a file named `SVG-User-Styles.css`, according to the following search strategy:

    Operating System | Paths Searched
    Windows 2000 | My Documents \Documents And Settings\<user>\Application Data \Documents And Settings\<user>\Local Settings\Application Data \Documents And Settings\All Users\Application Data
    Windows 98 | My Documents
    Windows NT | \WINNT\Profiles\<user>\Personal \WINNT\Profiles\<user>\Application Data
    Macintosh OS 8.x | System Folder:Preferences Startup Volume:Documents
    Macintosh OS 9.x (single-user) | System Folder:Preferences System Folder:Users:<user> Startup Volume:Documents
    Macintosh OS 9.x (multi-user) | Startup Volume:Users:<user>:Preferences Startup Volume:Documents

  - The Netscape plug-in now supports DOM access from Java clients.
  - The ActiveX control now supports non-JavaScript (e.g. Visual Basic) event handlers.
  - Modifications for Windows 2000 compatibility.
  - Added an alternate way to pan SVG graphics with the keyboard for accessibility. If the scroll-lock is on, the arrow keys will pan the SVG graphic that has the focus.
  - Performance enhancements involving multiple simultaneous animations within the same SVG file. SVG files with small, widely-spaced simultaneous animations should generally display faster in the current version than in Version 1.0.
  - Mac plug-in performance enhancements.
  - Improved support for vertical text.
  - Added support for bi-directional text.
  - General performance optimizations.
  - Modified `feImage` to work like the `use` element.
  - Updated support for PNG images.
  - Memory usage optimizations.
  - Added support for animating paths.

## Contact Information

To report bugs and/or provide feedback, please go to the SVG Zone on Adobe.com.

## Copyright Notice

© Copyright 1998-2000 by Adobe Systems Incorporated. All rights reserved.

Adobe and Illustrator are trademarks of Adobe Systems Incorporated. Windows and Windows NT are registered trademarks of Microsoft Corporation in the United States and/or other countries. Mac OS and TrueType are trademarks of Apple Computer, Inc. in the United States and/or other countries. All other trademarks are property of their respective owners.