Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Webkit Sources Changes for BlackBerry - Bundle 695

  • Loading branch information...
commit 99677227ddfcb503051763360422598296d51f97 1 parent f6253c0
Stan Devitt sdevitt authored
Showing with 17,881 additions and 7,235 deletions.
  1. +6 −1 olympia/BugsSite/PrettyPatch/diff.rb
  2. +6 −0 olympia/JavaScriptCore/API/JSValueRef.cpp
  3. +1 −1  olympia/JavaScriptCore/JavaScriptCore.pri
  4. +1 −2  olympia/JavaScriptCore/JavaScriptCore.pro
  5. +1 −0  olympia/JavaScriptCore/runtime/JSGlobalData.cpp
  6. +32 −1 olympia/JavaScriptCore/runtime/RegExp.cpp
  7. +3 −0  olympia/JavaScriptCore/runtime/RegExp.h
  8. +34 −12 olympia/JavaScriptCore/runtime/UString.h
  9. +1 −1  olympia/JavaScriptCore/wtf/Platform.h
  10. +1 −3 olympia/JavaScriptCore/wtf/StringExtras.h
  11. +1 −0  olympia/JavaScriptCore/wtf/dtoa.cpp
  12. +10,183 −276 olympia/LayoutTests/ChangeLog
  13. +4 −0 olympia/LayoutTests/editing/execCommand/editing-nontext-node-crash-expected.txt
  14. +36 −0 olympia/LayoutTests/editing/execCommand/editing-nontext-node-crash.xhtml
  15. +2 −0  olympia/LayoutTests/fast/css/counters/counter-traverse-object-crash-expected.txt
  16. +17 −0 olympia/LayoutTests/fast/css/counters/counter-traverse-object-crash.html
  17. +6 −0 olympia/LayoutTests/fast/css/target-fragment-match.html
  18. +10 −0 olympia/LayoutTests/fast/dom/Geolocation/disconnected-frame-already-expected.txt
  19. +13 −0 olympia/LayoutTests/fast/dom/Geolocation/disconnected-frame-already.html
  20. +8 −0 olympia/LayoutTests/fast/dom/Geolocation/resources/disconnected-frame-already-inner1.html
  21. +8 −0 olympia/LayoutTests/fast/dom/Geolocation/resources/disconnected-frame-already-inner2.html
  22. +35 −0 olympia/LayoutTests/fast/dom/Geolocation/script-tests/disconnected-frame-already.js
  23. +6 −3 olympia/LayoutTests/fast/dom/Window/timer-resume-on-navigation-back.html
  24. +3 −2 olympia/LayoutTests/fast/dom/location-hash.html
  25. +14 −14 olympia/LayoutTests/fast/events/pageshow-pagehide-on-back-cached-with-frames-expected.txt
  26. +6 −3 olympia/LayoutTests/fast/events/pageshow-pagehide-on-back-cached-with-frames.html
  27. +2 −1  olympia/LayoutTests/fast/frames/resources/cached-page-1.html
  28. +2 −1  olympia/LayoutTests/fast/frames/resources/cached-page-2.html
  29. +2 −1  olympia/LayoutTests/fast/harness/resources/cached-page-1.html
  30. +2 −1  olympia/LayoutTests/fast/harness/resources/cached-page-with-data-urls.html
  31. +28 −24 olympia/LayoutTests/fast/history/history-length.html
  32. +5 −2 olympia/LayoutTests/fast/history/saves-state-after-fragment-nav.html
  33. +2 −0  olympia/LayoutTests/fast/images/large-size-image-crash-expected.txt
  34. +13 −0 olympia/LayoutTests/fast/images/large-size-image-crash.html
  35. +26 −0 olympia/LayoutTests/fast/inline/continuation-outlines-with-layers-2.html
  36. +1 −0  olympia/LayoutTests/fast/js/date-constructor-expected.txt
  37. +10 −0 olympia/LayoutTests/fast/js/parse-nan-expected.txt
  38. +13 −0 olympia/LayoutTests/fast/js/parse-nan.html
  39. +2 −0  olympia/LayoutTests/fast/js/script-tests/date-constructor.js
  40. +7 −0 olympia/LayoutTests/fast/js/script-tests/parse-nan.js
  41. +3 −2 olympia/LayoutTests/fast/loader/input-element-page-cache-crash.html
  42. +4 −3 olympia/LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back.html
  43. +20 −16 olympia/LayoutTests/fast/loader/stateobjects/pushstate-clears-forward-history.html
  44. +3 −0  olympia/LayoutTests/fast/loader/stateobjects/replacestate-base-illegal-expected.txt
  45. +26 −0 olympia/LayoutTests/fast/loader/stateobjects/replacestate-base-illegal.html
  46. +1 −0  olympia/LayoutTests/fast/loader/stateobjects/replacestate-base-legal-expected.txt
  47. +21 −0 olympia/LayoutTests/fast/loader/stateobjects/replacestate-base-legal.html
  48. +13 −0 olympia/LayoutTests/fast/loader/stateobjects/resources/replacestate-base-pass.html
  49. +3 −2 olympia/LayoutTests/fast/loader/subframe-navigate-during-main-frame-load.html
  50. +2 −1  olympia/LayoutTests/fast/replaced/replaced-percent-height-expected.txt
  51. +11 −6 olympia/LayoutTests/fast/replaced/replaced-percent-height.html
  52. +2 −0  olympia/LayoutTests/fast/ruby/ruby-remove-no-base-expected.txt
  53. +30 −0 olympia/LayoutTests/fast/ruby/ruby-remove-no-base.html
  54. +1 −2  olympia/LayoutTests/http/tests/history/redirect-js-document-location-before-load-expected.txt
  55. +1 −2  olympia/LayoutTests/http/tests/history/redirect-js-location-assign-before-load-expected.txt
  56. +1 −2  olympia/LayoutTests/http/tests/history/redirect-js-location-before-load-expected.txt
  57. +1 −2  olympia/LayoutTests/http/tests/history/redirect-js-location-href-before-load-expected.txt
  58. +2 −1  olympia/LayoutTests/http/tests/navigation/resources/document-location.js
  59. +15 −0 olympia/LayoutTests/http/tests/security/canvas-remote-read-remote-image-redirect-expected.txt
  60. +107 −0 olympia/LayoutTests/http/tests/security/canvas-remote-read-remote-image-redirect.html
  61. +1 −0  olympia/LayoutTests/platform/mac/fast/inline/continuation-outlines-with-layers-2-expected.checksum
  62. BIN  olympia/LayoutTests/platform/mac/fast/inline/continuation-outlines-with-layers-2-expected.png
  63. +49 −0 olympia/LayoutTests/platform/mac/fast/inline/continuation-outlines-with-layers-2-expected.txt
  64. +1 −0  olympia/LayoutTests/platform/mac/svg/custom/use-font-face-crash-expected.checksum
  65. BIN  olympia/LayoutTests/platform/mac/svg/custom/use-font-face-crash-expected.png
  66. +23 −0 olympia/LayoutTests/platform/mac/svg/custom/use-font-face-crash-expected.txt
  67. +197 −7 olympia/LayoutTests/platform/olympia/Skipped
  68. +11 −11 olympia/LayoutTests/platform/olympia/animations/animation-drt-api-expected.txt
  69. +11 −12 olympia/LayoutTests/platform/olympia/animations/animation-drt-api-multiple-keyframes-expected.txt
  70. +11 −11 olympia/LayoutTests/platform/olympia/animations/state-at-end-event-expected.txt
  71. +71 −71 olympia/LayoutTests/platform/olympia/css1/basic/class_as_selector-expected.txt
  72. +98 −98 olympia/LayoutTests/platform/olympia/css1/basic/comments-expected.txt
  73. +212 −217 olympia/LayoutTests/platform/olympia/css1/basic/containment-expected.txt
  74. +77 −78 olympia/LayoutTests/platform/olympia/css1/basic/contextual_selectors-expected.txt
  75. +38 −38 olympia/LayoutTests/platform/olympia/css1/basic/grouping-expected.txt
  76. +90 −90 olympia/LayoutTests/platform/olympia/css1/basic/id_as_selector-expected.txt
  77. +187 −189 olympia/LayoutTests/platform/olympia/css1/basic/inheritance-expected.txt
  78. +189 −187 olympia/LayoutTests/platform/olympia/css1/box_properties/border-expected.txt
  79. +163 −164 olympia/LayoutTests/platform/olympia/css1/box_properties/border_bottom-expected.txt
  80. +56 −55 olympia/LayoutTests/platform/olympia/css1/box_properties/border_bottom_inline-expected.txt
  81. +102 −101 olympia/LayoutTests/platform/olympia/css1/box_properties/border_bottom_width-expected.txt
  82. +81 −83 olympia/LayoutTests/platform/olympia/css1/box_properties/border_bottom_width_inline-expected.txt
  83. +45 −45 olympia/LayoutTests/platform/olympia/css1/box_properties/border_color-expected.txt
  84. +73 −72 olympia/LayoutTests/platform/olympia/css1/box_properties/border_color_inline-expected.txt
  85. +56 −55 olympia/LayoutTests/platform/olympia/css1/box_properties/border_inline-expected.txt
  86. +163 −163 olympia/LayoutTests/platform/olympia/css1/box_properties/border_left-expected.txt
  87. +58 −58 olympia/LayoutTests/platform/olympia/css1/box_properties/border_left_inline-expected.txt
  88. +103 −104 olympia/LayoutTests/platform/olympia/css1/box_properties/border_left_width-expected.txt
  89. +91 −93 olympia/LayoutTests/platform/olympia/css1/box_properties/border_left_width_inline-expected.txt
  90. +58 −57 olympia/LayoutTests/platform/olympia/css1/box_properties/border_right-expected.txt
  91. +167 −170 olympia/LayoutTests/platform/olympia/css1/box_properties/border_right_inline-expected.txt
  92. +103 −104 olympia/LayoutTests/platform/olympia/css1/box_properties/border_right_width-expected.txt
  93. +92 −93 olympia/LayoutTests/platform/olympia/css1/box_properties/border_right_width_inline-expected.txt
  94. +119 −119 olympia/LayoutTests/platform/olympia/css1/box_properties/border_style-expected.txt
  95. +65 −67 olympia/LayoutTests/platform/olympia/css1/box_properties/border_style_inline-expected.txt
  96. +149 −149 olympia/LayoutTests/platform/olympia/css1/box_properties/border_top-expected.txt
  97. +56 −56 olympia/LayoutTests/platform/olympia/css1/box_properties/border_top_inline-expected.txt
  98. +96 −96 olympia/LayoutTests/platform/olympia/css1/box_properties/border_top_width-expected.txt
  99. +81 −82 olympia/LayoutTests/platform/olympia/css1/box_properties/border_top_width_inline-expected.txt
  100. +96 −97 olympia/LayoutTests/platform/olympia/css1/box_properties/border_width-expected.txt
  101. +80 −81 olympia/LayoutTests/platform/olympia/css1/box_properties/border_width_inline-expected.txt
  102. +94 −96 olympia/LayoutTests/platform/olympia/css1/box_properties/clear-expected.txt
  103. +159 −160 olympia/LayoutTests/platform/olympia/css1/box_properties/clear_float-expected.txt
  104. +49 −51 olympia/LayoutTests/platform/olympia/css1/box_properties/float-expected.txt
  105. +131 −131 olympia/LayoutTests/platform/olympia/css1/box_properties/float_elements_in_series-expected.txt
  106. +44 −44 olympia/LayoutTests/platform/olympia/css1/box_properties/float_margin-expected.txt
  107. +376 −381 olympia/LayoutTests/platform/olympia/css1/box_properties/float_on_text_elements-expected.txt
  108. +61 −61 olympia/LayoutTests/platform/olympia/css1/box_properties/height-expected.txt
  109. +175 −174 olympia/LayoutTests/platform/olympia/css1/box_properties/margin-expected.txt
  110. +150 −151 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_bottom-expected.txt
  111. +93 −93 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_bottom_inline-expected.txt
  112. +125 −129 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_inline-expected.txt
  113. +123 −123 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_left-expected.txt
  114. +97 −93 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_left_inline-expected.txt
  115. +123 −123 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_right-expected.txt
  116. +97 −94 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_right_inline-expected.txt
  117. +137 −139 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_top-expected.txt
  118. +94 −96 olympia/LayoutTests/platform/olympia/css1/box_properties/margin_top_inline-expected.txt
  119. +99 −99 olympia/LayoutTests/platform/olympia/css1/box_properties/padding-expected.txt
  120. +96 −101 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_bottom-expected.txt
  121. +98 −98 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_bottom_inline-expected.txt
  122. +127 −130 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_inline-expected.txt
  123. +118 −121 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_left-expected.txt
  124. +98 −95 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_left_inline-expected.txt
  125. +131 −138 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_right-expected.txt
  126. +98 −96 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_right_inline-expected.txt
  127. +89 −91 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_top-expected.txt
  128. +97 −98 olympia/LayoutTests/platform/olympia/css1/box_properties/padding_top_inline-expected.txt
  129. +81 −83 olympia/LayoutTests/platform/olympia/css1/box_properties/width-expected.txt
  130. +142 −142 olympia/LayoutTests/platform/olympia/css1/cascade/cascade_order-expected.txt
  131. +68 −71 olympia/LayoutTests/platform/olympia/css1/cascade/important-expected.txt
  132. +129 −129 olympia/LayoutTests/platform/olympia/css1/classification/display-expected.txt
  133. +43 −43 olympia/LayoutTests/platform/olympia/css1/classification/list_style-expected.txt
