diff --git a/components/reading_list/core/BUILD.gn b/components/reading_list/core/BUILD.gn index f45b10c..52dbc373 100644 --- a/components/reading_list/core/BUILD.gn +++ b/components/reading_list/core/BUILD.gn
@@ -2,22 +2,12 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/buildflag_header.gni") -import("//components/reading_list/core/reading_list.gni") - source_set("core") { sources = [ "reading_list_switches.cc", "reading_list_switches.h", ] deps = [ - ":reading_list_enable_flags", "//base", ] } - -buildflag_header("reading_list_enable_flags") { - header = "reading_list_enable_flags.h" - _enabled = is_ios && enable_reading_list - flags = [ "ENABLE_READING_LIST=$_enabled" ] -}
diff --git a/components/reading_list/core/reading_list.gni b/components/reading_list/core/reading_list.gni deleted file mode 100644 index 26c4e1e..0000000 --- a/components/reading_list/core/reading_list.gni +++ /dev/null
@@ -1,9 +0,0 @@ -# Copyright 2016 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -declare_args() { - # Controls whether reading list support is active or not. Currently only - # supported on iOS (on other platforms, the feature is always disabled). - enable_reading_list = true -}
diff --git a/components/reading_list/core/reading_list_switches.cc b/components/reading_list/core/reading_list_switches.cc index d6aba34..4fa0804 100644 --- a/components/reading_list/core/reading_list_switches.cc +++ b/components/reading_list/core/reading_list_switches.cc
@@ -6,12 +6,23 @@ #include "build/build_config.h" #include "base/command_line.h" -#include "components/reading_list/core/reading_list_enable_flags.h" namespace reading_list { namespace switches { +// Enables the reading list. +const char kEnableReadingList[] = "enable-reading-list"; + +// Disables the reading list. +const char kDisableReadingList[] = "disable-reading-list"; + bool IsReadingListEnabled() { - return BUILDFLAG(ENABLE_READING_LIST); + // Reading list is only enabled on iOS. +#if defined(OS_IOS) + if (base::CommandLine::ForCurrentProcess()->HasSwitch(kEnableReadingList)) { + return true; + } +#endif + return false; } } // namespace switches } // namespace reading_list
diff --git a/components/reading_list/core/reading_list_switches.h b/components/reading_list/core/reading_list_switches.h index c99231c..e9790fc 100644 --- a/components/reading_list/core/reading_list_switches.h +++ b/components/reading_list/core/reading_list_switches.h
@@ -7,6 +7,9 @@ namespace reading_list { namespace switches { +extern const char kEnableReadingList[]; +extern const char kDisableReadingList[]; + // Whether Reading List is enabled on this device. bool IsReadingListEnabled(); } // namespace switches
diff --git a/components/reading_list/ios/reading_list_model_storage.h b/components/reading_list/ios/reading_list_model_storage.h index a2ed7cc4..422abf04 100644 --- a/components/reading_list/ios/reading_list_model_storage.h +++ b/components/reading_list/ios/reading_list_model_storage.h
@@ -7,6 +7,7 @@ #include <vector> +#include "base/macros.h" #include "components/reading_list/ios/reading_list_entry.h" class ReadingListModel; @@ -22,6 +23,9 @@ public: class ScopedBatchUpdate; + ReadingListModelStorage() {} + virtual ~ReadingListModelStorage() {} + // Sets the model the Storage is backing. // This will trigger store initalization and load persistent entries. virtual void SetReadingListModel(ReadingListModel* model, @@ -48,8 +52,15 @@ class ScopedBatchUpdate { public: + ScopedBatchUpdate() {} virtual ~ScopedBatchUpdate() {} + + private: + DISALLOW_COPY_AND_ASSIGN(ScopedBatchUpdate); }; + + private: + DISALLOW_COPY_AND_ASSIGN(ReadingListModelStorage); }; #endif // COMPONENTS_READING_LIST_IOS_READING_LIST_MODEL_STORAGE_H_
diff --git a/components/reading_list/ios/reading_list_store_delegate.h b/components/reading_list/ios/reading_list_store_delegate.h index ff4b14b..a50e6d6b6 100644 --- a/components/reading_list/ios/reading_list_store_delegate.h +++ b/components/reading_list/ios/reading_list_store_delegate.h
@@ -7,13 +7,20 @@ #include <map> +#include "base/macros.h" + class ReadingListEntry; // The delegate to handle callbacks from the ReadingListStore. class ReadingListStoreDelegate { public: + ReadingListStoreDelegate() {} + virtual ~ReadingListStoreDelegate() {} + using ReadingListEntries = std::map<GURL, ReadingListEntry>; - // These three mathods handle callbacks from a ReadingListStore. + // These three methods handle callbacks from a ReadingListStore. + // This method is called when the local store is loaded. |entries| contains + // the ReadingListEntry present on the device before sync starts. virtual void StoreLoaded(std::unique_ptr<ReadingListEntries> entries) = 0; // Handle sync events. // Called to add a new entry to the model. @@ -29,6 +36,8 @@ // Called to remove an entry to the model. virtual void SyncRemoveEntry(const GURL& url) = 0; + private: + DISALLOW_COPY_AND_ASSIGN(ReadingListStoreDelegate); }; #endif // COMPONENTS_READING_LIST_IOS_READING_LIST_STORE_DELEGATE_H_
diff --git a/ios/chrome/browser/about_flags.mm b/ios/chrome/browser/about_flags.mm index 493734a..eb01c74f 100644 --- a/ios/chrome/browser/about_flags.mm +++ b/ios/chrome/browser/about_flags.mm
@@ -234,6 +234,13 @@ command_line->AppendSwitch(switches::kDisablePaymentRequest); } + // Populate command line flags from Reading List. + if ([defaults boolForKey:@"EnableReadingList"]) { + command_line->AppendSwitch(reading_list::switches::kEnableReadingList); + } else { + command_line->AppendSwitch(reading_list::switches::kDisableReadingList); + } + // Populate command line flag for Spotlight Actions. if ([defaults boolForKey:@"DisableSpotlightActions"]) { command_line->AppendSwitch(switches::kDisableSpotlightActions);
diff --git a/ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory_unittest.cc b/ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory_unittest.cc index 07bed71..6bb725a 100644 --- a/ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory_unittest.cc +++ b/ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory_unittest.cc
@@ -45,7 +45,6 @@ datatypes.push_back(syncer::PASSWORDS); datatypes.push_back(syncer::PREFERENCES); datatypes.push_back(syncer::PRIORITY_PREFERENCES); - datatypes.push_back(syncer::READING_LIST); datatypes.push_back(syncer::SESSIONS); datatypes.push_back(syncer::PROXY_TABS); datatypes.push_back(syncer::TYPED_URLS);
diff --git a/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-nested-rtl.html b/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-nested-rtl.html new file mode 100644 index 0000000..b48ff0c --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-nested-rtl.html
@@ -0,0 +1,14 @@ +<!DOCTYPE html> +<p>crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line.</p> +<ol dir=rtl> + <li> + <img width=20 height=20 style="float: right; background-color:black;"> + <li> + <img width=20 height=20 style="float: right; background-color:black;"> + </li> + </li> + <li> + <img width=20 height=20 style="float: right; background-color:black;"> + </li> +</ol> +
diff --git a/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-nested.html b/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-nested.html new file mode 100644 index 0000000..1345c3ed --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-nested.html
@@ -0,0 +1,14 @@ +<!DOCTYPE html> +<p>crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line.</p> +<ol> + <li> + <img width=20 height=20 style="float: left; background-color:black;"> + <li> + <img width=20 height=20 style="float: left; background-color:black;"> + </li> + </li> + <li> + <img width=20 height=20 style="float: left; background-color:black;"> + </li> +</ol> +
diff --git a/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-rtl.html b/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-rtl.html new file mode 100644 index 0000000..7de36198 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float-rtl.html
@@ -0,0 +1,8 @@ +<!DOCTYPE html> +<p>crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line.</p> +<ol dir=rtl> + <li> + <img width=20 height=20 style="float: right; background-color:black;"> + </li> +</ol> +
diff --git a/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float.html b/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float.html new file mode 100644 index 0000000..315a479 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/lists/list-marker-before-float.html
@@ -0,0 +1,8 @@ +<!DOCTYPE html> +<p>crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line.</p> +<ol> + <li> + <img width=20 height=20 style="float: left; background-color:black;"> + </li> +</ol> +
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/caret-contenteditable-content-after.html b/third_party/WebKit/LayoutTests/paint/invalidation/caret-contenteditable-content-after.html new file mode 100644 index 0000000..cfe97b1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/paint/invalidation/caret-contenteditable-content-after.html
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<script src="resources/text-based-repaint.js"></script> +<script> +function repaintTest() { + editor.focus(); + if (!window.eventSender) + return; + eventSender.keyDown('a'); + eventSender.keyDown('b'); + eventSender.keyDown('c'); +} +onload = runRepaintAndPixelTest; +</script> +<style> +#editor:after { + content:"x"; +} +</style> +Test passes if caret is visible after the 'c' but before the 'x'.<br> +To reproduce manually, type 'abc'. +<div id="editor" contenteditable="true"></div>
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-expected.png new file mode 100644 index 0000000..beb9d13 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-expected.txt new file mode 100644 index 0000000..87f446f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-expected.txt
@@ -0,0 +1,12 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x88 + LayoutBlockFlow {HTML} at (0,0) size 800x88 + LayoutBlockFlow {BODY} at (8,16) size 784x56 + LayoutBlockFlow {P} at (0,0) size 784x20 + LayoutText {#text} at (0,0) size 557x19 + text run at (0,0) width 557: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,36) size 784x20 + LayoutListItem {LI} at (40,0) size 744x20 + LayoutListMarker (anonymous) at (-16,0) size 16x19: "1" + LayoutImage (floating) {IMG} at (0,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-expected.png new file mode 100644 index 0000000..902e515c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-expected.txt new file mode 100644 index 0000000..aeb3a12 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-expected.txt
@@ -0,0 +1,18 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x128 + LayoutBlockFlow {HTML} at (0,0) size 800x128 + LayoutBlockFlow {BODY} at (8,16) size 784x96 + LayoutBlockFlow {P} at (0,0) size 784x20 + LayoutText {#text} at (0,0) size 557x19 + text run at (0,0) width 557: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,36) size 784x60 + LayoutListItem {LI} at (40,0) size 744x20 + LayoutListMarker (anonymous) at (-16,0) size 16x19: "1" + LayoutImage (floating) {IMG} at (0,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (40,20) size 744x20 + LayoutListMarker (anonymous) at (-16,0) size 16x19: "2" + LayoutImage (floating) {IMG} at (0,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (40,40) size 744x20 + LayoutListMarker (anonymous) at (-16,0) size 16x19: "3" + LayoutImage (floating) {IMG} at (0,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-rtl-expected.png new file mode 100644 index 0000000..082f531 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-rtl-expected.txt new file mode 100644 index 0000000..24e5bde --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-nested-rtl-expected.txt
@@ -0,0 +1,18 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x128 + LayoutBlockFlow {HTML} at (0,0) size 800x128 + LayoutBlockFlow {BODY} at (8,16) size 784x96 + LayoutBlockFlow {P} at (0,0) size 784x20 + LayoutText {#text} at (0,0) size 557x19 + text run at (0,0) width 557: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,36) size 784x60 + LayoutListItem {LI} at (0,0) size 744x20 + LayoutListMarker (anonymous) at (744,0) size 16x19: "1" + LayoutImage (floating) {IMG} at (724,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (0,20) size 744x20 + LayoutListMarker (anonymous) at (744,0) size 16x19: "2" + LayoutImage (floating) {IMG} at (724,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (0,40) size 744x20 + LayoutListMarker (anonymous) at (744,0) size 16x19: "3" + LayoutImage (floating) {IMG} at (724,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-rtl-expected.png new file mode 100644 index 0000000..a667d38 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-rtl-expected.txt new file mode 100644 index 0000000..a7a7e615 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/list-marker-before-float-rtl-expected.txt
@@ -0,0 +1,12 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x88 + LayoutBlockFlow {HTML} at (0,0) size 800x88 + LayoutBlockFlow {BODY} at (8,16) size 784x56 + LayoutBlockFlow {P} at (0,0) size 784x20 + LayoutText {#text} at (0,0) size 557x19 + text run at (0,0) width 557: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,36) size 784x20 + LayoutListItem {LI} at (0,0) size 744x20 + LayoutListMarker (anonymous) at (744,0) size 16x19: "1" + LayoutImage (floating) {IMG} at (724,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/caret-contenteditable-content-after-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/caret-contenteditable-content-after-expected.png new file mode 100644 index 0000000..396492f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/caret-contenteditable-content-after-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/caret-contenteditable-content-after-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/caret-contenteditable-content-after-expected.txt new file mode 100644 index 0000000..3369299 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/caret-contenteditable-content-after-expected.txt
@@ -0,0 +1,295 @@ +{ + "layers": [ + { + "name": "LayoutView #document", + "bounds": [800, 600], + "contentsOpaque": true, + "drawsContent": true, + "paintInvalidations": [ + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 786, 22], + "reason": "style change" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 786, 22], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 786, 22], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 786, 22], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 48, 22, 19], + "reason": "full" + }, + { + "object": "LayoutText #text", + "rect": [8, 48, 15, 19], + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [30, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 48, 7, 19], + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [8, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 3, 22], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 3, 22], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 3, 22], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 3, 22], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 47, 3, 21], + "reason": "invalidate paint rectangle" + } + ] + } + ], + "objectPaintInvalidations": [ + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "style change" + }, + { + "object": "RootInlineBox", + "reason": "style change" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "layoutObject insertion" + }, + { + "object": "InlineTextBox 'a'", + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'ab'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'abc'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + } + ] +} +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png new file mode 100644 index 0000000..396492f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt new file mode 100644 index 0000000..3369299 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt
@@ -0,0 +1,295 @@ +{ + "layers": [ + { + "name": "LayoutView #document", + "bounds": [800, 600], + "contentsOpaque": true, + "drawsContent": true, + "paintInvalidations": [ + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 786, 22], + "reason": "style change" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 786, 22], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 786, 22], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 786, 22], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 48, 22, 19], + "reason": "full" + }, + { + "object": "LayoutText #text", + "rect": [8, 48, 15, 19], + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [30, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 48, 7, 19], + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [8, 48, 7, 19], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 3, 22], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 3, 22], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 3, 22], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 47, 3, 22], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 47, 3, 21], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 47, 3, 21], + "reason": "invalidate paint rectangle" + } + ] + } + ], + "objectPaintInvalidations": [ + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "style change" + }, + { + "object": "RootInlineBox", + "reason": "style change" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "layoutObject insertion" + }, + { + "object": "InlineTextBox 'a'", + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'ab'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'abc'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + } + ] +} +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-expected.png new file mode 100644 index 0000000..0ff5de8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-expected.txt new file mode 100644 index 0000000..ad462ac --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-expected.txt
@@ -0,0 +1,12 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x84 + LayoutBlockFlow {HTML} at (0,0) size 800x84 + LayoutBlockFlow {BODY} at (8,16) size 784x52 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 598x18 + text run at (0,0) width 598: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,34) size 784x18 + LayoutListItem {LI} at (40,0) size 744x18 + LayoutListMarker (anonymous) at (-16,0) size 16x18: "1" + LayoutImage (floating) {IMG} at (0,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-expected.png new file mode 100644 index 0000000..0a81773 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-expected.txt new file mode 100644 index 0000000..f7a6af1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-expected.txt
@@ -0,0 +1,18 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x120 + LayoutBlockFlow {HTML} at (0,0) size 800x120 + LayoutBlockFlow {BODY} at (8,16) size 784x88 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 598x18 + text run at (0,0) width 598: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,34) size 784x54 + LayoutListItem {LI} at (40,0) size 744x18 + LayoutListMarker (anonymous) at (-16,0) size 16x18: "1" + LayoutImage (floating) {IMG} at (0,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (40,18) size 744x18 + LayoutListMarker (anonymous) at (4,0) size 16x18: "2" + LayoutImage (floating) {IMG} at (20,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (40,36) size 744x18 + LayoutListMarker (anonymous) at (24,0) size 16x18: "3" + LayoutImage (floating) {IMG} at (40,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-rtl-expected.png new file mode 100644 index 0000000..6d40a81e --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-rtl-expected.txt new file mode 100644 index 0000000..afb82001 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-nested-rtl-expected.txt
@@ -0,0 +1,18 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x120 + LayoutBlockFlow {HTML} at (0,0) size 800x120 + LayoutBlockFlow {BODY} at (8,16) size 784x88 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 598x18 + text run at (0,0) width 598: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,34) size 784x54 + LayoutListItem {LI} at (0,0) size 744x18 + LayoutListMarker (anonymous) at (744,0) size 16x18: "1" + LayoutImage (floating) {IMG} at (724,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (0,18) size 744x18 + LayoutListMarker (anonymous) at (724,0) size 16x18: "2" + LayoutImage (floating) {IMG} at (704,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (0,36) size 744x18 + LayoutListMarker (anonymous) at (704,0) size 16x18: "3" + LayoutImage (floating) {IMG} at (684,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-rtl-expected.png new file mode 100644 index 0000000..6bf476d8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-rtl-expected.txt new file mode 100644 index 0000000..d1830e4e --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/lists/list-marker-before-float-rtl-expected.txt
@@ -0,0 +1,12 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x84 + LayoutBlockFlow {HTML} at (0,0) size 800x84 + LayoutBlockFlow {BODY} at (8,16) size 784x52 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 598x18 + text run at (0,0) width 598: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,34) size 784x18 + LayoutListItem {LI} at (0,0) size 744x18 + LayoutListMarker (anonymous) at (744,0) size 16x18: "1" + LayoutImage (floating) {IMG} at (724,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/caret-contenteditable-content-after-expected.png b/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/caret-contenteditable-content-after-expected.png new file mode 100644 index 0000000..da56c30 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/caret-contenteditable-content-after-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/caret-contenteditable-content-after-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/caret-contenteditable-content-after-expected.txt new file mode 100644 index 0000000..b99edf5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/caret-contenteditable-content-after-expected.txt
@@ -0,0 +1,295 @@ +{ + "layers": [ + { + "name": "LayoutView #document", + "bounds": [800, 600], + "contentsOpaque": true, + "drawsContent": true, + "paintInvalidations": [ + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [3, 39, 794, 28], + "reason": "style change" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [3, 39, 794, 28], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [3, 39, 794, 28], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [3, 39, 794, 28], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 23, 18], + "reason": "full" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 16, 18], + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [30, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 8, 18], + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [8, 44, 8, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + } + ] + } + ], + "objectPaintInvalidations": [ + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "style change" + }, + { + "object": "RootInlineBox", + "reason": "style change" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "layoutObject insertion" + }, + { + "object": "InlineTextBox 'a'", + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'ab'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'abc'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + } + ] +} +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png new file mode 100644 index 0000000..da56c30 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt new file mode 100644 index 0000000..b99edf5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt
@@ -0,0 +1,295 @@ +{ + "layers": [ + { + "name": "LayoutView #document", + "bounds": [800, 600], + "contentsOpaque": true, + "drawsContent": true, + "paintInvalidations": [ + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [3, 39, 794, 28], + "reason": "style change" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [3, 39, 794, 28], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [3, 39, 794, 28], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [3, 39, 794, 28], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 23, 18], + "reason": "full" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 16, 18], + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [30, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 44, 9, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 8, 18], + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [8, 44, 8, 18], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + } + ] + } + ], + "objectPaintInvalidations": [ + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "style change" + }, + { + "object": "RootInlineBox", + "reason": "style change" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "layoutObject insertion" + }, + { + "object": "InlineTextBox 'a'", + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'ab'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'abc'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + } + ] +} +
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-expected.png new file mode 100644 index 0000000..3fc92bd9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-expected.txt new file mode 100644 index 0000000..833fcd3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-expected.txt
@@ -0,0 +1,12 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x84 + LayoutBlockFlow {HTML} at (0,0) size 800x84 + LayoutBlockFlow {BODY} at (8,16) size 784x52 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 599x17 + text run at (0,0) width 599: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,34) size 784x18 + LayoutListItem {LI} at (40,0) size 744x18 + LayoutListMarker (anonymous) at (-16,0) size 16x17: "1" + LayoutImage (floating) {IMG} at (0,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-expected.png new file mode 100644 index 0000000..6595519 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-expected.txt new file mode 100644 index 0000000..10b119f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-expected.txt
@@ -0,0 +1,18 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x120 + LayoutBlockFlow {HTML} at (0,0) size 800x120 + LayoutBlockFlow {BODY} at (8,16) size 784x88 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 599x17 + text run at (0,0) width 599: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,34) size 784x54 + LayoutListItem {LI} at (40,0) size 744x18 + LayoutListMarker (anonymous) at (-16,0) size 16x17: "1" + LayoutImage (floating) {IMG} at (0,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (40,18) size 744x18 + LayoutListMarker (anonymous) at (4,0) size 16x17: "2" + LayoutImage (floating) {IMG} at (20,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (40,36) size 744x18 + LayoutListMarker (anonymous) at (24,0) size 16x17: "3" + LayoutImage (floating) {IMG} at (40,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-rtl-expected.png new file mode 100644 index 0000000..375b8975 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-rtl-expected.txt new file mode 100644 index 0000000..1b85d28 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-nested-rtl-expected.txt
@@ -0,0 +1,18 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x120 + LayoutBlockFlow {HTML} at (0,0) size 800x120 + LayoutBlockFlow {BODY} at (8,16) size 784x88 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 599x17 + text run at (0,0) width 599: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,34) size 784x54 + LayoutListItem {LI} at (0,0) size 744x18 + LayoutListMarker (anonymous) at (744,0) size 16x17: "1" + LayoutImage (floating) {IMG} at (724,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (0,18) size 744x18 + LayoutListMarker (anonymous) at (724,0) size 16x17: "2" + LayoutImage (floating) {IMG} at (704,0) size 20x20 [bgcolor=#000000] + LayoutListItem {LI} at (0,36) size 744x18 + LayoutListMarker (anonymous) at (704,0) size 16x17: "3" + LayoutImage (floating) {IMG} at (684,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-rtl-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-rtl-expected.png new file mode 100644 index 0000000..45c2108 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-rtl-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-rtl-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-rtl-expected.txt new file mode 100644 index 0000000..4141faaf --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/fast/lists/list-marker-before-float-rtl-expected.txt
@@ -0,0 +1,12 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x84 + LayoutBlockFlow {HTML} at (0,0) size 800x84 + LayoutBlockFlow {BODY} at (8,16) size 784x52 + LayoutBlockFlow {P} at (0,0) size 784x18 + LayoutText {#text} at (0,0) size 599x17 + text run at (0,0) width 599: "crbug.com/548616: List markers shouldn't shift to avoid floats that come after them on a line." + LayoutBlockFlow {OL} at (0,34) size 784x18 + LayoutListItem {LI} at (0,0) size 744x18 + LayoutListMarker (anonymous) at (744,0) size 16x17: "1" + LayoutImage (floating) {IMG} at (724,0) size 20x20 [bgcolor=#000000]
diff --git a/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/caret-contenteditable-content-after-expected.png b/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/caret-contenteditable-content-after-expected.png new file mode 100644 index 0000000..43d8207 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/caret-contenteditable-content-after-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/caret-contenteditable-content-after-expected.txt b/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/caret-contenteditable-content-after-expected.txt new file mode 100644 index 0000000..82c392c4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/caret-contenteditable-content-after-expected.txt
@@ -0,0 +1,295 @@ +{ + "layers": [ + { + "name": "LayoutView #document", + "bounds": [800, 600], + "contentsOpaque": true, + "drawsContent": true, + "paintInvalidations": [ + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 786, 20], + "reason": "style change" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 786, 20], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 786, 20], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 786, 20], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 23, 17], + "reason": "full" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 16, 17], + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [30, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 8, 17], + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [8, 44, 8, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 19], + "reason": "invalidate paint rectangle" + } + ] + } + ], + "objectPaintInvalidations": [ + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "style change" + }, + { + "object": "RootInlineBox", + "reason": "style change" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "layoutObject insertion" + }, + { + "object": "InlineTextBox 'a'", + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'ab'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'abc'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + } + ] +} +
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png new file mode 100644 index 0000000..43d8207 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt new file mode 100644 index 0000000..82c392c4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/spinvalidation/paint/invalidation/caret-contenteditable-content-after-expected.txt
@@ -0,0 +1,295 @@ +{ + "layers": [ + { + "name": "LayoutView #document", + "bounds": [800, 600], + "contentsOpaque": true, + "drawsContent": true, + "paintInvalidations": [ + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 786, 20], + "reason": "style change" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 786, 20], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 786, 20], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 786, 20], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 23, 17], + "reason": "full" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 16, 17], + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [30, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [23, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [15, 44, 9, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutText #text", + "rect": [8, 44, 8, 17], + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "rect": [8, 44, 8, 17], + "reason": "forced by layout" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "rect": [7, 43, 3, 20], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [29, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [22, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 19], + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "rect": [14, 43, 3, 19], + "reason": "invalidate paint rectangle" + } + ] + } + ], + "objectPaintInvalidations": [ + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "style change" + }, + { + "object": "RootInlineBox", + "reason": "style change" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "layoutObject insertion" + }, + { + "object": "InlineTextBox 'a'", + "reason": "layoutObject insertion" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'ab'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutBlockFlow DIV id='editor'", + "reason": "forced by layout" + }, + { + "object": "RootInlineBox", + "reason": "forced by layout" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "Caret", + "reason": "invalidate paint rectangle" + }, + { + "object": "LayoutText #text", + "reason": "full" + }, + { + "object": "InlineTextBox 'abc'", + "reason": "full" + }, + { + "object": "LayoutTextFragment (anonymous)", + "reason": "forced by layout" + }, + { + "object": "InlineTextBox 'x'", + "reason": "forced by layout" + } + ] +} +
diff --git a/third_party/WebKit/Source/core/editing/FrameCaret.cpp b/third_party/WebKit/Source/core/editing/FrameCaret.cpp index 1246270..1a65d87 100644 --- a/third_party/WebKit/Source/core/editing/FrameCaret.cpp +++ b/third_party/WebKit/Source/core/editing/FrameCaret.cpp
@@ -187,11 +187,12 @@ m_caretVisibility == m_previousCaretVisibility) return; - if (m_previousCaretNode && shouldRepaintCaret(*m_previousCaretAnchorNode)) { + if (m_previousCaretAnchorNode && + shouldRepaintCaret(*m_previousCaretAnchorNode)) { invalidateLocalCaretRect(m_previousCaretAnchorNode.get(), m_previousCaretRect); } - if (newNode && shouldRepaintCaret(*newAnchorNode)) + if (newAnchorNode && shouldRepaintCaret(*newAnchorNode)) invalidateLocalCaretRect(newAnchorNode, newRect); m_previousCaretNode = newNode; m_previousCaretAnchorNode = newAnchorNode;
diff --git a/third_party/WebKit/Source/core/layout/LayoutListItem.cpp b/third_party/WebKit/Source/core/layout/LayoutListItem.cpp index 82abb454..56b4c6d1 100644 --- a/third_party/WebKit/Source/core/layout/LayoutListItem.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutListItem.cpp
@@ -358,10 +358,7 @@ // pretty wrong (https://crbug.com/554160). // FIXME: Need to account for relative positioning in the layout overflow. if (style()->isLeftToRightDirection()) { - LayoutUnit leftLineOffset = logicalLeftOffsetForLine( - blockOffset, logicalLeftOffsetForLine(blockOffset, DoNotIndentText), - DoNotIndentText); - markerLogicalLeft = leftLineOffset - lineOffset - paddingStart() - + markerLogicalLeft = m_marker->lineOffset() - lineOffset - paddingStart() - borderStart() + m_marker->marginStart(); m_marker->inlineBoxWrapper()->moveInInlineDirection(markerLogicalLeft - markerOldLogicalLeft); @@ -393,10 +390,7 @@ hitSelfPaintingLayer = true; } } else { - LayoutUnit rightLineOffset = logicalRightOffsetForLine( - blockOffset, logicalRightOffsetForLine(blockOffset, DoNotIndentText), - DoNotIndentText); - markerLogicalLeft = rightLineOffset - lineOffset + paddingStart() + + markerLogicalLeft = m_marker->lineOffset() - lineOffset + paddingStart() + borderStart() + m_marker->marginEnd(); m_marker->inlineBoxWrapper()->moveInInlineDirection(markerLogicalLeft - markerOldLogicalLeft);
diff --git a/third_party/WebKit/Source/core/layout/LayoutListMarker.cpp b/third_party/WebKit/Source/core/layout/LayoutListMarker.cpp index 806cda7..934d02d 100644 --- a/third_party/WebKit/Source/core/layout/LayoutListMarker.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutListMarker.cpp
@@ -43,7 +43,7 @@ const int cUAMarkerMarginEm = 1; LayoutListMarker::LayoutListMarker(LayoutListItem* item) - : LayoutBox(nullptr), m_listItem(item) { + : LayoutBox(nullptr), m_listItem(item), m_lineOffset() { setInline(true); setIsAtomicInlineLevel(true); } @@ -139,6 +139,17 @@ ASSERT(needsLayout()); LayoutAnalyzer::Scope analyzer(*this); + LayoutUnit blockOffset; + for (LayoutBox* o = parentBox(); o && o != listItem(); o = o->parentBox()) { + blockOffset += o->logicalTop(); + } + if (listItem()->style()->isLeftToRightDirection()) { + m_lineOffset = listItem()->logicalLeftOffsetForLine( + blockOffset, DoNotIndentText, LayoutUnit()); + } else { + m_lineOffset = listItem()->logicalRightOffsetForLine( + blockOffset, DoNotIndentText, LayoutUnit()); + } if (isImage()) { updateMarginsAndContent(); LayoutSize imageSize(imageBulletSize());
diff --git a/third_party/WebKit/Source/core/layout/LayoutListMarker.h b/third_party/WebKit/Source/core/layout/LayoutListMarker.h index fe87edde..47057d9 100644 --- a/third_party/WebKit/Source/core/layout/LayoutListMarker.h +++ b/third_party/WebKit/Source/core/layout/LayoutListMarker.h
@@ -62,6 +62,8 @@ const char* name() const override { return "LayoutListMarker"; } + LayoutUnit lineOffset() const { return m_lineOffset; } + protected: void willBeDestroyed() override; @@ -112,6 +114,7 @@ String m_text; Persistent<StyleImage> m_image; LayoutListItem* m_listItem; + LayoutUnit m_lineOffset; }; DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutListMarker, isListMarker());
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMarker.cpp b/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMarker.cpp index e092528..b31411281 100644 --- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMarker.cpp +++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMarker.cpp
@@ -73,8 +73,7 @@ } AffineTransform LayoutSVGResourceMarker::localToSVGParentTransform() const { - return AffineTransform::translation(m_viewport.x(), m_viewport.y()) * - viewportTransform(); + return viewportTransform(); } FloatPoint LayoutSVGResourceMarker::referencePoint() const { @@ -117,8 +116,8 @@ transform.rotate(orientType() == SVGMarkerOrientAngle ? angle() : autoAngle); transform.scale(markerScale); - // The 'origin' coordinate maps to SVGs refX/refY, given in coordinates - // relative to the viewport established by the marker. + // The reference point (refX, refY) is in the coordinate space of the marker's + // contents so we include the value in each marker's transform. FloatPoint mappedReferencePoint = viewportTransform().mapPoint(referencePoint()); transform.translate(-mappedReferencePoint.x(), -mappedReferencePoint.y()); @@ -138,8 +137,8 @@ SVGMarkerElement* marker = toSVGMarkerElement(element()); ASSERT(marker); - return marker->viewBoxToViewTransform(m_viewport.width(), - m_viewport.height()); + return marker->viewBoxToViewTransform(m_viewportSize.width(), + m_viewportSize.height()); } void LayoutSVGResourceMarker::calcViewport() { @@ -150,9 +149,9 @@ ASSERT(marker); SVGLengthContext lengthContext(marker); - float w = marker->markerWidth()->currentValue()->value(lengthContext); - float h = marker->markerHeight()->currentValue()->value(lengthContext); - m_viewport = FloatRect(0, 0, w, h); + float width = marker->markerWidth()->currentValue()->value(lengthContext); + float height = marker->markerHeight()->currentValue()->value(lengthContext); + m_viewportSize = FloatSize(width, height); } SVGTransformChange LayoutSVGResourceMarker::calculateLocalTransform() {
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMarker.h b/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMarker.h index 3c6bb3fe..63fe310 100644 --- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMarker.h +++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMarker.h
@@ -54,7 +54,9 @@ SVGMarkerUnitsType markerUnits() const; SVGMarkerOrientType orientType() const; - const FloatRect& viewport() const { return m_viewport; } + // The viewport origin is (0,0) and not the reference point because each + // marker instance includes the reference in markerTransformation(). + FloatRect viewport() const { return FloatRect(FloatPoint(), m_viewportSize); } static const LayoutSVGResourceType s_resourceType = MarkerResourceType; LayoutSVGResourceType resourceType() const override { return s_resourceType; } @@ -66,7 +68,7 @@ AffineTransform viewportTransform() const; - FloatRect m_viewport; + FloatSize m_viewportSize; }; DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceMarker,