Internet Explorer 8 and Acid2: A Milestone

As a team, we’ve spent the last year heads down working hard on IE8. Last week, we achieved an important milestone that should interest web developers. IE8 now renders the “Acid2 Face” correctly in IE8 standards mode.

Acid2 Face 

If you’re not a web developer, the details of this blog post probably aren’t all that interesting for you. I’d like you to know that we’re building IE8 for many different customers (consumers, web service providers, independent software vendors, enterprises, web developers, and others), and we’ll cover more details of the non-developer oriented work (e.g. user experience, reliability, security, etc.) in other posts in the future, after MIX.

While web developers will immediately recognize what Acid2 means, I want to step back and offer some context for other readers of this blog who may not be familiar with web standards. Briefly: Acid2 is one test of how modern browsers work with some specific features across several different web standards.

At first glance, this test seems simple. I think it actually offers a view into the subtle and complex world of web standards in a number of ways. Showing the Acid2 page correctly is a good indication of being standards compliant, but Acid2 itself isn’t a web standard or a web standards compliance test. The publisher of the test, the Web Standards Project, is an advocacy group, not a web standards defining body.

When we look at the long lists of standards (even from just one standards body, like the W3C), which standards are the most important for us to support? The web has many kinds of standards – true industry standards, like those from the W3C, de facto standards, unilateral standards, open standards, and more. Some standards like RSS or OpenSearch lack a formal standards body yet work pretty well today across multiple implementations. Many advances in web technologies, like the img tag, start out as unilateral extensions by a vendor. The X in AJAX, for example, has only started the formal standardization process relatively recently. As some comments have pointed out, CSS 2.1, one of the key standards that Acid2 exercises, is not “finalized” yet. Different individuals have different opinions about different standards. The important thing about the Acid2 test is that it reflects what one particular group of smart people “consider most important for the future of the web.”

The key goal (for the Web Standards Project as well as many other groups and individuals) is interoperability. As a developer, I’d prefer to not have to write the same site multiple times for different browsers. Standards are a (critical!) means to this end, and we focus on the standards that will help actual, real-world interoperability the most. As a consumer and a developer, I expect stuff to just work, and I also expect backwards compatibility. When I get a new version of my current browser, I expect all the sites that worked before will still work.

With respect to standards and interoperability, our goal in developing Internet Explorer 8 is to support the right set of standards with excellent implementations and do so without breaking the existing web. This second goal refers to the lessons we learned during IE 7. IE7’s CSS improvements made IE more compliant with some standards and less compatible with some sites on the web as they were coded. Many sites and developers have done special work to work well with IE6, mostly as a result of the evolution of the web and standards since 2001 and the level of support in the various versions of IE that pre-date many standards. We have a responsibility to respect the work that sites have already done to work with IE. We must deliver improved standards support and backwards compatibility so that IE8 (1) continues to work with the billions of pages on the web today that already work in IE6 and IE7 and (2) makes the development of the next billion pages, in an interoperable way, much easier. We’ll blog more, and learn more, about this during the IE8 beta cycle.

Now, with all that context, I’m delighted to tell you that on Wednesday, December 12, Internet Explorer correctly rendered the Acid2 page in IE8 standards mode. While supporting the features tested in Acid2 is important for many reasons, it is just one of several milestones for the interoperability, standards compliance, and backwards compatibility that we’re committed to for this release. We will blog more on these topics. Here’s a relevant video.

For IE8, we want to communicate facts, not aspirations. We’re posting this information now because we have real working code checked in and we’re confident about delivering it in the final product. We’re listening to the feedback about IE, and at the same time, we are committed to responsible disclosure and setting expectations properly. Now that we’ve run the test on multiple machines and seen it work, we’re excited to be able to share definitive information.

While blog posts and links to videos are a good start, publicly available code is even better. We will have a lot more information available at sessions at MIX08 and will release a beta of IE8 in the first half of calendar 2008.

Dean Hachamovitch
General Manager

p.s. The following is the actual code check-in mail from Friday that pushed the code changes from developers’ machines into the central IE build. I’ve removed references to email aliases and UNC paths. “DRTs” are tests that developers check-in along with their code, in case you’re wondering about the .htm .xml and .js below.

From: IE Builder
Sent: Friday, December 14, 2007 11:19 PM
To: IE Check-in Mail; IESnap System Notifications
Cc: alias1
Subject: [LONGHORN_IE8; Alias 1]: FW: Green RI #5

 

Checkin 3457 processed by SNAP:

Developer: [alias1]
Branch: LONGHORN_IE8
Change Number: inetcore: 149329
Code Review: [alias2]
Buddy Test: [alias3]; [alias4]
Logs Directory: <unc path to log>
Description: [alias1] Change Description: Reverse integration from green branch. Includes full implementation of ACID2 Appcompat Impact: none Risk: 1 Affects API documentation: No Resource Change: No Code reviewer(s): [alias2] Buddy tester(s): [alias3]; [alias4]

Files for changelist 149329 in inetcore depot:

Integrated Files

 //depot/longhorn_ie8/Inetcore/ieframe/shdocvw/hlframe.h
//depot/longhorn_ie8/Inetcore/ieframe/shdocvw/iedisp.cpp
//depot/longhorn_ie8/Inetcore/lib/network/dataprot/dataprot.cxx
//depot/longhorn_ie8/Inetcore/lib/network/dataprot/iel3/dataprot.pass0_publish_to_inetcore_internal_inc
//depot/longhorn_ie8/Inetcore/lib/network/dataprot/ut_dataprot/fakeurlmon.cxx
//depot/longhorn_ie8/Inetcore/mshtml/src/core/cdbase/base.cxx
//depot/longhorn_ie8/Inetcore/mshtml/src/core/cdbase/baseprop.cxx
//depot/longhorn_ie8/Inetcore/mshtml/src/core/cdutil/himetric.cxx
//depot/longhorn_ie8/Inetcore/mshtml/src/core/include/cdbase.hxx
//depot/longhorn_ie8/Inetcore/mshtml/src/core/wrappers/wininet.cxx
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/_auto.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/_auto_pt1a.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/ProxyNodes-Draw.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/center.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/clip.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/defaults-lr-tb.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/defaults-rl-tb.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/defaults-tb-rl.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/1paragraph.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/4paragraphs.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/acid2_v8_auto_noinherit.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/alignbaseline.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/ambiguoussid.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/bodytext.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/center.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/clip.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/counters_demo.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/defaults-lr-tb.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/gc_border.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/gc_divandspan.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/gc_dynamicremove.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/gc_emptystring.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/gc_selector.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/gc_width.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/layoutcontentmodel_blocks.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/list_basic.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/margin2.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/margin_neighborhood.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/nativecontrols.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/nativecontrols_border.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/nativecontrols_displayblock.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/nativecontrols_displayinline.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/nativecontrols_displayinlineblock.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/pagination_basic.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_border.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_displayblock.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_displayinline.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_displayinlineblock.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_iframe_sizing.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_img_ratio.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_img_ratio_minmax.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_maxheight.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_maxwidth.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_minheight.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_minwidth.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_padding.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_percentage_height.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_percentage_height_parent_auto.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_percentage_width.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_percentage_width_height.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/replacedcontrols_select.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/sizing_border_none.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/sizing_box-sizing.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/sizing_CENTER_non_overconstrained.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/sizing_min_max_widths_heigths.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/sizing_shrink_to_fit.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/sizing_shrink_to_fit_undefined.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/sizing_trel_borders_paddings_percentage.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/table_basic.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/table_caption.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/table_cellPadding.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/table_fixup01.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/table_fixup02.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/table_minmaxPass.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/table_minmaxPass2.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_alignment.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_AmbiguousSid1.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_AmbiguousSid2.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_HanScript1.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_HanScript2.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_HebrewArabic.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_ModWidth.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_overline.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_overline1.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_RenderingBug.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_strikethrough.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_strikethrough1.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_Telugu.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_texttransform.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_thai.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_verticalalign1.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_verticalalign2.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/text_WrongCharformat.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/underline.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/underlinebasic.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/displaytree/visibility.xml
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/iframe_quirks.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/iframe_standards.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/iframe_strict.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/layoutcontentmodel_blocks.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/list_basic.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/ratio2to1.png
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_iframe_sizing.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_img_ratio.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_img_ratio_minmax.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_maxheight.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_maxwidth.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_minheight.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_minwidth.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_padding.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_percentage_height.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_percentage_height_parent_auto.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_percentage_width.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/replacedcontrols_percentage_width_height.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/sizing_shrink_to_fit_undefined.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/table_cellPadding.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/table_minmaxPass.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/table_minmaxPass2.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/layout/standards/visibility.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/samples/ProxyNodes-Draw.htm
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/standards_all.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/standardsmode_control.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/standardsmode_general.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/standardsmode_sizing.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/standardsmode_table.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/standardsmode_text.js
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/tools/extractdisplaydumps/extractdisplaydumps.cs
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/tools/extractdisplaydumps/makefile
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/drt/tools/extractdisplaydumps/sources
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/htmlpad/dll/sources
//depot/longhorn_ie8/Inetcore/mshtml/src/f3/htmlpad/padauto.cxx
//depot/longhorn_ie8/Inetcore/mshtml/src/other/htmldlg/htmldlg.cxx
//depot/longhorn_ie8/Inetcore/mshtml/src/other/htmldlg/htmldlg.hxx
//depot/longhorn_ie8/Inetcore/mshtml/src/other/htmldlg/htmldlg.pdl
//depot/longhorn_ie8/Inetcore/mshtml/src/other/htmldlg/modeless.cxx
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/client/fsnmgen.h
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/LSCBK.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/LSCHP.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/LSCRLINE.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/LSCRSUBL.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/LSIMETH.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/LSOBJWARICHU.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/LSQLINE.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/LSUNICODESERV.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inc/PLSGECLIENT.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/DISPMISC.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/LSBREAKRECORDAPI.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/LSBREAKRECORDSUBLAPI.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/LsDisplayContext.h
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/LSDISPLAYFLAGS.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/LSLINE.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/LsQuerySpanInfoCore.h
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/LSSPANSERVICE.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/inci/LSTXTBR1.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/BORDERSERVICE.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/BREAKSUBL.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/Dispmain.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/Dispmisc.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/Disptext.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/DNUTILS.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/GROUPCHUNKEXT.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSBREAKRECORDAPI.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSBREAKRECORDSUBLAPI.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSCONTXT.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSCRLINE.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSCRSUBL.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSDNFIN.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LsDsply.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSFETCH.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LsMath.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSOBJRUBY.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSOBJWARICHU.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LsQCore.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LsQLine.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LsQSubl.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LsQuerySpanInfoCore.cpp
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSSPANSERVICE.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSTFSET.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/ls/src/LSTXTBR1.CPP
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inc/FSCBKGEN.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inc/FSCBKTXT.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inc/FSGEOM.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inc/FSPELCBK.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inc/FSTRELBREAKREC.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inc/FSTRELCBK.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inc/FSTRELCBKDS.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSADAPTERTOTRACK.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSMULTICOLUMNLAYOUTDS.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/fsoptimalparalayoutmanager.h
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSOPTIMALPARAMAIN.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSPAGEFMTSTATECORE.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSPAGEFMTSTATESERVICE.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/fsparaoptimizer.h
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSPELCORE.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSSPANLAYOUTDS.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSSUBPAGEAPI.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FsTableSrvCellsComn.H
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/fstextattobj.h
//depot/longhorn_ie8/Inetcore/mshtml/src/PTLS/5.0/pts/inci/FSTEXTCONTEXT.H