Sorry, we could not display the entire diff because too many files (2,052) changed.
7 olympia/BugsSite/PrettyPatch/diff.rb
View
@@ -106,7 +106,12 @@ def find_match(start_in_old, end_in_old, start_in_new, end_in_new)
best_match_size = 0
match_length_at = Hash.new { |h, index| h[index] = 0 }
-
+
+ # Tests with large amounts of diffs take too long to process.
+ if end_in_old > 10000 or end_in_new > 10000
+ puts "WARNING: pretty diff not executed due to a large amount of comparison indexes: [#{end_in_old}] <> [#{end_in_new}]"
+ return nil
+ end
start_in_old.upto(end_in_old - 1) do |index_in_old|
new_match_length_at = Hash.new { |h, index| h[index] = 0 }
6 olympia/JavaScriptCore/API/JSValueRef.cpp
View
@@ -213,6 +213,12 @@ JSValueRef JSValueMakeNumber(JSContextRef ctx, double value)
ExecState* exec = toJS(ctx);
APIEntryShim entryShim(exec);
+ // Our JSValue representation relies on a standard bit pattern for NaN. NaNs
+ // generated internally to JavaScriptCore naturally have that representation,
+ // but an external NaN might not.
+ if (isnan(value))
+ value = NaN;
+
return toRef(exec, jsNumber(exec, value));
}
2  olympia/JavaScriptCore/JavaScriptCore.pri
View
@@ -108,7 +108,7 @@ defineTest(addJavaScriptCoreLib) {
}
OLYMPIA_PTHREAD = $$(FEATURE_OLYMPIA_PTHREAD)
-!isEmpty(OLYMPIA_PTHREAD) {
+isEmpty(OLYMPIA_PTHREAD) {
DEFINES += ENABLE_JSC_MULTIPLE_THREADS=0
DEFINES += WTF_USE_PTHREADS=1
} else {
3  olympia/JavaScriptCore/JavaScriptCore.pro
View
@@ -237,8 +237,7 @@ SOURCES += \
yarr/RegexJIT.cpp
-OLYMPIA_PTHREAD = $$(FEATURE_OLYMPIA_PTHREAD)
-!isEmpty(OLYMPIA_PTHREAD) {
+isEmpty(OLYMPIA_PTHREAD) {
SOURCES += wtf/ThreadingPthreads.cpp \
wtf/ThreadIdentifierDataPthreads.cpp
HEADERS += wtf/ThreadIdentifierDataPthreads.h
1  olympia/JavaScriptCore/runtime/JSGlobalData.cpp
View
@@ -273,6 +273,7 @@ void JSGlobalData::resetDateCache()
cachedUTCOffset = NaN;
dstOffsetCache.reset();
cachedDateString = UString();
+ cachedDateStringValue = NaN;
dateInstanceCache.reset();
}
33 olympia/JavaScriptCore/runtime/RegExp.cpp
View
@@ -51,6 +51,7 @@ inline RegExp::RegExp(JSGlobalData* globalData, const UString& pattern)
, m_flagBits(0)
, m_constructionError(0)
, m_numSubpatterns(0)
+ , m_lastMatchStart(-1)
{
compile(globalData);
}
@@ -60,6 +61,7 @@ inline RegExp::RegExp(JSGlobalData* globalData, const UString& pattern, const US
, m_flagBits(0)
, m_constructionError(0)
, m_numSubpatterns(0)
+ , m_lastMatchStart(-1)
{
// NOTE: The global flag is handled on a case-by-case basis by functions like
// String::match and RegExpObject::match.
@@ -109,8 +111,24 @@ int RegExp::match(const UString& s, int startOffset, Vector<int, 32>* ovector)
if (ovector)
ovector->resize(0);
- if (static_cast<unsigned>(startOffset) > s.size() || s.isNull())
+ if (static_cast<unsigned>(startOffset) > s.size() || s.isNull()) {
+ m_lastMatchString = UString();
+ m_lastMatchStart = -1;
+ m_lastOVector.shrink(0);
return -1;
+ }
+
+ // Perform check to see if this match call is the same as the last match invocation
+ // and if it is return the prior result.
+ if ((startOffset == m_lastMatchStart) && (s.rep() == m_lastMatchString.rep())) {
+ if (ovector)
+ *ovector = m_lastOVector;
+
+ if (m_lastOVector.isEmpty())
+ return -1;
+
+ return m_lastOVector.at(0);
+ }
#if ENABLE(YARR_JIT)
if (!!m_regExpJITCode) {
@@ -147,9 +165,22 @@ int RegExp::match(const UString& s, int startOffset, Vector<int, 32>* ovector)
if (ovector)
ovector->clear();
}
+
+ m_lastMatchString = s;
+ m_lastMatchStart = startOffset;
+
+ if (ovector)
+ m_lastOVector = *ovector;
+ else
+ m_lastOVector = nonReturnedOvector;
+
return result;
}
+ m_lastMatchString = UString();
+ m_lastMatchStart = -1;
+ m_lastOVector.shrink(0);
+
return -1;
}
3  olympia/JavaScriptCore/runtime/RegExp.h
View
@@ -67,6 +67,9 @@ namespace JSC {
int m_flagBits;
const char* m_constructionError;
unsigned m_numSubpatterns;
+ UString m_lastMatchString;
+ int m_lastMatchStart;
+ Vector<int, 32> m_lastOVector;
#if ENABLE(YARR_JIT)
Yarr::RegexCodeBlock m_regExpJITCode;
46 olympia/JavaScriptCore/runtime/UString.h
View
@@ -158,21 +158,43 @@ namespace JSC {
ALWAYS_INLINE bool operator==(const UString& s1, const UString& s2)
{
- unsigned size = s1.size();
- switch (size) {
- case 0:
- return !s2.size();
+ UString::Rep* rep1 = s1.rep();
+ UString::Rep* rep2 = s2.rep();
+ unsigned size1 = 0;
+ unsigned size2 = 0;
+
+ if (rep1 == rep2) // If they're the same rep, they're equal.
+ return true;
+
+ if (rep1)
+ size1 = rep1->length();
+
+ if (rep2)
+ size2 = rep2->length();
+
+ if (size1 != size2) // If the lengths are not the same, we're done.
+ return false;
+
+ if (!size1)
+ return true;
+
+ // At this point we know
+ // (a) that the strings are the same length and
+ // (b) that they are greater than zero length.
+ const UChar* d1 = rep1->characters();
+ const UChar* d2 = rep2->characters();
+
+ if (d1 == d2) // Check to see if the data pointers are the same.
+ return true;
+
+ // Do quick checks for sizes 1 and 2.
+ switch (size1) {
case 1:
- return s2.size() == 1 && s1.data()[0] == s2.data()[0];
- case 2: {
- if (s2.size() != 2)
- return false;
- const UChar* d1 = s1.data();
- const UChar* d2 = s2.data();
+ return d1[0] == d2[0];
+ case 2:
return (d1[0] == d2[0]) & (d1[1] == d2[1]);
- }
default:
- return s2.size() == size && memcmp(s1.data(), s2.data(), size * sizeof(UChar)) == 0;
+ return memcmp(d1, d2, size1 * sizeof(UChar)) == 0;
}
}
2  olympia/JavaScriptCore/wtf/Platform.h
View
@@ -947,7 +947,7 @@
|| CPU(ALPHA) \
|| CPU(SPARC64)
#define WTF_USE_JSVALUE64 1
-#elif CPU(ARM) || CPU(PPC64) || CPU(MIPS)
+#elif (CPU(ARM) && !OS(OLYMPIA)) || CPU(PPC64) || CPU(MIPS)
#define WTF_USE_JSVALUE32 1
#elif OS(WINDOWS) && COMPILER(MINGW)
/* Using JSVALUE32_64 causes padding/alignement issues for JITStubArg
4 olympia/JavaScriptCore/wtf/StringExtras.h
View
@@ -33,10 +33,9 @@
#include <strings.h>
#endif
-#if COMPILER(MSVC)
+#if COMPILER(MSVC) && !PLATFORM(OLYMPIA)
// FIXME: why a COMPILER check instead of OS? also, these should be HAVE checks
-#if !PLATFORM(OLYMPIA)
inline int snprintf(char* buffer, size_t count, const char* format, ...)
{
int result;
@@ -46,7 +45,6 @@ inline int snprintf(char* buffer, size_t count, const char* format, ...)
va_end(args);
return result;
}
-#endif
#if COMPILER(MSVC7_OR_LOWER) || OS(WINCE)
1  olympia/JavaScriptCore/wtf/dtoa.cpp
View
@@ -168,6 +168,7 @@
#endif
#define INFNAN_CHECK
+#define No_Hex_NaN
#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(IEEE_ARM) != 1
Exactly one of IEEE_8087, IEEE_ARM or IEEE_MC68k should be defined.
10,459 olympia/LayoutTests/ChangeLog
View
10,183 additions, 276 deletions not shown
4 olympia/LayoutTests/editing/execCommand/editing-nontext-node-crash-expected.txt
View
@@ -0,0 +1,4 @@
+This tests passes if it does not crash.
+
+PASS
+
36 olympia/LayoutTests/editing/execCommand/editing-nontext-node-crash.xhtml
View
@@ -0,0 +1,36 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <script>//<![CDATA[
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+
+ var selection = window.getSelection();
+ function runEditingTest() {
+ var elem = document.getElementById("test2");
+ selection.setPosition(elem, 0);
+ for (i = 0; i < 21; i++)
+ selection.modify("move", "forward", "character");
+ document.execCommand("Delete");
+
+ // Test completed without crash.
+ document.getElementById("test1").removeChild(elem);
+ document.getElementById("result").innerHTML = "PASS";
+ }
+ //]]></script>
+ </head>
+ <body onload="runEditingTest()">
+ <p>This tests passes if it does not crash.</p>
+ <div id="result"></div>
+ <div id="test1" contenteditable="">
+ <span id="test2">Something Something <br/>
+ <svg xmlns="http://www.w3.org/2000/svg">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
+ </body>
+ </html>
+ </svg>
+ </span>
+ </div>
+ </body>
+</html>
+
2  olympia/LayoutTests/fast/css/counters/counter-traverse-object-crash-expected.txt
View
@@ -0,0 +1,2 @@
+This tests that we do not crash when RenderCounter traverses detached render trees. PASS
+
17 olympia/LayoutTests/fast/css/counters/counter-traverse-object-crash.html
View
@@ -0,0 +1,17 @@
+<html>
+ <script>
+ function test()
+ {
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+ document.getElementsByTagName("div")[0].outerHTML = "PASS";
+ }
+ </script>
+ This tests that we do not crash when RenderCounter traverses detached render trees.
+ <body onload="test()" style="counter-increment: ctr">
+ <object>
+ <b style="counter-increment: ctr"><div></div></b>
+ <menu style="counter-increment: ctr"></menu>
+ </object>
+ </body>
+</html>
6 olympia/LayoutTests/fast/css/target-fragment-match.html
View
@@ -11,6 +11,12 @@
{
if (window.layoutTestController)
layoutTestController.waitUntilDone();
+
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(runTest, 0);
+}
+
+function runTest() {
window.location.hash ='#target-01';
document.body.offsetTop;
window.history.back(); // This queues up a navigation, so we need to delay the call to notifyDone.
10 olympia/LayoutTests/fast/dom/Geolocation/disconnected-frame-already-expected.txt
View
@@ -0,0 +1,10 @@
+Tests that when a request is made on a Geolocation object after its frame has been disconnected, no callbacks are made and no crash occurs.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Method called on Geolocation object with disconnected Frame.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
13 olympia/LayoutTests/fast/dom/Geolocation/disconnected-frame-already.html
View
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css">
+<script src="../../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/disconnected-frame-already.js"></script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
8 olympia/LayoutTests/fast/dom/Geolocation/resources/disconnected-frame-already-inner1.html
View
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ </head>
+ <body onload="window.parent.onFirstIframeLoaded()">
+ <p>This frame should be replaced before the test ends</p>
+ </body>
+</html>
8 olympia/LayoutTests/fast/dom/Geolocation/resources/disconnected-frame-already-inner2.html
View
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ </head>
+ <body onload="window.parent.onSecondIframeLoaded()">
+ <p>This frame should be visible when the test completes</p>
+ </body>
+</html>
35 olympia/LayoutTests/fast/dom/Geolocation/script-tests/disconnected-frame-already.js
View
@@ -0,0 +1,35 @@
+description("Tests that when a request is made on a Geolocation object after its frame has been disconnected, no callbacks are made and no crash occurs.");
+
+if (window.layoutTestController) {
+ layoutTestController.setGeolocationPermission(true);
+ layoutTestController.setMockGeolocationPosition(51.478, -0.166, 100);
+}
+
+function onFirstIframeLoaded() {
+ iframeGeolocation = iframe.contentWindow.navigator.geolocation;
+ iframe.src = 'resources/disconnected-frame-already-inner2.html';
+}
+
+var error;
+function onSecondIframeLoaded() {
+ iframeGeolocation.getCurrentPosition(function () {
+ testFailed('Success callback invoked unexpectedly');
+ finishJSTest();
+ }, function(e) {
+ testFailed('Error callback invoked unexpectedly');
+ finishJSTest();
+ });
+ setTimeout(finishTest, 1000);
+}
+
+function finishTest() {
+ debug('Method called on Geolocation object with disconnected Frame.');
+ finishJSTest();
+}
+
+var iframe = document.createElement('iframe');
+iframe.src = 'resources/disconnected-frame-already-inner1.html';
+document.body.appendChild(iframe);
+
+window.jsTestIsAsync = true;
+window.successfullyParsed = true;
9 olympia/LayoutTests/fast/dom/Window/timer-resume-on-navigation-back.html
View
@@ -18,9 +18,12 @@
layoutTestController.waitUntilDone();
layoutTestController.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
}
- window.setTimeout("verify()", timeoutValue);
- timestamp = new Date().getTime();
- window.location.href = "data:text/html,<body onload='history.back()'></body>";
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {
+ window.setTimeout(verify, timeoutValue);
+ timestamp = new Date().getTime();
+ window.location.href = "data:text/html,<body onload='history.back()'></body>";
+ }, 0);
}
</script>
5 olympia/LayoutTests/fast/dom/location-hash.html
View
@@ -87,8 +87,9 @@
numErrors = 0;
originalLocation = window.location.href;
originalHistoryLength = window.history.length;
-
- step();
+
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(step, 0);
}
</script>
</head>
28 olympia/LayoutTests/fast/events/pageshow-pagehide-on-back-cached-with-frames-expected.txt
View
@@ -1,16 +1,16 @@
+CONSOLE MESSAGE: line 20: ***Top level frame being parsed for the initial page load***
+CONSOLE MESSAGE: line 20: Subsubframe window.onload
+CONSOLE MESSAGE: line 20: Subsubframe window.onpageshow, target = [object HTMLDocument], persisted = false
+CONSOLE MESSAGE: line 20: Subframe window.onload
+CONSOLE MESSAGE: line 20: Subframe window.onpageshow, target = [object HTMLDocument], persisted = false
+CONSOLE MESSAGE: line 20: Main frame window.onload
+CONSOLE MESSAGE: line 20: Main frame window.onpageshow, target = [object HTMLDocument], persisted = false
+CONSOLE MESSAGE: line 20: ***Navigating top-level frame to a page that will immediately navigate back to this one***
+CONSOLE MESSAGE: line 20: Main frame window.onpagehide, target = [object HTMLDocument], persisted = true
+CONSOLE MESSAGE: line 20: Subframe window.onpagehide, target = [object HTMLDocument], persisted = true
+CONSOLE MESSAGE: line 20: Subsubframe window.onpagehide, target = [object HTMLDocument], persisted = true
+CONSOLE MESSAGE: line 20: Subsubframe window.onpageshow, target = [object HTMLDocument], persisted = true
+CONSOLE MESSAGE: line 20: Subframe window.onpageshow, target = [object HTMLDocument], persisted = true
+CONSOLE MESSAGE: line 20: Main frame window.onpageshow, target = [object HTMLDocument], persisted = true
Test pageshow/pagehide event behavior when navigating away from a page with frames, putting the page in the page cache, then back to it.
-***Top level frame being parsed for the initial page load***
-Subsubframe window.onload
-Subsubframe window.onpageshow, target = [object HTMLDocument], persisted = false
-Subframe window.onload
-Subframe window.onpageshow, target = [object HTMLDocument], persisted = false
-Main frame window.onload
-Main frame window.onpageshow, target = [object HTMLDocument], persisted = false
-***Navigating top-level frame to a page that will immediately navigate back to this one***
-Main frame window.onpagehide, target = [object HTMLDocument], persisted = true
-Subframe window.onpagehide, target = [object HTMLDocument], persisted = true
-Subsubframe window.onpagehide, target = [object HTMLDocument], persisted = true
-Subsubframe window.onpageshow, target = [object HTMLDocument], persisted = true
-Subframe window.onpageshow, target = [object HTMLDocument], persisted = true
-Main frame window.onpageshow, target = [object HTMLDocument], persisted = true
9 olympia/LayoutTests/fast/events/pageshow-pagehide-on-back-cached-with-frames.html
View
@@ -14,8 +14,10 @@
function log(message)
{
- var log = document.getElementById("log");
- log.innerHTML += message + "\n";
+ // Logging to the console instead of the "log" DIV in the DOM because
+ // otherwise we trigger the assert mentioned at http://webkit.org/b/43152
+ // (since we log during pagehide)
+ console.log(message);
}
log("***Top level frame being parsed for the initial page load***");
@@ -31,7 +33,8 @@
layoutTestController.notifyDone();
} else {
log("***Navigating top-level frame to a page that will immediately navigate back to this one***");
- window.location.href = "data:text/html,<script>history.back();</scr" + "ipt>";
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {window.location.href = "data:text/html,<script>history.back();</scr" + "ipt>";}, 0);
}
}
3  olympia/LayoutTests/fast/frames/resources/cached-page-1.html
View
@@ -17,7 +17,8 @@
intervalId = setInterval(endTest, 100);
window.opener.log("page-1, about to navigate to page-2.")
- location.href = "cached-page-2.html";
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {location.href = "cached-page-2.html";}, 0);
}
// This unload handler exists just to make sure this page is not added
3  olympia/LayoutTests/fast/frames/resources/cached-page-2.html
View
@@ -19,7 +19,8 @@
intervalId = setInterval(goBack, 20);
window.opener.log("page-2, about to navigate to page-3.")
- location.href = "cached-page-3.html";
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {location.href = "cached-page-3.html";}, 0);
}
</script>
<body onload="loadNext()">
3  olympia/LayoutTests/fast/harness/resources/cached-page-1.html
View
@@ -22,7 +22,8 @@
intervalId = setInterval(check, 10);
window.opener.log("page-1, about to navigate to page-2.")
- location.href = "cached-page-2.html";
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {location.href = "cached-page-2.html";}, 0);
}
</script>
<body onload="loadNext()"></body>
3  olympia/LayoutTests/fast/harness/resources/cached-page-with-data-urls.html
View
@@ -18,7 +18,8 @@
intervalId = setInterval(check, 10);
window.opener.log("page with data urls, about to navigate to page-2.")
- location.href = "cached-page-2.html";
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {location.href = "cached-page-2.html";}, 0);
}
</script>
<body onload="loadNext()">
52 olympia/LayoutTests/fast/history/history-length.html
View
@@ -8,30 +8,34 @@
layoutTestController.waitUntilDone();
}
}
- // This test advances history by 2 pages, then navigates back one, and
- // records history.length. We expect history.length to indicate the total
- // length of session history. At the end of the test, it should be 2 greater
- // than it was at the start of the test.
- switch (sessionStorage.testStage++) {
- case 0:
- sessionStorage.initialLength = history.length;
- location = "?a";
- break;
- case 1:
- location = "?b";
- break;
- case 2:
- history.back();
- break;
- case 3:
- if (history.length == (sessionStorage.initialLength - 0) + 2)
- document.body.innerHTML = "PASS";
- else
- document.body.innerHTML = "FAIL: initialLength=" + sessionStorage.initialLength + ", history.length=" + history.length;
- if (window.layoutTestController)
- layoutTestController.notifyDone();
- break;
- }
+
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {
+ // This test advances history by 2 pages, then navigates back one, and
+ // records history.length. We expect history.length to indicate the total
+ // length of session history. At the end of the test, it should be 2 greater
+ // than it was at the start of the test.
+ switch (sessionStorage.testStage++) {
+ case 0:
+ sessionStorage.initialLength = history.length;
+ location = "?a";
+ break;
+ case 1:
+ location = "?b";
+ break;
+ case 2:
+ history.back();
+ break;
+ case 3:
+ if (history.length == (sessionStorage.initialLength - 0) + 2)
+ document.body.innerHTML = "PASS";
+ else
+ document.body.innerHTML = "FAIL: initialLength=" + sessionStorage.initialLength + ", history.length=" + history.length;
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ break;
+ }
+ }, 0);
}
onunload = function() {
// disable page cache
7 olympia/LayoutTests/fast/history/saves-state-after-fragment-nav.html
View
@@ -30,8 +30,11 @@
layoutTestController.dumpAsText();
layoutTestController.waitUntilDone();
}
- navigateToHash(field);
- navigateAwayAndBack();
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {
+ navigateToHash(field);
+ navigateAwayAndBack();
+ }, 0);
} else {
document.body.innerHTML = (field.value == '') ? 'FAIL' : 'PASS';
if (window.layoutTestController)
2  olympia/LayoutTests/fast/images/large-size-image-crash-expected.txt
View
@@ -0,0 +1,2 @@
+
+PASS
13 olympia/LayoutTests/fast/images/large-size-image-crash.html
View
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script>
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+ </script>
+ </head>
+ <body>
+ <img src="resources/large-size-image-crash.jpeg">
+ <p>PASS</p>
+ </body>
+</html>
+
26 olympia/LayoutTests/fast/inline/continuation-outlines-with-layers-2.html
View
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<style>
+ div.container { margin: 16px 0; }
+ span.outer { font-size: 50px; background-color: white; font-family: ahem; }
+ span.inner { outline: 5px auto green; padding: 0 10px; }
+</style>
+<p>
+ This should be an unobscured fuzzy green polygon:
+</p>
+<div class="container">
+ <span class="outer" style="position: relative;">
+ &nbsp;<span class="inner">
+ &nbsp;<div></div>&nbsp;
+ </span>
+ </span>
+</div>
+<p>
+ This is just for reference:
+</p>
+<div class="container">
+ <span class="outer">
+ &nbsp;<span class="inner">
+ &nbsp;<div></div>&nbsp;
+ </span>
+ </span>
+</div>
1  olympia/LayoutTests/fast/js/date-constructor-expected.txt
View
@@ -3,6 +3,7 @@ This test case tests the Date constructor. In particular, it tests many cases of
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+PASS isNaN(new Date("")) is true
PASS new Date(1111).getTime() is 1111
PASS new Date(object).getTime() is 1111
PASS new Date(new Date(1111)).getTime() is 1111
10 olympia/LayoutTests/fast/js/parse-nan-expected.txt
View
@@ -0,0 +1,10 @@
+This test checks for a crash when parsing NaN. You should see the text 'NaN' below.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+NaN
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
13 olympia/LayoutTests/fast/js/parse-nan.html
View
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="resources/js-test-style.css">
+<script src="resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/parse-nan.js"></script>
+<script src="resources/js-test-post.js"></script>
+</body>
+</html>
2  olympia/LayoutTests/fast/js/script-tests/date-constructor.js
View
@@ -8,6 +8,8 @@ var object = new Object;
object.valueOf = function() { return 1111; }
object.toSTring = function() { return "2222"; }
+shouldBe('isNaN(new Date(""))', 'true');
+
var timeZoneOffset = Date.parse("Dec 25 1995") - Date.parse("Dec 25 1995 GMT");
shouldBe('new Date(1111).getTime()', '1111');
7 olympia/LayoutTests/fast/js/script-tests/parse-nan.js
View
@@ -0,0 +1,7 @@
+description(
+"This test checks for a crash when parsing NaN. You should see the text 'NaN' below."
+);
+
+debug(-parseFloat("NAN(ffffeeeeeff0f)"));
+
+var successfullyParsed = true;
5 olympia/LayoutTests/fast/loader/input-element-page-cache-crash.html
View
@@ -13,8 +13,9 @@
var input = document.getElementById("testinput");
input.setAttribute("autocomplete", "on");
input.parentNode.removeChild(input);
-
- window.location = "data:text/html,<script>history.back();</scrip" + "t>";
+
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {window.location = "data:text/html,<script>history.back();</scrip" + "t>";}, 0);
}
function pageHidden()
7 olympia/LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back.html
View
@@ -33,9 +33,10 @@
function loaded()
{
- if (!sessionStorage.stage)
- runFirstStageOfTest();
- else if (sessionStorage.stage == 2)
+ if (!sessionStorage.stage) {
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(runFirstStageOfTest, 0);
+ } else if (sessionStorage.stage == 2)
runSecondStageOfTest();
else if (sessionStorage.stage == 3)
runThirdStageOfTest();
36 olympia/LayoutTests/fast/loader/stateobjects/pushstate-clears-forward-history.html
View
@@ -8,22 +8,26 @@
layoutTestController.waitUntilDone();
}
}
- switch (sessionStorage.testStage++) {
- case 0:
- location = "?a";
- break;
- case 1:
- location = "?b";
- break;
- case 2:
- history.back();
- break;
- case 3:
- history.pushState(null, null);
- if (window.layoutTestController)
- layoutTestController.notifyDone();
- break;
- }
+
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {
+ switch (sessionStorage.testStage++) {
+ case 0:
+ location = "?a";
+ break;
+ case 1:
+ location = "?b";
+ break;
+ case 2:
+ history.back();
+ break;
+ case 3:
+ history.pushState(null, null);
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ break;
+ }
+ }, 0);
}
onunload = function() {
// disable page cache
3  olympia/LayoutTests/fast/loader/stateobjects/replacestate-base-illegal-expected.txt
View
@@ -0,0 +1,3 @@
+This page should trigger an error on attempting to set the URL bar to https://www.test.com/
+
+PASS: Security exception thrown.
26 olympia/LayoutTests/fast/loader/stateobjects/replacestate-base-illegal.html
View
@@ -0,0 +1,26 @@
+<html>
+<head>
+<base href="https://www.test.com/">
+<script>
+if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+
+window.onload = function(){
+ var msg;
+ try {
+ window.history.replaceState({}, {}, 'https://www.test.com/');
+ msg = document.createTextNode("FAIL: URL bar was changed.");
+ } catch (e) {
+ if (e.code == 18)
+ msg = document.createTextNode("PASS: Security exception thrown.");
+ else
+ msg = document.createTextNode("FAIL: Unknown exception thrown.");
+ }
+ document.body.appendChild(msg);
+};
+</script>
+</head>
+<body>
+<p>This page should trigger an error on attempting to set the URL bar to https://www.test.com/</p>
+</body>
+</html>
1  olympia/LayoutTests/fast/loader/stateobjects/replacestate-base-legal-expected.txt
View
@@ -0,0 +1 @@
+PASS: Navigation relative to base element.
21 olympia/LayoutTests/fast/loader/stateobjects/replacestate-base-legal.html
View
@@ -0,0 +1,21 @@
+<html>
+<head>
+<base id="base">
+<script>
+if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+}
+
+var url = window.location.href;
+url = url.slice(0, url.lastIndexOf('/') + 1) + "resources/";
+document.getElementById("base").href = url;
+
+window.onload = function() {
+ window.history.replaceState({}, {}, "replacestate-base-pass.html");
+ window.history.go(0);
+}
+
+</script>
+</head>
+</html>
13 olympia/LayoutTests/fast/loader/stateobjects/resources/replacestate-base-pass.html
View
@@ -0,0 +1,13 @@
+<html>
+<head>
+<script>
+if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ window.onload = function() {layoutTestController.notifyDone();};
+}
+</script>
+</head>
+<body>
+PASS: Navigation relative to base element.
+</body>
+</html>
5 olympia/LayoutTests/fast/loader/subframe-navigate-during-main-frame-load.html
View
@@ -9,8 +9,9 @@
layoutTestController.dumpBackForwardList();
layoutTestController.waitUntilDone();
}
-
- location='resources/subframe-navigate-during-main-frame-load2.html';
+
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(function() {location='resources/subframe-navigate-during-main-frame-load2.html';}, 0);
}
</script>
3  olympia/LayoutTests/fast/replaced/replaced-percent-height-expected.txt
View
@@ -6,7 +6,8 @@ See bug #37169.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-PASS getWidth('image') == getHeight('image') is true
+PASS getWidth('image1') == getHeight('image1') is true
+PASS getHeight('image2') == '100px' is true
PASS successfullyParsed is true
TEST COMPLETE
17 olympia/LayoutTests/fast/replaced/replaced-percent-height.html
View
@@ -1,4 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Test for Buzilla Bug#37169</title>
@@ -39,10 +39,12 @@
{
description("This test checks that replaced elements with percentage heights computes to 'auto' in standard mode, if the height of the containing block is not specified explicitly.<br>See bug #37169.");
- shouldBe("getWidth('image') == getHeight('image')", "true");
+ shouldBe("getWidth('image1') == getHeight('image1')", "true");
+
+ shouldBe("getHeight('image2') == '100px'", "true");
isSuccessfullyParsed();
- if (window.layoutTestController) {
+ if (window.layoutTestController) {
layoutTestController.notifyDone();
}
}
@@ -52,9 +54,12 @@
</head>
<body onload="test()">
-<p>
-<img id="image" src="resources/square-blue-100x100.png" alt="att.gif" style="width: 40%; height: 10%;"/>
-</p>
+<div>
+<img id="image1" src="resources/square-blue-100x100.png" alt="att.gif" style="width: 20%; height: 10%;"/>
+</div>
+<div>
+<img id="image2" src="resources/square-blue-100x100.png" alt="att.gif" height="30%"/>
+</div>
<p id="description"></p>
<div id="console"></div>
2  olympia/LayoutTests/fast/ruby/ruby-remove-no-base-expected.txt
View
@@ -0,0 +1,2 @@
+PASS
+
30 olympia/LayoutTests/fast/ruby/ruby-remove-no-base.html
View
@@ -0,0 +1,30 @@
+<html>
+ <head>
+ <script>
+ if (window.layoutTestController)
+ {
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ }
+
+ function runTest()
+ {
+ document.body.removeChild(document.getElementById("test"));
+ document.getElementById("result").innerHTML = "PASS";
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }
+ </script>
+ </head>
+ <body onload='runTest()'>
+ <div id="result"></div>
+ <ruby id="test">
+ <fieldset/>
+ <rt></rt>
+ <blockquote></blockquote>
+ <rt/><rt/>
+ </ruby>
+ </body>
+</html>
+
3  olympia/LayoutTests/http/tests/history/redirect-js-document-location-before-load-expected.txt
View
@@ -1,9 +1,8 @@
This page is the target of a redirect.
-FAIL: History item count should be 1 but instead is 2.
+PASS: History item count should be 1 and is.
============== Back Forward List ==============
- http://127.0.0.1:8000/history/redirect-js-document-location-before-load.html **nav target**
curr-> http://127.0.0.1:8000/history/resources/redirect-target.html#1 **nav target**
===============================================
3  olympia/LayoutTests/http/tests/history/redirect-js-location-assign-before-load-expected.txt
View
@@ -1,9 +1,8 @@
This page is the target of a redirect.
-FAIL: History item count should be 1 but instead is 2.
+PASS: History item count should be 1 and is.
============== Back Forward List ==============
- http://127.0.0.1:8000/history/redirect-js-location-assign-before-load.html **nav target**
curr-> http://127.0.0.1:8000/history/resources/redirect-target.html#1 **nav target**
===============================================
3  olympia/LayoutTests/http/tests/history/redirect-js-location-before-load-expected.txt
View
@@ -1,9 +1,8 @@
This page is the target of a redirect.
-FAIL: History item count should be 1 but instead is 2.
+PASS: History item count should be 1 and is.
============== Back Forward List ==============
- http://127.0.0.1:8000/history/redirect-js-location-before-load.html **nav target**
curr-> http://127.0.0.1:8000/history/resources/redirect-target.html#1 **nav target**
===============================================
3  olympia/LayoutTests/http/tests/history/redirect-js-location-href-before-load-expected.txt
View
@@ -1,9 +1,8 @@
This page is the target of a redirect.
-FAIL: History item count should be 1 but instead is 2.
+PASS: History item count should be 1 and is.
============== Back Forward List ==============
- http://127.0.0.1:8000/history/redirect-js-location-href-before-load.html **nav target**
curr-> http://127.0.0.1:8000/history/resources/redirect-target.html#1 **nav target**
===============================================
3  olympia/LayoutTests/http/tests/navigation/resources/document-location.js
View
@@ -7,7 +7,8 @@ function start() {
layoutTestController.dumpAsText();
layoutTestController.waitUntilDone();
- runTest();
+ // Location changes need to happen outside the onload handler to generate history entries.
+ setTimeout(runTest, 0);
} else {
// loaded the ?1 navigation
layoutTestController.notifyDone();
15 olympia/LayoutTests/http/tests/security/canvas-remote-read-remote-image-redirect-expected.txt
View
@@ -0,0 +1,15 @@
+Untainted canvas:
+PASS: Calling getImageData() from an untainted canvas was allowed.
+PASS: Calling toDataURL() on an untainted canvas was allowed.
+
+
+Tainted canvas:
+PASS: Calling getImageData() from a canvas tainted by a remote image was not allowed - Threw error: Error: SECURITY_ERR: DOM Exception 18.
+PASS: Calling toDataURL() on a canvas tainted by a remote image was not allowed - Threw error: Error: SECURITY_ERR: DOM Exception 18.
+PASS: Calling getImageData() from a canvas tainted by a tainted canvas was not allowed - Threw error: Error: SECURITY_ERR: DOM Exception 18.
+PASS: Calling toDataURL() on a canvas tainted by a tainted canvas was not allowed - Threw error: Error: SECURITY_ERR: DOM Exception 18.
+PASS: Calling getImageData() from a canvas tainted by a remote image tainted pattern was not allowed - Threw error: Error: SECURITY_ERR: DOM Exception 18.
+PASS: Calling toDataURL() on a canvas tainted by a remote image tainted pattern was not allowed - Threw error: Error: SECURITY_ERR: DOM Exception 18.
+PASS: Calling getImageData() from a canvas tainted by a tainted canvas pattern was not allowed - Threw error: Error: SECURITY_ERR: DOM Exception 18.
+PASS: Calling toDataURL() on a canvas tainted by a tainted canvas pattern was not allowed - Threw error: Error: SECURITY_ERR: DOM Exception 18.
+
107 olympia/LayoutTests/http/tests/security/canvas-remote-read-remote-image-redirect.html
View
@@ -0,0 +1,107 @@
+<pre id="console"></pre>
+<script>
+if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+}
+
+log = function(msg)
+{
+ document.getElementById('console').appendChild(document.createTextNode(msg + "\n"));
+}
+
+testGetImageData = function(context, description)
+{
+ description = "Calling getImageData() from a canvas tainted by a " + description;
+ try {
+ var imageData = context.getImageData(0,0,100,100);
+ log("FAIL: " + description + " was allowed.");
+ } catch (e) {
+ log("PASS: " + description + " was not allowed - Threw error: " + e + ".");
+ }
+}
+
+testToDataURL = function(canvas, description)
+{
+ description = "Calling toDataURL() on a canvas tainted by a " + description;
+ try {
+ var dataURL = canvas.toDataURL();
+ log("FAIL: " + description + " was allowed.");
+ } catch (e) {
+ log("PASS: " + description + " was not allowed - Threw error: " + e + ".");
+ }
+}
+
+test = function(canvas, description)
+{
+ testGetImageData(canvas.getContext("2d"), description);
+ testToDataURL(canvas, description);
+}
+
+var image = new Image();
+image.onload = function() {
+ var canvas = document.createElement("canvas");
+ canvas.width = 100;
+ canvas.height = 100;
+ var context = canvas.getContext("2d");
+
+ // Control tests
+ log("Untainted canvas:");
+ try {
+ var imageData = context.getImageData(0, 0, 100, 100);
+ log("PASS: Calling getImageData() from an untainted canvas was allowed.");
+ } catch (e) {
+ log("FAIL: Calling getImageData() from an untainted canvas was not allowed: Threw error: " + e + ".");
+ }
+ try {
+ var dataURL = canvas.toDataURL();
+ log("PASS: Calling toDataURL() on an untainted canvas was allowed.");
+ } catch (e) {
+ log("FAIL: Calling toDataURL() on an untainted canvas was not allowed: Threw error: " + e + ".");
+ }
+
+ log("\n");
+ log("Tainted canvas:");
+ // Test reading from a canvas after drawing a remote image onto it
+ context.drawImage(image, 0, 0, 100, 100);
+
+ test(canvas, "remote image");
+
+ var dirtyCanvas = canvas;
+
+ // Now test reading from a canvas after drawing a tainted canvas onto it
+ canvas = document.createElement("canvas");
+ canvas.width = 100;
+ canvas.height = 100;
+ var context = canvas.getContext("2d");
+ context.drawImage(dirtyCanvas, 0, 0, 100, 100);
+
+ test(canvas, "tainted canvas");
+
+ // Test reading after using a tainted pattern
+ canvas = document.createElement("canvas");
+ canvas.width = 100;
+ canvas.height = 100;
+ var context = canvas.getContext("2d");
+ var remoteImagePattern = context.createPattern(image, "repeat");
+ context.fillStyle = remoteImagePattern;
+ context.fillRect(0, 0, 100, 100);
+
+ test(canvas, "remote image tainted pattern");
+
+ // Test reading after using a tainted pattern
+ canvas = document.createElement("canvas");
+ canvas.width = 100;
+ canvas.height = 100;
+ var context = canvas.getContext("2d");
+ var taintedCanvasPattern = context.createPattern(dirtyCanvas, "repeat");
+ context.fillStyle = taintedCanvasPattern;
+ context.fillRect(0, 0, 100, 100);
+
+ test(canvas, "tainted canvas pattern");
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+image.src = "resources/redir.php?url=http://localhost:8000/security/resources/abe.png";
+</script>
1  olympia/LayoutTests/platform/mac/fast/inline/continuation-outlines-with-layers-2-expected.checksum
View
@@ -0,0 +1 @@
+a6228f9653eb91224ddadb26e1fd6c5d
BIN  olympia/LayoutTests/platform/mac/fast/inline/continuation-outlines-with-layers-2-expected.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
49 olympia/LayoutTests/platform/mac/fast/inline/continuation-outlines-with-layers-2-expected.txt
View
@@ -0,0 +1,49 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x316
+ RenderBlock {HTML} at (0,0) size 800x316
+ RenderBody {BODY} at (8,16) size 784x284
+ RenderBlock {P} at (0,0) size 784x18
+ RenderText {#text} at (0,0) size 327x18
+ text run at (0,0) width 327: "This should be an unobscured fuzzy green polygon:"
+ RenderBlock {DIV} at (0,34) size 784x100
+ RenderBlock (anonymous) at (0,0) size 784x50
+ RenderBlock (anonymous) at (0,50) size 784x0
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderBlock (anonymous) at (0,50) size 784x50
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {P} at (0,150) size 784x18
+ RenderText {#text} at (0,0) size 156x18
+ text run at (0,0) width 156: "This is just for reference:"
+ RenderBlock {DIV} at (0,184) size 784x100
+ RenderBlock (anonymous) at (0,0) size 784x50
+ RenderInline {SPAN} at (0,0) size 160x50 [bgcolor=#FFFFFF]
+ RenderText {#text} at (0,0) size 50x50
+ text run at (0,0) width 50: " "
+ RenderInline {SPAN} at (0,0) size 110x50
+ RenderText {#text} at (60,0) size 100x50
+ text run at (60,0) width 50: " "
+ text run at (110,0) width 50: " "
+ RenderBlock (anonymous) at (0,50) size 784x0
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderBlock (anonymous) at (0,50) size 784x50
+ RenderInline {SPAN} at (0,0) size 60x50 [bgcolor=#FFFFFF]
+ RenderInline {SPAN} at (0,0) size 60x50
+ RenderText {#text} at (0,0) size 50x50
+ text run at (0,0) width 50: " "
+ RenderText {#text} at (0,0) size 0x0
+ RenderText {#text} at (0,0) size 0x0
+layer at (8,50) size 160x50
+ RenderInline (relative positioned) {SPAN} at (0,0) size 160x50 [bgcolor=#FFFFFF]
+ RenderText {#text} at (0,0) size 50x50
+ text run at (0,0) width 50: " "
+ RenderInline {SPAN} at (0,0) size 110x50
+ RenderText {#text} at (60,0) size 100x50
+ text run at (60,0) width 50: " "
+ text run at (110,0) width 50: " "
+layer at (8,100) size 60x50
+ RenderInline (relative positioned) {SPAN} at (0,0) size 60x50 [bgcolor=#FFFFFF]
+ RenderInline {SPAN} at (0,0) size 60x50
+ RenderText {#text} at (0,0) size 50x50
+ text run at (0,0) width 50: " "
+ RenderText {#text} at (0,0) size 0x0
1  olympia/LayoutTests/platform/mac/svg/custom/use-font-face-crash-expected.checksum
View
@@ -0,0 +1 @@
+e2453e081881660aae0be67c2ac82345
BIN  olympia/LayoutTests/platform/mac/svg/custom/use-font-face-crash-expected.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 olympia/LayoutTests/platform/mac/svg/custom/use-font-face-crash-expected.txt
View
@@ -0,0 +1,23 @@
+layer at (0,0) size 785x778
+ RenderView at (0,0) size 785x600
+layer at (0,0) size 785x778
+ RenderBlock {html} at (0,0) size 785x778
+ RenderBody {body} at (8,16) size 769x754
+ RenderBlock {parsererror} at (16,0) size 737x134 [bgcolor=#FFDDDD] [border: (2px solid #CC7777)]
+ RenderBlock {h3} at (18,20) size 701x22
+ RenderText {#text} at (0,0) size 324x22
+ text run at (0,0) width 324: "This page contains the following errors:"
+ RenderBlock {div} at (18,60) size 701x14
+ RenderText {#text} at (0,0) size 490x14
+ text run at (0,0) width 490: "error on line 1 at column 74: Extra content at the end of the document"
+ text run at (490,0) width 0: " "
+ RenderBlock {h3} at (18,92) size 701x22
+ RenderText {#text} at (0,0) size 429x22
+ text run at (0,0) width 429: "Below is a rendering of the page up to the first error."
+ RenderBlock (anonymous) at (0,150) size 769x604
+ RenderSVGRoot {svg} at (8,166) size 769x600
+ RenderSVGText {text} at (0,6) size 335x18 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 335x18
+ chunk 1 text run 1 at (0.00,20.00) startOffset 0 endOffset 53 width 335.00: "This should not crash, but display an error document."
+ RenderSVGContainer {use} at (8,166) size 0x0
+ RenderSVGContainer {g} at (8,166) size 0x0
204 olympia/LayoutTests/platform/olympia/Skipped
View
@@ -3,9 +3,6 @@
# Bug #71 causes DRT hang/crash
compositing/video/video-background-color.html
-# Bug #96 editing needs investigation and DRT implementation
-editing
-
# Bug #70: We do not have DASHBOARD_SUPPORT enabled.
fast/css/dashboard-regions-attr-crash.html
@@ -286,11 +283,207 @@ fast/js/sputnik/Unicode/Unicode_510/S7.6_A5.3_T2.html
fast/js/sputnik/Unicode/Unicode_510/S15.10.2.12_A1_T6.html
fast/js/sputnik/Unicode/Unicode_510/S15.10.2.12_A2_T6.html
-###
+# Bug #1281
+editing/execCommand/16049.html
+
+# Bug #96 Remaining tests in editing that fail or crash
+editing/deleting/5390681.html
+editing/deleting/delete-ligature-002.html
+editing/deleting/delete-ligature-003.html
+editing/deleting/pruning-after-merge-1.html
+editing/deleting/skip-virama-001.html
+editing/execCommand/editing-nontext-node-crash.xhtml
+editing/execCommand/enabling-and-selection-2.html
+editing/inserting/insert-thai-characters-001.html
+editing/selection/4866671.html
+editing/selection/end-of-document.html
+editing/selection/extend-by-word-002.html
+editing/selection/extend-selection.html
+editing/selection/home-end.html
+editing/selection/move-left-right.html
+editing/selection/thai-word-at-document-end.html
+editing/execCommand/4128080-2.html
+editing/execCommand/5939887.html
+editing/execCommand/copy-without-selection.html
+editing/execCommand/createLink.html
+editing/execCommand/enabling-and-selection.html
+editing/execCommand/insert-list-xml.xhtml
+editing/execCommand/paste-and-match-style-event.html
+editing/execCommand/unlink.html
+editing/inserting/5994480-2.html
+editing/inserting/typing-tab-designmode.html
+editing/pasteboard/19644-1.html
+editing/pasteboard/19644-2.html
+editing/pasteboard/4922709.html
+editing/pasteboard/5665299.html
+editing/pasteboard/5761530-1.html
+editing/pasteboard/5780697-2.html
+editing/pasteboard/copy-backslash-with-euc.html
+editing/pasteboard/copy-in-password-field.html
+editing/pasteboard/copy-paste-float.html
+editing/pasteboard/dataTransfer-setData-getData.html
+editing/pasteboard/drag-drop-input-textarea.html
+editing/pasteboard/drag-drop-url-text.html
+editing/pasteboard/drag-image-in-about-blank-frame.html
+editing/pasteboard/drop-inputtext-acquires-style.html
+editing/pasteboard/drop-link.html
+editing/pasteboard/file-input-files-access.html
+editing/pasteboard/files-during-page-drags.html
+editing/pasteboard/get-data-text-plain-drop.html
+editing/pasteboard/get-data-text-plain-paste.html
+editing/pasteboard/onpaste-text-html.html
+editing/pasteboard/page-zoom.html
+editing/pasteboard/paste-blockquote-before-blockquote.html
+editing/pasteboard/paste-double-nested-blockquote-before-blockquote.html
+editing/pasteboard/paste-into-anchor-text.html
+editing/pasteboard/paste-list-002.html
+editing/pasteboard/paste-list-003.html
+editing/pasteboard/paste-list-004.html
+editing/pasteboard/paste-noscript-svg.html
+editing/pasteboard/paste-noscript-xhtml.xhtml
+editing/pasteboard/paste-noscript.html
+editing/pasteboard/paste-plaintext-user-select-none.html
+editing/pasteboard/paste-table-002.html
+editing/pasteboard/paste-text-013.html
+editing/pasteboard/paste-visible-script.html
+editing/selection/5825350-1.html
+editing/selection/5825350-2.html
+editing/selection/anchor-focus1.html
+editing/selection/anchor-focus2.html
+editing/selection/anchor-focus3.html
+editing/selection/click-before-and-after-table.html
+editing/selection/click-in-margins-inside-editable-div.html
+editing/selection/click-in-padding-with-multiple-line-boxes.html
+editing/selection/doubleclick-beside-cr-span.html
+editing/selection/doubleclick-whitespace.html
+editing/selection/drag-start-event-client-x-y.html
+editing/selection/drag-text-delay.html
+editing/selection/extend-selection-after-double-click.html
+editing/selection/extend-selection-bidi.html
+editing/selection/find-yensign-and-backslash.html
+editing/selection/hit-test-anonymous.html
+editing/selection/last-empty-inline.html
+editing/selection/mixed-editability-10.html
+editing/selection/move-begin-end.html
+editing/selection/move-by-line-003.html
+editing/selection/move-paragraph-document-edges.html
+editing/selection/select-all-textarea.html
+editing/selection/shift-click.html
+editing/selection/user-drag-element-and-user-select-none.html
+editing/style/apply-through-end-of-document.html
+editing/text-iterator/basic-iteration.html
+editing/undo/undo-deleteWord.html
+editing/undo/undo-indent.html
+editing/undo/undo-smart-delete-reversed-selection.html
+editing/undo/undo-smart-delete-word.html
+
+
+# Bug #1331 fast/events tests that still fail
+fast/events/attempt-scroll-with-no-scrollbars.html
+fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html
+fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html
+fast/events/autoscroll-in-textfield.html
+fast/events/autoscroll-nonscrollable-iframe-in-scrollable-div.html
+fast/events/autoscroll-with-non-scrollable-parent.html
+fast/events/blur-focus-window-should-blur-focus-element.html
+fast/events/clientXY-in-zoom-and-scroll.html
+fast/events/content-changed-during-drop.html
+fast/events/context-onmousedown-event.html
+fast/events/contextmenu-scrolled-page-with-frame.html
+fast/events/continuous-platform-wheelevent-in-scrolling-div.html
+fast/events/event-view-toString.html
+fast/events/frame-tab-focus.html
+fast/events/ime-composition-events-001.html
+fast/events/js-keyboard-event-creation.html
+fast/events/key-events-in-input-text.html
+fast/events/keypress-insert-tab.html
+fast/events/mousedown-in-subframe-scrollbar.html
+fast/events/multiline-link-arrow-navigation.html
+fast/events/node-event-anchor-lock.html
+fast/events/offsetX-offsetY.html
+fast/events/onbeforeunload-focused-iframe.html
+fast/events/onload-webkit-before-webcore.html
+fast/events/onunload-clears-onbeforeunload.html
+fast/events/open-window-from-another-frame.html
+fast/events/pageshow-pagehide-on-back-cached-with-frames.html
+fast/events/pageshow-pagehide-on-back-cached.html
+fast/events/pageshow-pagehide-on-back-uncached.html
+fast/events/platform-wheelevent-in-scrolling-div.html
+fast/events/pointer-events-2.html
+fast/events/popup-allowed-from-gesture-initiated-event.html
+fast/events/popup-allowed-from-gesture-initiated-form-submit.html
+fast/events/popup-blocked-to-post-blank.html
+fast/events/popup-blocking-click-in-iframe.html
+fast/events/prevent-drag-to-navigate.html
+fast/events/remove-child-onscroll.html
+fast/events/resize-subframe.html
+fast/events/special-key-events-in-input-text.html
+fast/events/tab-focus-anchor.html
+fast/events/tabindex-focus-chain.html
+fast/events/spatial-navigation/snav-fully-aligned-horizontally.html
+fast/events/spatial-navigation/snav-fully-aligned-vertically.html
+fast/events/spatial-navigation/snav-iframe-flattening-simple.html
+fast/events/spatial-navigation/snav-iframe-no-focusable-content.html
+fast/events/spatial-navigation/snav-iframe-no-scrollable-content.html
+fast/events/spatial-navigation/snav-iframe-with-offscreen-focusable-element.html
+fast/events/spatial-navigation/snav-offscreen-content.html
+fast/events/spatial-navigation/snav-table-traversal.html
+fast/events/spatial-navigation/snav-tiny-table-traversal.html
+fast/events/spatial-navigation/snav-unit-overflow-and-scroll-in-direction.html
+fast/events/touch/send-oncancel-event.html
+fast/events/touch/touch-coords-in-zoom-and-scroll.html
+fast/events/nested-event-remove-node-crash.html
+fast/events/no-blur-on-page-leave.html
+fast/events/onchange-select-popup.html
+fast/events/select-onchange-crash.html
########## UNSUPPORTED FEATURES ##########
+# access keys not supported
+fast/events/access-key-self-destruct.html
+
+# arrow keys not supported
+fast/events/arrow-keys-on-body.html
+editing/input/page-up-down-scrolls.html
+
+# function keys not supported
+fast/events/keydown-function-keys.html
+
+# numpad keys not supported
+fast/events/keydown-numpad-keys.html
+
+# double click not supporoted
+fast/events/click-count.html
+fast/events/dblclick-addEventListener.html
+fast/events/mouse-click-events.html
+fast/events/scrollbar-double-click.html
+fast/events/zoom-dblclick.html
+
+# option key not supported
+fast/events/option-tab.html
+editing/input/option-page-up-down.html
+
+# right click not supported
+fast/events/mouseup-from-button2.html
+fast/events/right-click-focus.html
+
+# drag and drop not supported
+fast/events/bogus-dropEffect-effectAllowed.html
+fast/events/crash-on-mutate-during-drop.html
+fast/events/drag-outside-window.html
+fast/events/drag-parent-node.html
+fast/events/drag-and-drop-dataTransfer-types-nocrash.html
+fast/events/drag-and-drop-fire-drag-dragover.html
+fast/events/drag-and-drop.html
+fast/events/drag-in-frames.html
+fast/events/drag-to-navigate.html
+fast/events/ondragenter.html
+fast/events/ondrop-text-html.html
+
+# no modifier key + touch event support
+fast/events/touch/basic-single-touch-events.html
+
# inspector not supported in Olympia
inspector
@@ -299,9 +492,6 @@ accessibility
webarchive
svg/webarchive
-# websockets not supported
-websocket
-
# plugin tests that use Objective-C - not supported in Olympia
fast/dom/objc-big-method-name.html
plugins/call-as-function-test.html
22 olympia/LayoutTests/platform/olympia/animations/animation-drt-api-expected.txt
View
@@ -1,12 +1,12 @@
-layer at (0,0) size 812x600
+layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
-layer at (0,0) size 812x349
- RenderBlock {HTML} at (0,0) size 800x349
- RenderBody {BODY} at (0,22) size 800x327
- RenderBlock {H1} at (0,0) size 800x105
- RenderText {#text} at (0,0) size 812x105
- text run at (0,0) width 231: "Test for DRT"
- text run at (0,35) width 812: "pauseAnimationAtTimeOnElementWithId()"
- text run at (0,70) width 64: "API"
-layer at (150,149) size 200x200
- RenderBlock (relative positioned) {DIV} at (0,127) size 200x200 [bgcolor=#FF0000]
+layer at (0,0) size 800x341
+ RenderBlock {HTML} at (0,0) size 800x341
+ RenderBody {BODY} at (0,21) size 800x320
+ RenderBlock {H1} at (0,0) size 800x99
+ RenderText {#text} at (0,0) size 769x99
+ text run at (0,0) width 221: "Test for DRT"
+ text run at (0,33) width 769: "pauseAnimationAtTimeOnElementWithId()"
+ text run at (0,66) width 60: "API"
+layer at (150,141) size 200x200
+ RenderBlock (relative positioned) {DIV} at (0,120) size 200x200 [bgcolor=#FF0000]
23 olympia/LayoutTests/platform/olympia/animations/animation-drt-api-multiple-keyframes-expected.txt
View
@@ -1,13 +1,12 @@
-layer at (0,0) size 812x600
+layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
-layer at (0,0) size 812x384
- RenderBlock {HTML} at (0,0) size 800x384
- RenderBody {BODY} at (0,22) size 800x362
- RenderBlock {H1} at (0,0) size 800x140
- RenderText {#text} at (0,0) size 812x140
- text run at (0,0) width 231: "Test for DRT"
- text run at (0,35) width 812: "pauseAnimationAtTimeOnElementWithId()"
- text run at (0,70) width 612: "API on animations with multiple"
- text run at (0,105) width 200: "keyframes"
-layer at (15,184) size 200x200
- RenderBlock (relative positioned) {DIV} at (0,162) size 200x200 [bgcolor=#FF0000]
+layer at (0,0) size 800x341
+ RenderBlock {HTML} at (0,0) size 800x341
+ RenderBody {BODY} at (0,21) size 800x320
+ RenderBlock {H1} at (0,0) size 800x99
+ RenderText {#text} at (0,0) size 778x99
+ text run at (0,0) width 221: "Test for DRT"
+ text run at (0,33) width 769: "pauseAnimationAtTimeOnElementWithId()"
+ text run at (0,66) width 778: "API on animations with multiple keyframes"
+layer at (15,141) size 200x200
+ RenderBlock (relative positioned) {DIV} at (0,120) size 200x200 [bgcolor=#FF0000]
22 olympia/LayoutTests/platform/olympia/animations/state-at-end-event-expected.txt
View
@@ -1,15 +1,15 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
-layer at (0,0) size 800x162
- RenderBlock {HTML} at (0,0) size 800x162
- RenderBody {BODY} at (8,17) size 784x137
- RenderBlock {P} at (0,0) size 784x18
- RenderText {#text} at (0,0) size 545x18
- text run at (0,0) width 545: "At the end of the test the green box should obscure the red box."
- RenderBlock {DIV} at (0,137) size 784x0
-layer at (8,52) size 402x102
- RenderBlock (relative positioned) {DIV} at (0,35) size 402x102 [border: (1px solid #000000)]
-layer at (9,53) size 100x100
+layer at (0,0) size 800x159
+ RenderBlock {HTML} at (0,0) size 800x159
+ RenderBody {BODY} at (8,16) size 784x135
+ RenderBlock {P} at (0,0) size 784x17
+ RenderText {#text} at (0,0) size 515x17
+ text run at (0,0) width 515: "At the end of the test the green box should obscure the red box."
+ RenderBlock {DIV} at (0,135) size 784x0
+layer at (8,49) size 402x102
+ RenderBlock (relative positioned) {DIV} at (0,33) size 402x102 [border: (1px solid #000000)]
+layer at (9,50) size 100x100
RenderBlock (positioned) {DIV} at (1,1) size 100x100 [bgcolor=#FF0000]
-layer at (9,53) size 100x100
+layer at (9,50) size 100x100
RenderBlock (positioned) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
142 olympia/LayoutTests/platform/olympia/css1/basic/class_as_selector-expected.txt
View
@@ -1,73 +1,73 @@
-layer at (0,0) size 800x633
+layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
-layer at (0,0) size 800x633
- RenderBlock {HTML} at (0,0) size 800x633
- RenderBody {BODY} at (8,8) size 784x617 [bgcolor=#CCCCCC]
- RenderBlock {P} at (0,0) size 784x18
- RenderText {#text} at (0,0) size 481x18
- text run at (0,0) width 481: "The style declarations which apply to the text below are:"
- RenderBlock {PRE} at (0,35) size 784x84
- RenderText {#text} at (0,0) size 220x84
- text run at (0,0) width 200: ".one {color: green;}"
- text run at (200,0) width 0: " "
- text run at (0,21) width 160: ".1 {color: red;}"
- text run at (160,21) width 0: " "
- text run at (0,42) width 190: ".a1 {color: green;}"
- text run at (190,42) width 0: " "
- text run at (0,63) width 220: "P.two {color: purple;}"
- text run at (220,63) width 0: " "
- RenderBlock {HR} at (0,136) size 784x2 [border: (1px inset #000000)]
- RenderBlock {P} at (0,155) size 784x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (0,190) size 784x18
- RenderText {#text} at (0,0) size 754x18
- text run at (0,0) width 754: "This sentence should be black, not red-- class selectors cannot begin with digits in CSS1."
- RenderBlock {P} at (0,225) size 784x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (0,260) size 784x18 [color=#800080]
- RenderText {#text} at (0,0) size 271x18
- text run at (0,0) width 271: "This sentence should be purple."
- RenderBlock {PRE} at (0,295) size 784x21
- RenderText {#text} at (0,0) size 350x21
- text run at (0,0) width 350: "This sentence should NOT be purple."
- text run at (350,0) width 0: " "
- RenderBlock {UL} at (0,333) size 784x18
- RenderListItem {LI} at (40,0) size 744x18
- RenderListMarker at (-16,0) size 6x18: bullet
- RenderText {#text} at (0,0) size 312x18
- text run at (0,0) width 312: "This sentence should NOT be purple."
- RenderTable {TABLE} at (0,368) size 777x249 [border: (1px outset #808080)]
- RenderTableSection {TBODY} at (1,1) size 775x247
- RenderTableRow {TR} at (0,0) size 775x26
- RenderTableCell {TD} at (0,0) size 775x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
- RenderInline {STRONG} at (0,0) size 214x18
- RenderText {#text} at (4,4) size 214x18
- text run at (4,4) width 214: "TABLE Testing Section"
- RenderTableRow {TR} at (0,26) size 775x221
- RenderTableCell {TD} at (0,123) size 13x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
- RenderText {#text} at (4,4) size 5x18
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584 [bgcolor=#CCCCCC]
+ RenderBlock {P} at (0,0) size 784x17
+ RenderText {#text} at (0,0) size 452x17
+ text run at (0,0) width 452: "The style declarations which apply to the text below are:"
+ RenderBlock {PRE} at (0,33) size 784x68
+ RenderText {#text} at (0,0) size 176x68
+ text run at (0,0) width 160: ".one {color: green;}"
+ text run at (160,0) width 0: " "
+ text run at (0,17) width 128: ".1 {color: red;}"
+ text run at (128,17) width 0: " "
+ text run at (0,34) width 152: ".a1 {color: green;}"
+ text run at (152,34) width 0: " "
+ text run at (0,51) width 176: "P.two {color: purple;}"
+ text run at (176,51) width 0: " "
+ RenderBlock {HR} at (0,114) size 784x2 [border: (1px inset #000000)]
+ RenderBlock {P} at (0,132) size 784x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (0,165) size 784x17
+ RenderText {#text} at (0,0) size 705x17
+ text run at (0,0) width 705: "This sentence should be black, not red-- class selectors cannot begin with digits in CSS1."
+ RenderBlock {P} at (0,198) size 784x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (0,231) size 784x17 [color=#800080]
+ RenderText {#text} at (0,0) size 254x17
+ text run at (0,0) width 254: "This sentence should be purple."
+ RenderBlock {PRE} at (0,264) size 784x17
+ RenderText {#text} at (0,0) size 280x17
+ text run at (0,0) width 280: "This sentence should NOT be purple."
+ text run at (280,0) width 0: " "
+ RenderBlock {UL} at (0,297) size 784x17
+ RenderListItem {LI} at (40,0) size 744x17
+ RenderListMarker at (-16,0) size 6x17: bullet
+ RenderText {#text} at (0,0) size 294x17
+ text run at (0,0) width 294: "This sentence should NOT be purple."
+ RenderTable {TABLE} at (0,330) size 728x233 [border: (1px outset #808080)]
+ RenderTableSection {TBODY} at (1,1) size 726x231
+ RenderTableRow {TR} at (0,0) size 726x25
+ RenderTableCell {TD} at (0,0) size 726x25 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
+ RenderInline {STRONG} at (0,0) size 200x17
+ RenderText {#text} at (4,4) size 200x17
+ text run at (4,4) width 200: "TABLE Testing Section"
+ RenderTableRow {TR} at (0,25) size 726x206
+ RenderTableCell {TD} at (0,115) size 13x25 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+ RenderText {#text} at (4,4) size 5x17
text run at (4,4) width 5: " "
- RenderTableCell {TD} at (13,26) size 762x221 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
- RenderBlock {P} at (4,4) size 754x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (4,39) size 754x18
- RenderText {#text} at (0,0) size 754x18
- text run at (0,0) width 754: "This sentence should be black, not red-- class selectors cannot begin with digits in CSS1."
- RenderBlock {P} at (4,74) size 754x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (4,109) size 754x18 [color=#800080]
- RenderText {#text} at (0,0) size 271x18
- text run at (0,0) width 271: "This sentence should be purple."
- RenderBlock {PRE} at (4,144) size 754x21
- RenderText {#text} at (0,0) size 350x21
- text run at (0,0) width 350: "This sentence should NOT be purple."
- text run at (350,0) width 0: " "
- RenderBlock {UL} at (4,182) size 754x18
- RenderListItem {LI} at (40,0) size 714x18
- RenderListMarker at (-16,0) size 6x18: bullet
- RenderText {#text} at (0,0) size 312x18
- text run at (0,0) width 312: "This sentence should NOT be purple."
+ RenderTableCell {TD} at (13,25) size 713x206 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
+ RenderBlock {P} at (4,4) size 705x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (4,37) size 705x17
+ RenderText {#text} at (0,0) size 705x17
+ text run at (0,0) width 705: "This sentence should be black, not red-- class selectors cannot begin with digits in CSS1."
+ RenderBlock {P} at (4,70) size 705x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (4,103) size 705x17 [color=#800080]
+ RenderText {#text} at (0,0) size 254x17
+ text run at (0,0) width 254: "This sentence should be purple."
+ RenderBlock {PRE} at (4,136) size 705x17
+ RenderText {#text} at (0,0) size 280x17
+ text run at (0,0) width 280: "This sentence should NOT be purple."
+ text run at (280,0) width 0: " "
+ RenderBlock {UL} at (4,169) size 705x17
+ RenderListItem {LI} at (40,0) size 665x17
+ RenderListMarker at (-16,0) size 6x17: bullet
+ RenderText {#text} at (0,0) size 294x17
+ text run at (0,0) width 294: "This sentence should NOT be purple."
196 olympia/LayoutTests/platform/olympia/css1/basic/comments-expected.txt
View
@@ -1,100 +1,100 @@
-layer at (0,0) size 800x981
+layer at (0,0) size 800x882
RenderView at (0,0) size 800x600
-layer at (0,0) size 800x981
- RenderBlock {HTML} at (0,0) size 800x981
- RenderBody {BODY} at (8,8) size 784x965 [bgcolor=#CCCCCC]
- RenderBlock {P} at (0,0) size 784x18
- RenderText {#text} at (0,0) size 481x18
- text run at (0,0) width 481: "The style declarations which apply to the text below are:"
- RenderBlock {PRE} at (0,35) size 784x315
- RenderText {#text} at (0,0) size 420x315
- text run at (0,0) width 290: "/* This is a CSS1 comment. */"
- text run at (290,0) width 0: " "
- text run at (0,21) width 420: ".one {color: green;} /* Another comment */"
- text run at (420,21) width 0: " "
- text run at (0,42) width 360: "/* The following should not be used:"
- text run at (360,42) width 0: " "
- text run at (0,63) width 210: ".two {color: red;} */"
- text run at (210,63) width 0: " "
- text run at (0,84) width 400: ".three {color: green; /* color: red; */}"
- text run at (400,84) width 0: " "
- text run at (0,105) width 30: "/**"
- text run at (30,105) width 0: " "
- text run at (0,126) width 220: ".four {color: red;} */"
- text run at (220,126) width 0: " "
- text run at (0,147) width 210: ".five {color: green;}"
- text run at (210,147) width 0: " "
- text run at (0,168) width 40: "/**/"
- text run at (40,168) width 0: " "
- text run at (0,189) width 200: ".six {color: green;}"
- text run at (200,189) width 0: " "
- text run at (0,210) width 110: "/*********/"
- text run at (110,210) width 0: " "
- text run at (0,231) width 220: ".seven {color: green;}"
- text run at (220,231) width 0: " "
- text run at (0,252) width 160: "/* a comment **/"
- text run at (160,252) width 0: " "
- text run at (0,273) width 220: ".eight {color: green;}"
- text run at (220,273) width 0: " "
- text run at (0,294) width 0: " "
- RenderBlock {HR} at (0,367) size 784x2 [border: (1px inset #000000)]
- RenderBlock {P} at (0,386) size 784x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (0,421) size 784x18
- RenderText {#text} at (0,0) size 261x18
- text run at (0,0) width 261: "This sentence should be black."
- RenderBlock {P} at (0,456) size 784x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (0,491) size 784x18
- RenderText {#text} at (0,0) size 261x18
- text run at (0,0) width 261: "This sentence should be black."
- RenderBlock {P} at (0,526) size 784x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (0,561) size 784x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (0,596) size 784x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (0,631) size 784x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderTable {TABLE} at (0,666) size 288x299 [border: (1px outset #808080)]
- RenderTableSection {TBODY} at (1,1) size 286x297
- RenderTableRow {TR} at (0,0) size 286x26
- RenderTableCell {TD} at (0,0) size 286x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
- RenderInline {STRONG} at (0,0) size 214x18
- RenderText {#text} at (4,4) size 214x18
- text run at (4,4) width 214: "TABLE Testing Section"
- RenderTableRow {TR} at (0,26) size 286x271
- RenderTableCell {TD} at (0,148) size 13x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
- RenderText {#text} at (4,4) size 5x18
+layer at (0,0) size 800x882
+ RenderBlock {HTML} at (0,0) size 800x882
+ RenderBody {BODY} at (8,8) size 784x866 [bgcolor=#CCCCCC]
+ RenderBlock {P} at (0,0) size 784x17
+ RenderText {#text} at (0,0) size 452x17
+ text run at (0,0) width 452: "The style declarations which apply to the text below are:"
+ RenderBlock {PRE} at (0,33) size 784x255
+ RenderText {#text} at (0,0) size 336x255
+ text run at (0,0) width 232: "/* This is a CSS1 comment. */"
+ text run at (232,0) width 0: " "
+ text run at (0,17) width 336: ".one {color: green;} /* Another comment */"
+ text run at (336,17) width 0: " "
+ text run at (0,34) width 288: "/* The following should not be used:"
+ text run at (288,34) width 0: " "
+ text run at (0,51) width 168: ".two {color: red;} */"
+ text run at (168,51) width 0: " "
+ text run at (0,68) width 320: ".three {color: green; /* color: red; */}"
+ text run at (320,68) width 0: " "
+ text run at (0,85) width 24: "/**"
+ text run at (24,85) width 0: " "
+ text run at (0,102) width 176: ".four {color: red;} */"
+ text run at (176,102) width 0: " "
+ text run at (0,119) width 168: ".five {color: green;}"
+ text run at (168,119) width 0: " "
+ text run at (0,136) width 32: "/**/"
+ text run at (32,136) width 0: " "
+ text run at (0,153) width 160: ".six {color: green;}"
+ text run at (160,153) width 0: " "
+ text run at (0,170) width 88: "/*********/"
+ text run at (88,170) width 0: " "
+ text run at (0,187) width 176: ".seven {color: green;}"
+ text run at (176,187) width 0: " "
+ text run at (0,204) width 128: "/* a comment **/"
+ text run at (128,204) width 0: " "
+ text run at (0,221) width 176: ".eight {color: green;}"
+ text run at (176,221) width 0: " "
+ text run at (0,238) width 0: " "
+ RenderBlock {HR} at (0,301) size 784x2 [border: (1px inset #000000)]
+ RenderBlock {P} at (0,319) size 784x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (0,352) size 784x17
+ RenderText {#text} at (0,0) size 245x17
+ text run at (0,0) width 245: "This sentence should be black."
+ RenderBlock {P} at (0,385) size 784x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (0,418) size 784x17
+ RenderText {#text} at (0,0) size 245x17
+ text run at (0,0) width 245: "This sentence should be black."
+ RenderBlock {P} at (0,451) size 784x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (0,484) size 784x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (0,517) size 784x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (0,550) size 784x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderTable {TABLE} at (0,583) size 273x283 [border: (1px outset #808080)]
+ RenderTableSection {TBODY} at (1,1) size 271x281
+ RenderTableRow {TR} at (0,0) size 271x25
+ RenderTableCell {TD} at (0,0) size 271x25 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
+ RenderInline {STRONG} at (0,0) size 200x17
+ RenderText {#text} at (4,4) size 200x17
+ text run at (4,4) width 200: "TABLE Testing Section"
+ RenderTableRow {TR} at (0,25) size 271x256
+ RenderTableCell {TD} at (0,140) size 13x25 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+ RenderText {#text} at (4,4) size 5x17
text run at (4,4) width 5: " "
- RenderTableCell {TD} at (13,26) size 273x271 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
- RenderBlock {P} at (4,4) size 265x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (4,39) size 265x18
- RenderText {#text} at (0,0) size 261x18
- text run at (0,0) width 261: "This sentence should be black."
- RenderBlock {P} at (4,74) size 265x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (4,109) size 265x18
- RenderText {#text} at (0,0) size 261x18
- text run at (0,0) width 261: "This sentence should be black."
- RenderBlock {P} at (4,144) size 265x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (4,179) size 265x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (4,214) size 265x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
- RenderBlock {P} at (4,249) size 265x18 [color=#008000]
- RenderText {#text} at (0,0) size 265x18
- text run at (0,0) width 265: "This sentence should be green."
+ RenderTableCell {TD} at (13,25) size 258x256 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
+ RenderBlock {P} at (4,4) size 250x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (4,37) size 250x17
+ RenderText {#text} at (0,0) size 245x17
+ text run at (0,0) width 245: "This sentence should be black."
+ RenderBlock {P} at (4,70) size 250x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (4,103) size 250x17
+ RenderText {#text} at (0,0) size 245x17
+ text run at (0,0) width 245: "This sentence should be black."
+ RenderBlock {P} at (4,136) size 250x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (4,169) size 250x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (4,202) size 250x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
+ RenderBlock {P} at (4,235) size 250x17 [color=#008000]
+ RenderText {#text} at (0,0) size 250x17
+ text run at (0,0) width 250: "This sentence should be green."
429 olympia/LayoutTests/platform/olympia/css1/basic/containment-expected.txt
View
@@ -1,219 +1,214 @@
-layer at (0,0) size 918x1256
+layer at (0,0) size 800x986
RenderView at (0,0) size 800x600
-layer at (0,0) size 918x1256
- RenderBlock {HTML} at (0,0) size 800x1256
- RenderBody {BODY} at (8,8) size 784x1240 [bgcolor=#CCCCCC]
- RenderBlock {P} at (0,0) size 784x18
- RenderText {#text} at (0,0) size 481x18
- text run at (0,0) width 481: "The style declarations which apply to the text below are:"
- RenderBlock {PRE} at (0,35) size 784x210
- RenderText {#text} at (0,0) size 910x210
- text run at (0,0) width 780: "<LINK rel=\"stylesheet\" type=\"text/css\" href=\"linktest.css\" title=\"Default SS\">"
- text run at (780,0) width 0: " "
- text run at (0,21) width 910: "<LINK rel=\"alternate stylesheet\" type=\"text/css\" href=\"linktest2.css\" title=\"Alternate SS\">"
- text run at (910,21) width 0: " "
- text run at (0,42) width 260: "@import url(imptest1.css);"
- text run at (260,42) width 0: " "
- text run at (0,63) width 240: "@import \"imptest1a.css\";"
- text run at (240,63) width 0: " "
- text run at (0,84) width 160: "UL {color: red;}"
- text run at (160,84) width 0: " "
- text run at (0,105) width 220: ".four {color: purple;}"
- text run at (220,105) width 0: " "
- text run at (0,126) width 260: "@import url(imptest2.css);"
- text run at (260,126) width 0: " "
- text run at (0,147) width 40: "<!--"
- text run at (40,147) width 0: " "
- text run at (0,168) width 210: "P.six {color: green;}"
- text run at (210,168) width 0: " "
- text run at (0,189) width 30: "-->"
- text run at (30,189) width 0: " "
- RenderBlock {HR} at (0,262) size 784x2 [border: (1px inset #000000)]
- RenderBlock {P} at (0,281) size 784x39
- RenderText {#text} at (0,3) size 555x18
- text run at (0,3) width 555: "This sentence should be underlined due to the linked style sheet "
- RenderInline {CODE} at (0,0) size 120x21
- RenderText {#text} at (555,0) size 120x21
- text run at (555,0) width 120: "linktest.css"
- RenderText {#text} at (675,3) size 713x36
- text run at (675,3) width 38: ", the"
- text run at (0,21) width 297: "reference to which is shown above."
- RenderBlock {P} at (0,337) size 784x39
- RenderText {#text} at (0,3) size 596x18
- text run at (0,3) width 596: "This sentence should NOT be underlined due to the linked style sheet "
- RenderInline {CODE} at (0,0) size 130x21
- RenderText {#text} at (596,0) size 130x21
- text run at (596,0) width 130: "linktest2.css"
- RenderText {#text} at (726,3) size 5x18
- text run at (726,3) width 5: ","
- RenderInline {STRONG} at (0,0) size 62x18
- RenderText {#text} at (0,21) size 62x18
- text run at (0,21) width 62: "unless"
- RenderText {#text} at (62,21) size 655x18
- text run at (62,21) width 655: " the external style sheet \"Alternate SS\" has been selected via the user agent."
- RenderBlock {UL} at (0,393) size 784x126 [color=#FF0000]
- RenderListItem {LI} at (40,0) size 744x42 [color=#008000]
- RenderListMarker at (-16,3) size 6x18: bullet
- RenderText {#text} at (0,3) size 538x18
- text run at (0,3) width 538: "This sentence should be green due to an imported style sheet ["
- RenderInline {CODE} at (0,0) size 608x42
- RenderText {#text} at (538,0) size 608x42
- text run at (538,0) width 70: "@import"
- text run at (0,21) width 180: "url(imptest1.css);"
- RenderText {#text} at (180,24) size 12x18
- text run at (180,24) width 12: "]."
- RenderListItem {LI} at (40,42) size 744x42 [color=#800080]
- RenderListMarker at (-16,3) size 6x18: bullet
- RenderText {#text} at (0,3) size 544x18
- text run at (0,3) width 544: "This sentence should be purple due to an imported style sheet ["
- RenderInline {CODE} at (0,0) size 614x42
- RenderText {#text} at (544,0) size 614x42
- text run at (544,0) width 70: "@import"
- text run at (0,21) width 150: "\"imptest1a.css\""
- RenderText {#text} at (150,24) size 12x18
- text run at (150,24) width 12: "]."
- RenderListItem {LI} at (40,84) size 744x42 [color=#008000]
- RenderListMarker at (-16,3) size 6x18: bullet
- RenderText {#text} at (0,3) size 526x18
- text run at (0,3) width 526: "This sentence should be green thanks to the STYLE attribute ["
- RenderInline {CODE} at (0,0) size 656x42
- RenderText {#text} at (526,0) size 656x42
- text run at (526,0) width 130: "STYLE=\"color:"
- text run at (0,21) width 70: "green;\""
- RenderText {#text} at (70,24) size 12x18
- text run at (70,24) width 12: "]."
- RenderBlock {P} at (0,536) size 784x18 [color=#800080]
- RenderText {#text} at (0,0) size 691x18
- text run at (0,0) width 691: "This sentence should be purple, and it doesn't have a terminating paragraph tag."
- RenderBlock {OL} at (0,571) size 784x54
- RenderListItem {LI} at (40,0) size 744x18
- RenderListMarker at (-25,0) size 21x18: "1"
- RenderText {#text} at (0,0) size 261x18
- text run at (0,0) width 261: "This list should NOT be purple."
- RenderListItem {LI} at (40,18) size 744x18
- RenderListMarker at (-25,0) size 21x18: "2"
- RenderText {#text} at (0,0) size 233x18
- text run at (0,0) width 233: "It should, instead, be black."
- RenderListItem {LI} at (40,36) size 744x18
- RenderListMarker at (-25,0) size 21x18: "3"