diff --git a/base/process/memory_linux.cc b/base/process/memory_linux.cc index b6a513b..91eef21 100644 --- a/base/process/memory_linux.cc +++ b/base/process/memory_linux.cc
@@ -41,105 +41,6 @@ } // namespace -// TODO(primiano): Once the unified shim is on by default (crbug.com/550886) -// get rid of the code in this entire #if section. The whole termination-on-OOM -// logic is implemented in the shim. -#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \ - !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) && \ - !BUILDFLAG(USE_ALLOCATOR_SHIM) - -#if defined(LIBC_GLIBC) && !defined(USE_TCMALLOC) - -extern "C" { -void* __libc_malloc(size_t size); -void* __libc_realloc(void* ptr, size_t size); -void* __libc_calloc(size_t nmemb, size_t size); -void* __libc_valloc(size_t size); -#if PVALLOC_AVAILABLE == 1 -void* __libc_pvalloc(size_t size); -#endif -void* __libc_memalign(size_t alignment, size_t size); - -// Overriding the system memory allocation functions: -// -// For security reasons, we want malloc failures to be fatal. Too much code -// doesn't check for a NULL return value from malloc and unconditionally uses -// the resulting pointer. If the first offset that they try to access is -// attacker controlled, then the attacker can direct the code to access any -// part of memory. -// -// Thus, we define all the standard malloc functions here and mark them as -// visibility 'default'. This means that they replace the malloc functions for -// all Chromium code and also for all code in shared libraries. There are tests -// for this in process_util_unittest.cc. -// -// If we are using tcmalloc, then the problem is moot since tcmalloc handles -// this for us. Thus this code is in a !defined(USE_TCMALLOC) block. -// -// If we are testing the binary with AddressSanitizer, we should not -// redefine malloc and let AddressSanitizer do it instead. -// -// We call the real libc functions in this code by using __libc_malloc etc. -// Previously we tried using dlsym(RTLD_NEXT, ...) but that failed depending on -// the link order. Since ld.so needs calloc during symbol resolution, it -// defines its own versions of several of these functions in dl-minimal.c. -// Depending on the runtime library order, dlsym ended up giving us those -// functions and bad things happened. See crbug.com/31809 -// -// This means that any code which calls __libc_* gets the raw libc versions of -// these functions. - -#define DIE_ON_OOM_1(function_name) \ - void* function_name(size_t) __attribute__ ((visibility("default"))); \ - \ - void* function_name(size_t size) { \ - void* ret = __libc_##function_name(size); \ - if (ret == NULL && size != 0) \ - OnNoMemorySize(size); \ - return ret; \ - } - -#define DIE_ON_OOM_2(function_name, arg1_type) \ - void* function_name(arg1_type, size_t) \ - __attribute__ ((visibility("default"))); \ - \ - void* function_name(arg1_type arg1, size_t size) { \ - void* ret = __libc_##function_name(arg1, size); \ - if (ret == NULL && size != 0) \ - OnNoMemorySize(size); \ - return ret; \ - } - -DIE_ON_OOM_1(malloc) -DIE_ON_OOM_1(valloc) -#if PVALLOC_AVAILABLE == 1 -DIE_ON_OOM_1(pvalloc) -#endif - -DIE_ON_OOM_2(calloc, size_t) -DIE_ON_OOM_2(realloc, void*) -DIE_ON_OOM_2(memalign, size_t) - -// posix_memalign has a unique signature and doesn't have a __libc_ variant. -int posix_memalign(void** ptr, size_t alignment, size_t size) - __attribute__ ((visibility("default"))); - -int posix_memalign(void** ptr, size_t alignment, size_t size) { - // This will use the safe version of memalign, above. - *ptr = memalign(alignment, size); - return 0; -} - -} // extern C - -#else - -// TODO(mostynb@opera.com): dlsym dance - -#endif // LIBC_GLIBC && !USE_TCMALLOC - -#endif // !*_SANITIZER - void EnableTerminationOnHeapCorruption() { // On Linux, there nothing to do AFAIK. }
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 2d02a4f..9ae1ad4 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -680,10 +680,8 @@ // coloring. // TODO(ccameron): Disable this once color correct rasterization is functional // https://crbug.com/701942 - if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableHDR)) { - gfx::ColorSpace::CreateSRGB().GetICCProfile( - &resize_params->screen_info.icc_profile); - } + if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableHDR)) + resize_params->screen_info.color_space = gfx::ColorSpace::CreateSRGB(); if (delegate_) { resize_params->is_fullscreen_granted =
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc index 58b55db..870aa44 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -711,7 +711,7 @@ results->depth_per_component = display.depth_per_component(); results->is_monochrome = display.is_monochrome(); results->device_scale_factor = display.device_scale_factor(); - display.color_space().GetICCProfile(&results->icc_profile); + results->color_space = display.color_space(); // The Display rotation and the ScreenInfo orientation are not the same // angle. The former is the physical display rotation while the later is the
diff --git a/content/browser/web_contents/web_contents_view_mac.mm b/content/browser/web_contents/web_contents_view_mac.mm index f046623..1062bb5 100644 --- a/content/browser/web_contents/web_contents_view_mac.mm +++ b/content/browser/web_contents/web_contents_view_mac.mm
@@ -89,7 +89,7 @@ content::ScreenInfo results; results.device_scale_factor = static_cast<int>(display.device_scale_factor()); - display.color_space().GetICCProfile(&results.icc_profile); + results.color_space = display.color_space(); results.depth = display.color_depth(); results.depth_per_component = display.depth_per_component(); results.is_monochrome = display.is_monochrome();
diff --git a/content/common/view_messages.h b/content/common/view_messages.h index fc2ad5b0..d52258a 100644 --- a/content/common/view_messages.h +++ b/content/common/view_messages.h
@@ -56,12 +56,12 @@ #include "ui/base/ime/text_input_mode.h" #include "ui/base/ime/text_input_type.h" #include "ui/base/ui_base_types.h" +#include "ui/gfx/color_space.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect_f.h" #include "ui/gfx/geometry/vector2d.h" #include "ui/gfx/geometry/vector2d_f.h" -#include "ui/gfx/icc_profile.h" #include "ui/gfx/ipc/color/gfx_param_traits.h" #include "ui/gfx/ipc/gfx_param_traits.h" #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" @@ -164,7 +164,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::ScreenInfo) IPC_STRUCT_TRAITS_MEMBER(device_scale_factor) - IPC_STRUCT_TRAITS_MEMBER(icc_profile) + IPC_STRUCT_TRAITS_MEMBER(color_space) IPC_STRUCT_TRAITS_MEMBER(depth) IPC_STRUCT_TRAITS_MEMBER(depth_per_component) IPC_STRUCT_TRAITS_MEMBER(is_monochrome)
diff --git a/content/public/common/screen_info.cc b/content/public/common/screen_info.cc index acd02a0..488e368 100644 --- a/content/public/common/screen_info.cc +++ b/content/public/common/screen_info.cc
@@ -12,11 +12,9 @@ bool ScreenInfo::operator==(const ScreenInfo& other) const { return device_scale_factor == other.device_scale_factor && - icc_profile == other.icc_profile && - depth == other.depth && + color_space == other.color_space && depth == other.depth && depth_per_component == other.depth_per_component && - is_monochrome == other.is_monochrome && - rect == other.rect && + is_monochrome == other.is_monochrome && rect == other.rect && available_rect == other.available_rect && orientation_type == other.orientation_type && orientation_angle == other.orientation_angle;
diff --git a/content/public/common/screen_info.h b/content/public/common/screen_info.h index b758fed..0a2afbb 100644 --- a/content/public/common/screen_info.h +++ b/content/public/common/screen_info.h
@@ -7,8 +7,8 @@ #include "content/common/content_export.h" #include "content/public/common/screen_orientation_values.h" +#include "ui/gfx/color_space.h" #include "ui/gfx/geometry/rect.h" -#include "ui/gfx/icc_profile.h" namespace content { @@ -23,8 +23,8 @@ // pixels. float device_scale_factor = 1.f; - // The ICC profile of the output display. - gfx::ICCProfile icc_profile; + // The color space of the output display. + gfx::ColorSpace color_space = gfx::ColorSpace::CreateSRGB(); // The screen depth in bits per pixel uint32_t depth = 0;
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 506a5a1a..74369403 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc
@@ -2481,7 +2481,7 @@ const gfx::ICCProfile& icc_profile) { ResizeParams params; params.screen_info = screen_info_; - params.screen_info.icc_profile = icc_profile; + params.screen_info.color_space = icc_profile.GetColorSpace(); params.new_size = size(); params.visible_viewport_size = visible_viewport_size_; params.physical_backing_size = physical_backing_size_;
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index ed2476d7d..0519a5a0 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc
@@ -1219,7 +1219,7 @@ compositor_->SetViewportSize(params.physical_backing_size); compositor_->setBottomControlsHeight(params.bottom_controls_height); compositor_->SetRasterColorSpace( - screen_info_.icc_profile.GetParametricColorSpace()); + screen_info_.color_space.GetParametricApproximation()); // If surface synchronization is enable, then this will use the provided // |local_surface_id_| to submit the next generated CompositorFrame. // If the ID is not valid, then the compositor will defer commits until @@ -1317,7 +1317,7 @@ compositor_->SetViewportSize(physical_backing_size_); OnDeviceScaleFactorChanged(); compositor_->SetRasterColorSpace( - screen_info_.icc_profile.GetParametricColorSpace()); + screen_info_.color_space.GetParametricApproximation()); compositor_->SetContentSourceId(current_content_source_id_); compositor_->SetLocalSurfaceId(local_surface_id_); // For background pages and certain tests, we don't want to trigger @@ -2168,7 +2168,7 @@ blink::WebScreenInfo RenderWidget::GetScreenInfo() { blink::WebScreenInfo web_screen_info; web_screen_info.device_scale_factor = screen_info_.device_scale_factor; - web_screen_info.icc_profile = screen_info_.icc_profile; + web_screen_info.color_space = screen_info_.color_space; web_screen_info.depth = screen_info_.depth; web_screen_info.depth_per_component = screen_info_.depth_per_component; web_screen_info.is_monochrome = screen_info_.is_monochrome;
diff --git a/testing/buildbot/chromium.perf.json b/testing/buildbot/chromium.perf.json index 534c107..3554809 100644 --- a/testing/buildbot/chromium.perf.json +++ b/testing/buildbot/chromium.perf.json
@@ -24040,65 +24040,6 @@ "isolated_scripts": [ { "args": [ - "battor.steady_state", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "battor.steady_state", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "battor.steady_state", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "battor.steady_state.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "battor.trivial_pages", "-v", "--upload-results", @@ -24276,65 +24217,6 @@ }, { "args": [ - "blink_perf.css", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "blink_perf.css", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "blink_perf.css", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "blink_perf.css.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "blink_perf.dom", "-v", "--upload-results", @@ -24394,65 +24276,6 @@ }, { "args": [ - "blink_perf.events", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "blink_perf.events", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "blink_perf.events", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "blink_perf.events.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "blink_perf.layout", "-v", "--upload-results", @@ -24630,65 +24453,6 @@ }, { "args": [ - "blink_perf.shadow_dom", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "blink_perf.shadow_dom", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "blink_perf.shadow_dom", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "blink_perf.shadow_dom.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "blink_perf.svg", "-v", "--upload-results", @@ -25278,65 +25042,6 @@ } }, { - "args": [ - "kraken", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "kraken", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "kraken", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "kraken.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { "args": [], "isolate_name": "load_library_perf_tests", "name": "load_library_perf_tests", @@ -25417,65 +25122,6 @@ }, { "args": [ - "media.mse_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "media.mse_cases", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "media.mse_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "media.mse_cases.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "media.tough_video_cases", "-v", "--upload-results", @@ -25534,65 +25180,6 @@ } }, { - "args": [ - "media.tough_video_cases_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "media.tough_video_cases_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "media.tough_video_cases_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "media.tough_video_cases_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { "args": [], "isolate_name": "media_perftests", "name": "media_perftests", @@ -25731,65 +25318,6 @@ } }, { - "args": [ - "memory.long_running_idle_gmail_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "memory.long_running_idle_gmail_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "memory.long_running_idle_gmail_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "memory.long_running_idle_gmail_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { "args": [], "isolate_name": "net_perftests", "name": "net_perftests", @@ -26047,65 +25575,6 @@ }, { "args": [ - "page_cycler_v2_site_isolation.basic_oopif", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "page_cycler_v2_site_isolation.basic_oopif", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "page_cycler_v2_site_isolation.basic_oopif", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "page_cycler_v2_site_isolation.basic_oopif.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "power.idle_platform", "-v", "--upload-results", @@ -26253,65 +25722,6 @@ }, { "args": [ - "rasterize_and_record_micro.partial_invalidation", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "rasterize_and_record_micro.partial_invalidation", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "rasterize_and_record_micro.partial_invalidation", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "rasterize_and_record_micro.partial_invalidation.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "rasterize_and_record_micro.top_25", "-v", "--upload-results", @@ -26548,65 +25958,6 @@ }, { "args": [ - "smoothness.desktop_tough_pinch_zoom_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.desktop_tough_pinch_zoom_cases", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "smoothness.desktop_tough_pinch_zoom_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.desktop_tough_pinch_zoom_cases.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "smoothness.gpu_rasterization.tough_filters_cases", "-v", "--upload-results", @@ -26666,65 +26017,6 @@ }, { "args": [ - "smoothness.gpu_rasterization.tough_path_rendering_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.gpu_rasterization.tough_path_rendering_cases", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "smoothness.gpu_rasterization.tough_path_rendering_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.gpu_rasterization.tough_path_rendering_cases.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "smoothness.gpu_rasterization_and_decoding.image_decoding_cases", "-v", "--upload-results", @@ -26902,65 +26194,6 @@ }, { "args": [ - "smoothness.maps", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.maps", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "smoothness.maps", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.maps.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "smoothness.scrolling_tough_ad_cases", "-v", "--upload-results", @@ -27138,65 +26371,6 @@ }, { "args": [ - "smoothness.tough_animation_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.tough_animation_cases", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "smoothness.tough_animation_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.tough_animation_cases.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "smoothness.tough_canvas_cases", "-v", "--upload-results", @@ -27492,124 +26666,6 @@ }, { "args": [ - "smoothness.tough_texture_upload_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.tough_texture_upload_cases", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "smoothness.tough_texture_upload_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.tough_texture_upload_cases.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ - "smoothness.tough_webgl_ad_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.tough_webgl_ad_cases", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "smoothness.tough_webgl_ad_cases", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "smoothness.tough_webgl_ad_cases.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "smoothness.tough_webgl_cases", "-v", "--upload-results", @@ -27787,65 +26843,6 @@ }, { "args": [ - "start_with_ext.warm.blank_page", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "start_with_ext.warm.blank_page", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "start_with_ext.warm.blank_page", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "start_with_ext.warm.blank_page.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "startup.cold.blank_page", "-v", "--upload-results", @@ -27905,65 +26902,6 @@ }, { "args": [ - "startup.large_profile.cold.blank_page", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "startup.large_profile.cold.blank_page", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "startup.large_profile.cold.blank_page", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "startup.large_profile.cold.blank_page.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "startup.large_profile.warm.blank_page", "-v", "--upload-results", @@ -28200,65 +27138,6 @@ }, { "args": [ - "system_health.common_desktop", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "system_health.common_desktop", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "system_health.common_desktop", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "system_health.common_desktop.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "system_health.memory_desktop", "-v", "--upload-results", @@ -28318,65 +27197,6 @@ }, { "args": [ - "system_health.webview_startup", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "system_health.webview_startup", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "system_health.webview_startup", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "system_health.webview_startup.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "tab_switching.typical_25", "-v", "--upload-results", @@ -28810,65 +27630,6 @@ }, { "args": [ - "v8.infinite_scroll_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=release" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll_tbmv2", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": false, - "io_timeout": 3600 - } - }, - { - "args": [ - "v8.infinite_scroll_tbmv2", - "-v", - "--upload-results", - "--output-format=chartjson", - "--browser=reference", - "--output-trace-tag=_ref" - ], - "isolate_name": "telemetry_perf_tests", - "name": "v8.infinite_scroll_tbmv2.reference", - "override_compile_targets": [ - "telemetry_perf_tests" - ], - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "gpu": "102b:0534", - "id": "build152-m1", - "os": "Ubuntu-14.04", - "pool": "Chrome-perf" - } - ], - "expiration": 36000, - "hard_timeout": 10800, - "ignore_task_failure": true, - "io_timeout": 3600 - } - }, - { - "args": [ "v8.runtime_stats.top_25", "-v", "--upload-results",
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 index 3b30542..938bd97f 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
@@ -104,6 +104,9 @@ Bug(none) virtual/windows-directwrite/ [ Skip ] Bug(none) virtual/without-smil/ [ Skip ] +# Fail on SPv1, but succeed on SPv2 +crbug.com/472330 fast/borders/border-image-outset-split-inline-vertical-lr.html [ Pass ] + Bug(none) paint/transparency/compositing-alpha-fold-crash.html [ Failure ] Bug(none) paint/invalidation/clip-flex-text.html [ Pass Failure ] Bug(none) virtual/new-remote-playback-pipeline/media/controls/video-controls-with-cast-rendering.html [ Failure ] @@ -466,7 +469,6 @@ Bug(none) fast/block/float/nested-clearance.html [ Failure ] Bug(none) fast/block/float/relative-painted-twice.html [ Failure ] Bug(none) fast/block/float/shrink-to-avoid-float-complexity.html [ Failure ] -crbug.com/667946 fast/block/float/float-change-composited-scrolling.html [ Failure ] Bug(none) fast/block/margin-collapse/103.html [ Failure ] Bug(none) fast/block/margin-collapse/104.html [ Failure ] Bug(none) fast/block/margin-collapse/empty-clear-blocks.html [ Failure ] @@ -561,6 +563,7 @@ crbug.com/667946 fast/events/autoscroll-disabled-in-fix.html [ Skip ] Bug(none) fast/events/gesture-pinch-zoom-scroll-bubble.html [ Failure ] Bug(none) fast/events/keyboard-scroll-by-page.html [ Failure ] +Bug(none) fast/events/platform-wheelevent-in-scrolling-div.html [ Failure ] Bug(none) fast/events/platform-wheelevent-paging-x-in-scrolling-page.html [ Failure ] Bug(none) fast/events/platform-wheelevent-paging-xy-in-scrolling-page.html [ Failure ] Bug(none) fast/events/platform-wheelevent-paging-y-in-scrolling-page.html [ Failure ] @@ -1246,7 +1249,6 @@ Bug(none) paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root.html [ Failure ] Bug(none) paint/invalidation/selection/selection-within-composited-scroller.html [ Failure ] Bug(none) paint/invalidation/subpixel-offset-scaled-transform.html [ Failure ] -Bug(none) paint/invalidation/subpixel-shadow-included-in-invalidation.html [ Failure ] Bug(none) paint/invalidation/subtree-root-clip.html [ Failure ] Bug(none) paint/invalidation/subtree-root-skipped.html [ Failure ] Bug(none) paint/invalidation/svg/absolute-sized-content-with-resources.xhtml [ Failure ] @@ -1265,7 +1267,6 @@ Bug(none) paint/invalidation/svg/foreign-object-repaint.svg [ Failure ] Bug(none) paint/invalidation/svg/hairline-stroke-squarecap.svg [ Failure ] Bug(none) paint/invalidation/svg/image-animation-with-zoom.html [ Pass Failure ] -Bug(none) paint/invalidation/svg/image-href-change.svg [ Failure ] Bug(none) paint/invalidation/svg/image-with-clip-path.svg [ Failure ] Bug(none) paint/invalidation/svg/inner-svg-change-viewBox-contract.svg [ Failure ] Bug(none) paint/invalidation/svg/inner-svg-change-viewBox.svg [ Failure ] @@ -1286,7 +1287,6 @@ Bug(none) paint/invalidation/svg/repaint-in-scrolled-view.html [ Failure ] Bug(none) paint/invalidation/svg/resize-svg-invalidate-children-2.html [ Failure ] Bug(none) paint/invalidation/svg/resize-svg-invalidate-children.html [ Failure ] -Bug(none) paint/invalidation/svg/resource-client-removal.svg [ Failure ] Bug(none) paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem.html [ Failure ] Bug(none) paint/invalidation/svg/shape-transform-change.html [ Failure ] Bug(none) paint/invalidation/svg/tabgroup.svg [ Failure ] @@ -1335,18 +1335,10 @@ Bug(none) paint/invalidation/video-unmute-repaint.html [ Failure ] Bug(none) paint/invalidation/view-background-from-body-2.html [ Failure ] Bug(none) paint/invalidation/window-resize-background-image-fixed-centered-composited.html [ Failure ] -Bug(none) paint/invalidation/window-resize-background-image-fixed-centered.html [ Failure ] -Bug(none) paint/invalidation/window-resize-background-image-generated.html [ Failure ] -Bug(none) paint/invalidation/window-resize-background-image-non-fixed.html [ Failure ] -Bug(none) paint/invalidation/window-resize-centered-inline-under-fixed-pos.html [ Failure ] Bug(none) paint/invalidation/window-resize-frameset.html [ Failure ] Bug(none) paint/invalidation/window-resize-media-query.html [ Failure ] Bug(none) paint/invalidation/window-resize-percent-html.html [ Failure ] -Bug(none) paint/invalidation/window-resize-percent-width-height.html [ Failure ] -Bug(none) paint/invalidation/window-resize-positioned-bottom.html [ Failure ] -Bug(none) paint/invalidation/window-resize-positioned-percent-top.html [ Failure ] Bug(none) paint/invalidation/window-resize-vertical-writing-mode.html [ Failure ] -Bug(none) paint/invalidation/window-resize-viewport-percent.html [ Failure ] Bug(none) paint/masks/fieldset-mask.html [ Failure ] Bug(none) paint/overflow/fixed-background-scroll-in-frame.html [ Failure ] Bug(none) paint/pagination/pagination-change-clip-crash.html [ Failure ] @@ -1527,14 +1519,10 @@ crbug.com/644358 compositing/iframes/connect-compositing-iframe-delayed.html [ Failure ] crbug.com/644358 compositing/iframes/connect-compositing-iframe.html [ Failure ] crbug.com/644358 compositing/iframes/enter-compositing-iframe.html [ Failure ] -crbug.com/644358 compositing/iframes/repaint-after-losing-scrollbars.html [ Failure ] crbug.com/644358 compositing/squashing/squashed-layer-loses-graphicslayer.html [ Failure ] crbug.com/644358 fast/canvas/canvas-composite-video-shadow.html [ Failure ] crbug.com/644358 fast/canvas/imagebitmap/transferFromImageBitmap-no-alpha.html [ Failure ] crbug.com/644358 fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html [ Failure ] -crbug.com/644358 fast/forms/relayout-shifts-inner-editor.html [ Failure ] -crbug.com/644358 images/color-profile-munsell-adobe-to-srgb.html [ Failure ] -crbug.com/644358 images/color-profile-munsell-srgb-to-srgb.html [ Failure ] crbug.com/644358 paint/invalidation/justify-items-overflow-change.html [ Failure ] crbug.com/644358 paint/invalidation/justify-self-overflow-change.html [ Failure ] crbug.com/644358 paint/invalidation/multi-subsequence-scrolled.html [ Failure ] @@ -1552,28 +1540,17 @@ crbug.com/644358 paint/invalidation/table/collapsed-border-current-color.html [ Crash ] crbug.com/644358 paint/invalidation/video-paint-invalidation.html [ Crash ] crbug.com/644358 svg/animations/animateMotion_changingPath.html [ Failure ] -crbug.com/644358 svg/custom/object-current-scale.html [ Failure ] -crbug.com/644358 svg/dynamic-updates/SVGTextElement-dom-transform-attr.html [ Failure ] -crbug.com/644358 svg/dynamic-updates/SVGTextElement-svgdom-transform-prop.html [ Failure ] -crbug.com/644358 svg/dynamic-updates/SVGUseElement-svgdom-href1-prop.html [ Failure ] -crbug.com/644358 svg/dynamic-updates/SVGUseElement-dom-href1-attr.html [ Failure ] -crbug.com/644358 svg/transforms/change-transform-to-none-shape.html [ Failure ] -crbug.com/644358 svg/transforms/change-transform-to-none-text.html [ Failure ] Bug(none) compositing/layer-creation/main-thread-scrolling-for-non-composited-fixed-position-if-overflow-hidden.html [ Failure ] Bug(none) compositing/layer-creation/main-thread-scrolling-for-non-composited-fixed-position.html [ Failure ] -Bug(none) compositing/squashing/invalidations-with-large-negative-margin-inline-content.html [ Failure ] Bug(none) fast/dom/vertical-scrollbar-in-rtl.html [ Failure ] Bug(none) fast/events/continuous-platform-wheelevent-in-scrolling-div.html [ Failure ] -Bug(none) fast/events/middleClickAutoscroll-click-hyperlink.html [ Failure ] -Bug(none) fast/events/platform-wheelevent-in-scrolling-div.html [ Failure ] Bug(none) fast/events/platform-wheelevent-paging-x-in-scrolling-div.html [ Failure ] Bug(none) fast/events/platform-wheelevent-paging-xy-in-scrolling-div.html [ Failure ] Bug(none) fast/events/platform-wheelevent-paging-y-in-scrolling-div.html [ Failure ] Bug(none) fast/events/scroll-in-scaled-page-with-overflow-hidden.html [ Failure ] Bug(none) fast/events/scrollbar-double-click.html [ Failure ] Bug(none) fast/events/wheel/wheelevent-basic.html [ Failure ] -Bug(none) fast/events/wheel/wheelevent-in-scrolling-div.html [ Failure ] Bug(none) fast/forms/suggestion-picker/date-suggestion-picker-mouse-operations.html [ Failure ] Bug(none) fast/forms/suggestion-picker/datetimelocal-suggestion-picker-mouse-operations.html [ Failure ] Bug(none) fast/forms/suggestion-picker/month-suggestion-picker-mouse-operations.html [ Failure ] @@ -1583,14 +1560,7 @@ Bug(none) fast/multicol/nested-with-clipped-first-column.html [ Failure ] Bug(none) fast/scrolling/absolute-position-behind-scrollbar.html [ Failure ] Bug(none) fast/scrolling/fixed-position-behind-scrollbar.html [ Failure Timeout ] -Bug(none) fast/events/middleClickAutoscroll-in-iframe.html [ Timeout ] -Bug(none) fast/events/middleClickAutoscroll-click.html [ Timeout ] Bug(none) fast/events/remove-child-onscroll.html [ Timeout ] -Bug(none) fast/events/middleClickAutoscroll-drag.html [ Timeout ] -Bug(none) fast/events/middleClickAutoscroll-nested-divs-forbidden.html [ Timeout ] -Bug(none) fast/events/middleClickAutoscroll-nested-divs.html [ Timeout ] -Bug(none) fast/events/middleClickAutoscroll-event-fired.html [ Timeout ] -Bug(none) fast/events/middleClickAutoscroll-latching.html [ Timeout ] Bug(none) fast/events/mouse-wheel-main-frame-scroll.html [ Timeout ] Bug(none) fast/scrolling/hover-during-scroll.html [ Timeout ] @@ -1705,11 +1675,7 @@ crbug.com/589265 css3/blending/mix-blend-mode-isolated-group-1.html [ Failure ] crbug.com/589265 css3/blending/mix-blend-mode-isolated-group-2.html [ Failure ] crbug.com/589265 css3/blending/mix-blend-mode-isolated-group-3.html [ Failure ] -crbug.com/589265 css3/blending/svg-blend-color.html [ Failure ] crbug.com/589265 css3/blending/svg-blend-exclusion.html [ Failure ] -crbug.com/589265 css3/blending/svg-blend-hue.html [ Failure ] -crbug.com/589265 css3/blending/svg-blend-luminosity.html [ Failure ] -crbug.com/589265 css3/blending/svg-blend-saturation.html [ Failure ] crbug.com/589265 css3/blending/svg-blend-screen.html [ Failure ] crbug.com/589265 fast/css/ZeroOpacityLayers.html [ Failure ] crbug.com/589265 fast/css/ZeroOpacityLayers2.html [ Failure ] @@ -1789,8 +1755,6 @@ crbug.com/692310 virtual/threaded/animations/composited-animations-rotate-zero-degrees.html [ Failure ] Bug(none) virtual/threaded/animations/3d/change-transform-in-end-event.html [ Failure ] -Bug(none) virtual/threaded/animations/composited-pseudo-element-animation.html [ Failure ] -Bug(none) virtual/threaded/transitions/transition-end-event-rendering.html [ Failure ] Bug(none) virtual/threaded/animations/svg-attribute-composition/svg-startOffset-composition.html [ Failure ] # Compositor Worker logic has not yet been fully ported to SPv2. @@ -1820,7 +1784,6 @@ # The following debug crashes have not been triaged. crbug.com/702805 css3/blending/svg-blend-layer-filter.html [ Crash ] crbug.com/702805 virtual/threaded/compositing/visibility/overlays-persist-on-navigation.html [ Crash ] -crbug.com/702805 svg/text/removing-id-on-path.html [ Failure ] crbug.com/702805 svg/filters/feImage-self-referencing.html [ Crash ] crbug.com/702805 svg/filters/feImage-self-and-other-referencing.html [ Crash ] crbug.com/702805 fast/forms/select-popup/popup-menu-appearance-coarse.html [ Crash Timeout ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 54d501b4..b410d9a0 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -48,20 +48,17 @@ # --- End SPV2 Tests --- ########## Ref tests can't be rebaselined ########## -crbug.com/504613 crbug.com/524248 paint/images/image-backgrounds-not-antialiased.html [ Failure ] -crbug.com/504613 crbug.com/524248 virtual/disable-spinvalidation/paint/images/image-backgrounds-not-antialiased.html [ Failure ] +crbug.com/504613 crbug.com/524248 [ Mac ] paint/images/image-backgrounds-not-antialiased.html [ Failure ] +crbug.com/504613 crbug.com/524248 [ Mac ] virtual/disable-spinvalidation/paint/images/image-backgrounds-not-antialiased.html [ Failure ] -crbug.com/619103 paint/invalidation/background-resize-width.html [ Failure ] -crbug.com/619103 virtual/disable-spinvalidation/paint/invalidation/background-resize-width.html [ Failure ] +crbug.com/619103 paint/invalidation/background-resize-width.html [ Failure Pass ] +crbug.com/619103 virtual/disable-spinvalidation/paint/invalidation/background-resize-width.html [ Failure Pass ] crbug.com/627844 virtual/gpu/fast/canvas/canvas-createImageBitmap-colorClamping.html [ Failure ] # Scanlines off by 1, but code path should be the same crbug.com/644433 virtual/gpu/fast/canvas/OffscreenCanvas-2d-pattern-in-worker.html [ Failure ] -crbug.com/667045 paint/invalidation/table/composited-cell-collapsed-border-add-anonymous.html [ Crash ] -crbug.com/667045 virtual/disable-spinvalidation/paint/invalidation/table/composited-cell-collapsed-border-add-anonymous.html [ Crash ] - crbug.com/702006 paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint.html [ Failure ] crbug.com/702006 virtual/disable-spinvalidation/paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint.html [ Failure ] @@ -1514,9 +1511,6 @@ # These need a rebaseline due crbug.com/504745 on Windows when they are activated again. crbug.com/521124 crbug.com/410145 [ Win7 ] fast/css/font-weight-1.html [ Pass Failure ] -# Temporary, until we stop use_system_harfbuzz on Linux including non-official builds -crbug.com/462689 [ Linux ] fast/text/unicode-variation-selector.html [ Failure ] - # Disabled briefly until test runner support lands. crbug.com/479533 accessibility/show-context-menu.html [ Skip ] crbug.com/479533 accessibility/show-context-menu-shadowdom.html [ Skip ]
diff --git a/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/float/overhanging-float-crashes-when-sibling-becomes-formatting-context-expected.txt b/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/float/overhanging-float-crashes-when-sibling-becomes-formatting-context-expected.txt index 78eec79..f04680a 100644 --- a/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/float/overhanging-float-crashes-when-sibling-becomes-formatting-context-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/float/overhanging-float-crashes-when-sibling-becomes-formatting-context-expected.txt
@@ -1,2 +1,2 @@ -crbug.com/459533: Don't crash when changing an element to one that interacts with other floats to one that can't. +crbug.com/459533: Don't crash when changing an element to one that interacts with other floats to one that can't.
diff --git a/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/float/selection-gap-clip-out-tiger-crash-expected.txt b/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/float/selection-gap-clip-out-tiger-crash-expected.txt new file mode 100644 index 0000000..04863308 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/float/selection-gap-clip-out-tiger-crash-expected.txt
@@ -0,0 +1,29 @@ +Simply do a select all to see the crash +C +D +E +F +G +H +I +K +L +M +N +O +PQ +R +ST +U +VW +X +Y +ZAA +BB +CCDD +EE +FFGG +HH +IIJJ +KK +END!
diff --git a/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-discards-margin-expected.txt b/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-discards-margin-expected.txt deleted file mode 100644 index 9229098..0000000 --- a/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-discards-margin-expected.txt +++ /dev/null
@@ -1,2 +0,0 @@ -crbug.com/479275: Don't ASSERT when a self-collapsing block discards its margin -
diff --git a/third_party/WebKit/Source/core/css/CSSProperties.json5 b/third_party/WebKit/Source/core/css/CSSProperties.json5 index f1e73d0d..fa5f10b 100644 --- a/third_party/WebKit/Source/core/css/CSSProperties.json5 +++ b/third_party/WebKit/Source/core/css/CSSProperties.json5
@@ -950,6 +950,7 @@ field_group: "rare-non-inherited", default_value: "nullptr", wrapper_pointer_name: "RefPtr", + include_paths: ["core/style/ShadowList.h"], }, { name: "box-sizing", @@ -1216,6 +1217,7 @@ field_template: "external", default_value: "Length(kAuto)", field_group: "rare-non-inherited->flexible-box", + include_paths: ["platform/Length.h"], }, { name: "flex-direction", @@ -1284,6 +1286,7 @@ field_template: "external", default_value: "Vector<GridTrackSize>(1, GridTrackSize(Length(kAuto)))", field_group: "rare-non-inherited->grid", + include_paths: ["platform/wtf/Vector.h", "core/style/GridTrackSize.h"], }, { name: "grid-auto-flow", @@ -1306,6 +1309,7 @@ field_template: "external", default_value: "Vector<GridTrackSize>(1, GridTrackSize(Length(kAuto)))", field_group: "rare-non-inherited->grid", + include_paths: ["platform/wtf/Vector.h", "core/style/GridTrackSize.h"], }, { name: "grid-column-end", @@ -1316,6 +1320,7 @@ field_template: "external", default_value: "GridPosition()", field_group: "rare-non-inherited->grid-item", + include_paths: ["core/style/GridPosition.h"], }, { name: "grid-column-gap", @@ -1325,6 +1330,7 @@ field_template: "external", default_value: "Length(kFixed)", field_group: "rare-non-inherited->grid", + include_paths: ["platform/Length.h"], }, { name: "grid-column-start", @@ -1335,6 +1341,7 @@ field_template: "external", default_value: "GridPosition()", field_group: "rare-non-inherited->grid-item", + include_paths: ["core/style/GridPosition.h"], }, { name: "grid-row-end", @@ -1345,6 +1352,7 @@ field_template: "external", default_value: "GridPosition()", field_group: "rare-non-inherited->grid-item", + include_paths: ["core/style/GridPosition.h"], }, { name: "grid-row-gap", @@ -1354,6 +1362,7 @@ field_template: "external", default_value: "Length(kFixed)", field_group: "rare-non-inherited->grid", + include_paths: ["platform/Length.h"], }, { name: "grid-row-start", @@ -1364,6 +1373,7 @@ field_template: "external", default_value: "GridPosition()", field_group: "rare-non-inherited->grid-item", + include_paths: ["core/style/GridPosition.h"], }, { name: "grid-template-areas", @@ -1380,6 +1390,7 @@ type_name: "Vector<GridTrackSize>", field_group: "rare-non-inherited->grid", default_value: "Vector<GridTrackSize>()", + include_paths: ["platform/wtf/Vector.h", "core/style/GridTrackSize.h"], }, { name: "grid-template-rows", @@ -1390,6 +1401,7 @@ type_name: "Vector<GridTrackSize>", field_group: "rare-non-inherited->grid", default_value: "Vector<GridTrackSize>()", + include_paths: ["platform/wtf/Vector.h", "core/style/GridTrackSize.h"], }, { name: "height", @@ -1548,6 +1560,7 @@ wrapper_pointer_name: "Persistent", default_value: "nullptr", field_group: "rare-inherited", + include_paths: ["core/style/StyleImage.h"], }, { name: "list-style-position",
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.cc index 1038485..8533bd9 100644 --- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.cc +++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.cc
@@ -21,8 +21,7 @@ // lines and collapsible spaces in Phase I. // [1] https://drafts.csswg.org/css-text-3/#line-break-transform // [2] https://drafts.csswg.org/css-text-3/#white-space-phase-2 - unsigned next_start_offset = text_.length(); - RemoveTrailingCollapsibleSpaceIfExists(&next_start_offset); + RemoveTrailingCollapsibleSpaceIfExists(); return text_.ToString(); } @@ -174,7 +173,8 @@ } if (last_collapsible_space_ == CollapsibleSpace::kNewline) { - RemoveTrailingCollapsibleNewlineIfNeeded(&start_offset, string, i, style); + RemoveTrailingCollapsibleNewlineIfNeeded(string, i, style); + start_offset = std::min(start_offset, text_.length()); } size_t end_of_non_space = string.Find(IsCollapsibleSpace, i + 1); @@ -240,8 +240,7 @@ void NGInlineItemsBuilder::AppendForcedBreak(const ComputedStyle* style, LayoutObject* layout_object) { // Remove collapsible spaces immediately before a preserved newline. - unsigned start_offset = text_.length(); - RemoveTrailingCollapsibleSpaceIfExists(&start_offset); + RemoveTrailingCollapsibleSpaceIfExists(); Append(NGInlineItem::kControl, kNewlineCharacter, style, layout_object); @@ -262,15 +261,23 @@ last_collapsible_space_ = CollapsibleSpace::kNone; } -void NGInlineItemsBuilder::Append(NGInlineItem::NGInlineItemType type, - const ComputedStyle* style, - LayoutObject* layout_object) { +void NGInlineItemsBuilder::AppendOpaque(NGInlineItem::NGInlineItemType type, + UChar character) { + text_.Append(character); + unsigned end_offset = text_.length(); + AppendItem(items_, type, end_offset - 1, end_offset, nullptr, nullptr); +} + +void NGInlineItemsBuilder::AppendOpaque(NGInlineItem::NGInlineItemType type, + const ComputedStyle* style, + LayoutObject* layout_object) { unsigned end_offset = text_.length(); AppendItem(items_, type, end_offset, end_offset, style, layout_object); } +// Removes the collapsible newline at the end of |text_| if exists and the +// removal conditions met. void NGInlineItemsBuilder::RemoveTrailingCollapsibleNewlineIfNeeded( - unsigned* next_start_offset, const String& after, unsigned after_index, const ComputedStyle* after_style) { @@ -287,57 +294,67 @@ } if (ShouldRemoveNewline(text_, before_style, after, after_index, after_style)) - RemoveTrailingCollapsibleSpace(next_start_offset); + RemoveTrailingCollapsibleSpace(text_.length() - 1); } -void NGInlineItemsBuilder::RemoveTrailingCollapsibleSpaceIfExists( - unsigned* next_start_offset) { - if (last_collapsible_space_ != CollapsibleSpace::kNone && !text_.IsEmpty() && - text_[text_.length() - 1] == kSpaceCharacter) - RemoveTrailingCollapsibleSpace(next_start_offset); +// Removes the collapsible space at the end of |text_| if exists. +void NGInlineItemsBuilder::RemoveTrailingCollapsibleSpaceIfExists() { + if (last_collapsible_space_ == CollapsibleSpace::kNone || text_.IsEmpty()) + return; + + // Look for the last space character since characters that are opaque to + // whitespace collapsing may be appended. + for (unsigned i = text_.length(); i;) { + UChar ch = text_[--i]; + if (ch == kSpaceCharacter) { + RemoveTrailingCollapsibleSpace(i); + return; + } + + // AppendForcedBreak sets CollapsibleSpace::kSpace to ignore leading + // spaces. In this case, the trailing collapsible space does not exist. + if (ch == kNewlineCharacter) + return; + } + NOTREACHED(); } -void NGInlineItemsBuilder::RemoveTrailingCollapsibleSpace( - unsigned* next_start_offset) { +// Removes the collapsible space at the specified index. +void NGInlineItemsBuilder::RemoveTrailingCollapsibleSpace(unsigned index) { DCHECK_NE(last_collapsible_space_, CollapsibleSpace::kNone); DCHECK(!text_.IsEmpty()); - DCHECK_EQ(text_[text_.length() - 1], kSpaceCharacter); + DCHECK_EQ(text_[index], kSpaceCharacter); - unsigned new_size = text_.length() - 1; - text_.Resize(new_size); + text_.erase(index); last_collapsible_space_ = CollapsibleSpace::kNone; - if (*next_start_offset <= new_size) - return; - *next_start_offset = new_size; - - // Adjust the last item if the removed space is already appended. + // Adjust items if the removed space is already included. for (unsigned i = items_->size(); i > 0;) { NGInlineItem& item = (*items_)[--i]; - DCHECK_EQ(item.EndOffset(), new_size + 1); - if (item.Type() == NGInlineItem::kText) { - DCHECK_GE(item.Length(), 1u); - if (item.Length() > 1) - item.SetEndOffset(new_size); - else + if (index >= item.EndOffset()) + return; + if (item.StartOffset() <= index) { + if (item.Length() == 1) { + DCHECK_EQ(item.StartOffset(), index); + DCHECK_EQ(item.Type(), NGInlineItem::kText); items_->erase(i); - break; + } else { + item.SetEndOffset(item.EndOffset() - 1); + } + return; } - if (!item.Length()) { - // Trailing spaces can be removed across non-character items. - item.SetOffset(new_size, new_size); - continue; - } - NOTREACHED(); - break; + + // Trailing spaces can be removed across non-character items. + // Adjust their offsets if after the removed index. + item.SetOffset(item.StartOffset() - 1, item.EndOffset() - 1); } } void NGInlineItemsBuilder::AppendBidiControl(const ComputedStyle* style, UChar ltr, UChar rtl) { - Append(NGInlineItem::kBidiControl, - style->Direction() == TextDirection::kRtl ? rtl : ltr); + AppendOpaque(NGInlineItem::kBidiControl, + IsLtr(style->Direction()) ? ltr : rtl); } void NGInlineItemsBuilder::EnterBlock(const ComputedStyle* style) { @@ -389,11 +406,11 @@ Enter(node, kPopDirectionalIsolateCharacter); break; case UnicodeBidi::kPlaintext: - Append(NGInlineItem::kBidiControl, kFirstStrongIsolateCharacter); + AppendOpaque(NGInlineItem::kBidiControl, kFirstStrongIsolateCharacter); Enter(node, kPopDirectionalIsolateCharacter); break; case UnicodeBidi::kIsolateOverride: - Append(NGInlineItem::kBidiControl, kFirstStrongIsolateCharacter); + AppendOpaque(NGInlineItem::kBidiControl, kFirstStrongIsolateCharacter); AppendBidiControl(style, kLeftToRightOverrideCharacter, kRightToLeftOverrideCharacter); Enter(node, kPopDirectionalIsolateCharacter); @@ -401,7 +418,7 @@ break; } - Append(NGInlineItem::kOpenTag, style, node); + AppendOpaque(NGInlineItem::kOpenTag, style, node); } void NGInlineItemsBuilder::Enter(LayoutObject* node, UChar character_to_exit) { @@ -416,14 +433,14 @@ void NGInlineItemsBuilder::ExitInline(LayoutObject* node) { DCHECK(node); - Append(NGInlineItem::kCloseTag, node->Style(), node); + AppendOpaque(NGInlineItem::kCloseTag, node->Style(), node); Exit(node); } void NGInlineItemsBuilder::Exit(LayoutObject* node) { while (!exits_.IsEmpty() && exits_.back().node == node) { - Append(NGInlineItem::kBidiControl, exits_.back().character); + AppendOpaque(NGInlineItem::kBidiControl, exits_.back().character); exits_.pop_back(); } }
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h index 9f295706..87195e47 100644 --- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h +++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h
@@ -63,10 +63,16 @@ const ComputedStyle* = nullptr, LayoutObject* = nullptr); - // Append a non-character item. - void Append(NGInlineItem::NGInlineItemType, - const ComputedStyle* = nullptr, - LayoutObject* = nullptr); + // Append a character. + // The character is opaque to space collapsing; i.e., spaces before this + // character and after this character can collapse as if this character does + // not exist. + void AppendOpaque(NGInlineItem::NGInlineItemType, UChar); + + // Append a non-character item that is opaque to space collapsing. + void AppendOpaque(NGInlineItem::NGInlineItemType, + const ComputedStyle* = nullptr, + LayoutObject* = nullptr); // Append a Bidi control character, for LTR or RTL depends on the style. void AppendBidiControl(const ComputedStyle*, UChar ltr, UChar rtl); @@ -112,12 +118,9 @@ // This function determines whether to add the newline or ignore. void ProcessPendingNewline(const String&, const ComputedStyle*); - // Removes the collapsible space at the end of |text_| if exists. - void RemoveTrailingCollapsibleSpaceIfExists(unsigned*); - void RemoveTrailingCollapsibleSpace(unsigned*); - - void RemoveTrailingCollapsibleNewlineIfNeeded(unsigned*, - const String&, + void RemoveTrailingCollapsibleSpaceIfExists(); + void RemoveTrailingCollapsibleSpace(unsigned); + void RemoveTrailingCollapsibleNewlineIfNeeded(const String&, unsigned, const ComputedStyle*);
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder_test.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder_test.cc index dac3a12..49323cc 100644 --- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder_test.cc +++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder_test.cc
@@ -220,6 +220,18 @@ "when both sides are Wide."; } +TEST_F(NGInlineItemsBuilderTest, OpaqueToSpaceCollapsing) { + NGInlineItemsBuilder builder(&items_); + builder.Append("Hello ", style_.Get()); + builder.AppendOpaque(NGInlineItem::kBidiControl, + kFirstStrongIsolateCharacter); + builder.Append(" ", style_.Get()); + builder.AppendOpaque(NGInlineItem::kBidiControl, + kFirstStrongIsolateCharacter); + builder.Append(" World", style_.Get()); + EXPECT_EQ(String(u"Hello \u2068\u2068World"), builder.ToString()); +} + TEST_F(NGInlineItemsBuilderTest, CollapseAroundReplacedElement) { NGInlineItemsBuilder builder(&items_); builder.Append("Hello ", style_.Get());
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc index 6751cb3..d508b03 100644 --- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc +++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
@@ -230,12 +230,10 @@ // Add floats and positioned objects in the same way as atomic inlines. // Because these objects need positions, they will be handled in // NGInlineLayoutAlgorithm. - builder->Append(NGInlineItem::kFloating, kObjectReplacementCharacter, - nullptr, node); + builder->AppendOpaque(NGInlineItem::kFloating, nullptr, node); } else if (node->IsOutOfFlowPositioned()) { - builder->Append(NGInlineItem::kOutOfFlowPositioned, - kObjectReplacementCharacter, nullptr, node); + builder->AppendOpaque(NGInlineItem::kOutOfFlowPositioned, nullptr, node); } else if (node->IsAtomicInlineLevel()) { // For atomic inlines add a unicode "object replacement character" to
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp index 2124f45c..472011e 100644 --- a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp +++ b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
@@ -461,6 +461,7 @@ bool ImageResource::ShouldShowPlaceholder() const { switch (placeholder_option_) { case PlaceholderOption::kShowAndReloadPlaceholderAlways: + case PlaceholderOption::kShowAndDoNotReloadPlaceholder: return true; case PlaceholderOption::kReloadPlaceholderOnDecodeError: case PlaceholderOption::kDoNotReloadPlaceholder: @@ -476,6 +477,7 @@ return ErrorOccurred(); case PlaceholderOption::kReloadPlaceholderOnDecodeError: return GetStatus() == ResourceStatus::kDecodeError; + case PlaceholderOption::kShowAndDoNotReloadPlaceholder: case PlaceholderOption::kDoNotReloadPlaceholder: return false; } @@ -518,6 +520,8 @@ // The reloaded image should not use any previews transformations. WebURLRequest::PreviewsState previews_state_for_reload = WebURLRequest::kPreviewsNoTransform; + WebURLRequest::PreviewsState old_previews_state = + GetResourceRequest().GetPreviewsState(); if (policy == kReloadIfNeeded && (GetResourceRequest().GetPreviewsState() & WebURLRequest::kClientLoFiOn)) { @@ -532,7 +536,13 @@ if (placeholder_option_ != PlaceholderOption::kDoNotReloadPlaceholder) ClearRangeRequestHeader(); - placeholder_option_ = PlaceholderOption::kDoNotReloadPlaceholder; + + if (old_previews_state & WebURLRequest::kClientLoFiOn && + policy != kReloadAlways) { + placeholder_option_ = PlaceholderOption::kShowAndDoNotReloadPlaceholder; + } else { + placeholder_option_ = PlaceholderOption::kDoNotReloadPlaceholder; + } if (IsLoading()) { Loader()->Cancel();
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResource.h b/third_party/WebKit/Source/core/loader/resource/ImageResource.h index fbc4bf1..bc687fc 100644 --- a/third_party/WebKit/Source/core/loader/resource/ImageResource.h +++ b/third_party/WebKit/Source/core/loader/resource/ImageResource.h
@@ -163,6 +163,11 @@ // Do not show or reload placeholder. kDoNotReloadPlaceholder, + // Show placeholder, and do not reload. The original image will still be + // loaded and shown if the image is explicitly reloaded, e.g. when + // ReloadIfLoFiOrPlaceholderImage is called with kReloadAlways. + kShowAndDoNotReloadPlaceholder, + // Do not show placeholder, reload only when decode error occurs. kReloadPlaceholderOnDecodeError,
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp index fce9e1a..b59dcbb4 100644 --- a/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp +++ b/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp
@@ -190,7 +190,8 @@ ImageResource* image_resource, ImageResourceContent* content, MockImageResourceObserver* observer, - WebCachePolicy policy_for_reload) { + WebCachePolicy policy_for_reload, + bool placeholder_before_reload) { const char* data = reinterpret_cast<const char*>(kJpegImage2); constexpr size_t kDataLength = sizeof(kJpegImage2); constexpr int kImageWidth = 50; @@ -200,7 +201,7 @@ // reloading. EXPECT_EQ(ResourceStatus::kPending, image_resource->GetStatus()); EXPECT_FALSE(image_resource->ResourceBuffer()); - EXPECT_FALSE(image_resource->ShouldShowPlaceholder()); + EXPECT_EQ(placeholder_before_reload, image_resource->ShouldShowPlaceholder()); EXPECT_EQ(g_null_atom, image_resource->GetResourceRequest().HttpHeaderField("range")); EXPECT_EQ(policy_for_reload, @@ -243,7 +244,6 @@ EXPECT_FALSE(content->GetImage()->IsNull()); EXPECT_EQ(kImageWidth, content->GetImage()->width()); EXPECT_EQ(kImageHeight, content->GetImage()->height()); - EXPECT_TRUE(content->GetImage()->IsBitmapImage()); EXPECT_FALSE(content->GetImage()->PaintImageForCurrentFrame().is_multipart()); } @@ -599,7 +599,7 @@ EXPECT_EQ(3, observer->ImageChangedCount()); TestThatReloadIsStartedThenServeReload( test_url, image_resource, image_resource->GetContent(), observer.get(), - WebCachePolicy::kBypassingCache); + WebCachePolicy::kBypassingCache, false); } TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinishedWithOldHeaders) { @@ -642,7 +642,7 @@ EXPECT_EQ(3, observer->ImageChangedCount()); TestThatReloadIsStartedThenServeReload( test_url, image_resource, image_resource->GetContent(), observer.get(), - WebCachePolicy::kBypassingCache); + WebCachePolicy::kBypassingCache, false); } TEST(ImageResourceTest, @@ -725,9 +725,9 @@ EXPECT_EQ(3, observer->ImageChangedCount()); - TestThatReloadIsStartedThenServeReload(test_url, image_resource, content, - observer.get(), - WebCachePolicy::kBypassingCache); + TestThatReloadIsStartedThenServeReload( + test_url, image_resource, content, observer.get(), + WebCachePolicy::kBypassingCache, false); GetMemoryCache()->Remove(image_resource); } @@ -775,7 +775,7 @@ TestThatReloadIsStartedThenServeReload( test_url, image_resource, image_resource->GetContent(), observer.get(), - WebCachePolicy::kBypassingCache); + WebCachePolicy::kBypassingCache, false); } TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) { @@ -799,7 +799,7 @@ TestThatReloadIsStartedThenServeReload( test_url, image_resource, image_resource->GetContent(), observer.get(), - WebCachePolicy::kBypassingCache); + WebCachePolicy::kBypassingCache, false); } TEST(ImageResourceTest, SVGImage) { @@ -1329,21 +1329,71 @@ // loading. EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); EXPECT_EQ(2, observer->ImageChangedCount()); + EXPECT_FALSE(image_resource->ShouldShowPlaceholder()); TestThatReloadIsStartedThenServeReload( test_url, image_resource, image_resource->GetContent(), observer.get(), - WebCachePolicy::kBypassingCache); + WebCachePolicy::kBypassingCache, false); +} + +TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessfulClientLoFi) { + KURL test_url(kParsedURLString, kTestURL); + ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); + + ResourceRequest request = ResourceRequest(test_url); + request.SetPreviewsState(WebURLRequest::kClientLoFiOn); + FetchParameters params{request}; + params.SetAllowImagePlaceholder(); + ImageResource* image_resource = ImageResource::Fetch(params, CreateFetcher()); + EXPECT_EQ(FetchParameters::kAllowPlaceholder, + params.GetPlaceholderImageRequestType()); + EXPECT_EQ("bytes=0-2047", + image_resource->GetResourceRequest().HttpHeaderField("range")); + EXPECT_TRUE(image_resource->ShouldShowPlaceholder()); + std::unique_ptr<MockImageResourceObserver> observer = + MockImageResourceObserver::Create(image_resource->GetContent()); + + const char kBadData[] = "notanimageresponse"; + + ResourceResponse bad_response(test_url, "image/jpeg", sizeof(kBadData), + g_null_atom); + bad_response.SetHTTPStatusCode(206); + bad_response.SetHTTPHeaderField( + "content-range", BuildContentRange(sizeof(kBadData), sizeof(kJpegImage))); + + image_resource->Loader()->DidReceiveResponse( + WrappedResourceResponse(bad_response)); + + EXPECT_EQ(0, observer->ImageChangedCount()); + + image_resource->Loader()->DidReceiveData(kBadData, sizeof(kBadData)); + + // The dimensions could not be extracted, so the full original image should be + // loading. + EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); + EXPECT_EQ(2, observer->ImageChangedCount()); + + TestThatReloadIsStartedThenServeReload( + test_url, image_resource, image_resource->GetContent(), observer.get(), + WebCachePolicy::kBypassingCache, true); + + EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsBitmapImage()); + EXPECT_TRUE(image_resource->ShouldShowPlaceholder()); } TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) { const struct { WebURLRequest::PreviewsState initial_previews_state; WebURLRequest::PreviewsState expected_reload_previews_state; + bool placeholder_before_reload; + bool placeholder_after_reload; } tests[] = { - {WebURLRequest::kPreviewsUnspecified, - WebURLRequest::kPreviewsNoTransform}, - {WebURLRequest::kClientLoFiOn, WebURLRequest::kPreviewsNoTransform | - WebURLRequest::kClientLoFiAutoReload}, + {WebURLRequest::kPreviewsUnspecified, WebURLRequest::kPreviewsNoTransform, + false}, + {WebURLRequest::kClientLoFiOn, + WebURLRequest::kPreviewsNoTransform | + WebURLRequest::kClientLoFiAutoReload, + true}, }; for (const auto& test : tests) { @@ -1394,7 +1444,7 @@ TestThatReloadIsStartedThenServeReload( test_url, image_resource, image_resource->GetContent(), observer.get(), - WebCachePolicy::kBypassingCache); + WebCachePolicy::kBypassingCache, test.placeholder_before_reload); EXPECT_EQ(test.expected_reload_previews_state, image_resource->GetResourceRequest().GetPreviewsState()); @@ -1624,7 +1674,7 @@ // error, so the full original image should be loading. TestThatReloadIsStartedThenServeReload( test_url, image_resource, image_resource->GetContent(), observer.get(), - WebCachePolicy::kBypassingCache); + WebCachePolicy::kBypassingCache, false); } }
diff --git a/third_party/WebKit/Source/platform/graphics/ColorSpaceGamut.cpp b/third_party/WebKit/Source/platform/graphics/ColorSpaceGamut.cpp index 452a197..d83dabf 100644 --- a/third_party/WebKit/Source/platform/graphics/ColorSpaceGamut.cpp +++ b/third_party/WebKit/Source/platform/graphics/ColorSpaceGamut.cpp
@@ -12,12 +12,12 @@ namespace ColorSpaceUtilities { ColorSpaceGamut GetColorSpaceGamut(const WebScreenInfo& screen_info) { - const gfx::ICCProfile& profile = screen_info.icc_profile; - if (profile == gfx::ICCProfile()) + const gfx::ColorSpace& color_space = screen_info.color_space; + if (!color_space.IsValid()) return ColorSpaceGamut::kUnknown; return ColorSpaceUtilities::GetColorSpaceGamut( - profile.GetColorSpace().ToSkColorSpace().get()); + color_space.ToSkColorSpace().get()); } ColorSpaceGamut GetColorSpaceGamut(SkColorSpace* color_space) {
diff --git a/third_party/WebKit/public/platform/WebScreenInfo.h b/third_party/WebKit/public/platform/WebScreenInfo.h index 857918d5..06ecf1e 100644 --- a/third_party/WebKit/public/platform/WebScreenInfo.h +++ b/third_party/WebKit/public/platform/WebScreenInfo.h
@@ -34,7 +34,7 @@ #include "WebRect.h" #include "public/platform/ShapeProperties.h" #include "public/platform/modules/screen_orientation/WebScreenOrientationType.h" -#include "ui/gfx/icc_profile.h" +#include "ui/gfx/color_space.h" namespace blink { @@ -43,8 +43,8 @@ // pixels. float device_scale_factor = 1.f; - // The ICC profile of the output display. - gfx::ICCProfile icc_profile; + // The color space of the output display. + gfx::ColorSpace color_space; // The screen depth in bits per pixel int depth = 0; @@ -89,7 +89,7 @@ bool operator==(const WebScreenInfo& other) const { return this->device_scale_factor == other.device_scale_factor && - this->icc_profile == other.icc_profile && + this->color_space == other.color_space && this->depth == other.depth && this->depth_per_component == other.depth_per_component && this->is_monochrome == other.is_monochrome &&
diff --git a/tools/perf/core/perf_data_generator.py b/tools/perf/core/perf_data_generator.py index ccb2b30..3feac7e 100755 --- a/tools/perf/core/perf_data_generator.py +++ b/tools/perf/core/perf_data_generator.py
@@ -787,6 +787,7 @@ # Devices which are broken right now. Tests will not be scheduled on them. # Please add a comment with a bug for replacing the device. BLACKLISTED_DEVICES = [ + 'build152-m1', # crbug.com/736593 ]
diff --git a/ui/ozone/demo/surfaceless_gl_renderer.cc b/ui/ozone/demo/surfaceless_gl_renderer.cc index dfbcb95..549c7ac 100644 --- a/ui/ozone/demo/surfaceless_gl_renderer.cc +++ b/ui/ozone/demo/surfaceless_gl_renderer.cc
@@ -11,11 +11,14 @@ #include "base/macros.h" #include "base/trace_event/trace_event.h" #include "ui/display/types/display_snapshot.h" +#include "ui/gfx/geometry/rect_conversions.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_image.h" #include "ui/gl/gl_image_native_pixmap.h" #include "ui/gl/gl_surface.h" +#include "ui/ozone/public/overlay_candidates_ozone.h" +#include "ui/ozone/public/overlay_manager_ozone.h" #include "ui/ozone/public/ozone_platform.h" #include "ui/ozone/public/surface_factory_ozone.h" @@ -79,7 +82,11 @@ gfx::AcceleratedWidget widget, const scoped_refptr<gl::GLSurface>& surface, const gfx::Size& size) - : GlRenderer(widget, surface, size), weak_ptr_factory_(this) {} + : GlRenderer(widget, surface, size), + overlay_checker_(ui::OzonePlatform::GetInstance() + ->GetOverlayManager() + ->CreateOverlayCandidates(widget)), + weak_ptr_factory_(this) {} SurfacelessGlRenderer::~SurfacelessGlRenderer() { // Need to make current when deleting the framebuffer resources allocated in @@ -112,6 +119,53 @@ return true; } +// OverlayChecker demonstrates how to use the +// OverlayCandidatesOzone::CheckOverlaySupport to determine if a given overlay +// can be successfully displayed. +void SurfacelessGlRenderer::OverlayChecker(int z_order, + gfx::Rect bounds_rect, + gfx::RectF crop_rect) { + // The overlay checking interface is designed to satisfy the needs of CC which + // will be producing RectF target rectangles. But we use the bounds produced + // in RenderFrame for GLSurface::ScheduleOverlayPlane. + gfx::RectF display_rect(bounds_rect.x(), bounds_rect.y(), bounds_rect.width(), + bounds_rect.height()); + + OverlayCandidatesOzone::OverlaySurfaceCandidate overlay_candidate; + + // The bounds rectangle of the candidate overlay buffer. + overlay_candidate.buffer_size = bounds_rect.size(); + // The same rectangle in floating point coordinates. + overlay_candidate.display_rect = display_rect; + + // Show the entire buffer by setting the crop to a unity square. + overlay_candidate.crop_rect = gfx::RectF(0, 0, 1, 1); + + // The quad rect is the rectangular bounds of the overlay demonstration + // rectangle. + overlay_candidate.quad_rect_in_target_space = bounds_rect; + + // The clip region is the entire screen. + overlay_candidate.clip_rect = gfx::Rect(size_); + + // The demo overlay instance is always ontop and not clipped. Clipped quads + // cannot be placed in overlays. + overlay_candidate.is_clipped = false; + + OverlayCandidatesOzone::OverlaySurfaceCandidateList list; + list.push_back(overlay_candidate); + + // Ask ozone platform to determine if this rect can be placed in an overlay. + // Ozone will update the list and return it. + overlay_checker_->CheckOverlaySupport(&list); + + // Note what the checker decided. + // say more about it. + TRACE_EVENT2("hwoverlays", "SurfacelessGlRenderer::OverlayChecker", "canihaz", + list[0].overlay_handled, "display_rect", + list[0].display_rect.ToString()); +} + void SurfacelessGlRenderer::RenderFrame() { TRACE_EVENT0("ozone", "SurfacelessGlRenderer::RenderFrame"); @@ -133,6 +187,11 @@ gfx::Vector2d offset(fraction * (size_.width() - overlay_rect.width()), (size_.height() - overlay_rect.height()) / 2); overlay_rect += offset; + + // TODO(rjkroege): Overlay checking should gate the following and will + // be added after solving http://crbug.com/735640 + OverlayChecker(1, overlay_rect, gfx::RectF(0, 0, 1, 1)); + surface_->ScheduleOverlayPlane(1, gfx::OVERLAY_TRANSFORM_NONE, overlay_buffer_->image(), overlay_rect, gfx::RectF(0, 0, 1, 1));
diff --git a/ui/ozone/demo/surfaceless_gl_renderer.h b/ui/ozone/demo/surfaceless_gl_renderer.h index cc67a74d..5467435 100644 --- a/ui/ozone/demo/surfaceless_gl_renderer.h +++ b/ui/ozone/demo/surfaceless_gl_renderer.h
@@ -8,6 +8,7 @@ #include <memory> #include "base/macros.h" +#include "ui/gfx/geometry/rect_f.h" #include "ui/ozone/demo/gl_renderer.h" namespace gl { @@ -15,6 +16,7 @@ } namespace ui { +class OverlayCandidatesOzone; class SurfacelessGlRenderer : public GlRenderer { public: @@ -30,6 +32,7 @@ // GlRenderer: void RenderFrame() override; void PostRenderFrameTask(gfx::SwapResult result) override; + void OverlayChecker(int z_order, gfx::Rect bounds_rect, gfx::RectF crop_rect); class BufferWrapper { public: @@ -56,6 +59,8 @@ std::unique_ptr<BufferWrapper> overlay_buffer_; + std::unique_ptr<OverlayCandidatesOzone> overlay_checker_; + int back_buffer_ = 0; base::WeakPtrFactory<SurfacelessGlRenderer> weak_ptr_factory_;
diff --git a/ui/ozone/platform/drm/gpu/drm_thread.cc b/ui/ozone/platform/drm/gpu/drm_thread.cc index a91932da..eb333ee 100644 --- a/ui/ozone/platform/drm/gpu/drm_thread.cc +++ b/ui/ozone/platform/drm/gpu/drm_thread.cc
@@ -12,6 +12,7 @@ #include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" #include "base/threading/thread_task_runner_handle.h" +#include "base/trace_event/trace_event.h" #include "ui/display/types/display_mode.h" #include "ui/display/types/display_snapshot_mojo.h" #include "ui/ozone/common/display_snapshot_proxy.h" @@ -225,6 +226,8 @@ const std::vector<OverlayCheck_Params>&, const std::vector<OverlayCheckReturn_Params>&)> callback) { + TRACE_EVENT0("drm,hwoverlays", "DrmThread::CheckOverlayCapabilities"); + std::move(callback).Run( widget, overlays, screen_manager_->GetWindow(widget)->TestPageFlip(overlays));
diff --git a/ui/ozone/platform/drm/host/drm_overlay_manager.cc b/ui/ozone/platform/drm/host/drm_overlay_manager.cc index b45a6645..9d5a968 100644 --- a/ui/ozone/platform/drm/host/drm_overlay_manager.cc +++ b/ui/ozone/platform/drm/host/drm_overlay_manager.cc
@@ -10,6 +10,7 @@ #include "base/command_line.h" #include "base/memory/ptr_util.h" +#include "base/trace_event/trace_event.h" #include "ui/gfx/geometry/rect_conversions.h" #include "ui/ozone/platform/drm/host/drm_overlay_candidates_host.h" #include "ui/ozone/platform/drm/host/drm_window_host.h" @@ -44,6 +45,7 @@ void DrmOverlayManager::CheckOverlaySupport( OverlayCandidatesOzone::OverlaySurfaceCandidateList* candidates, gfx::AcceleratedWidget widget) { + TRACE_EVENT0("hwoverlays", "DrmOverlayManager::CheckOverlaySupport"); std::vector<OverlayCheck_Params> overlay_params; for (auto& candidate : *candidates) { // Reject candidates that don't fall on a pixel boundary. @@ -118,7 +120,8 @@ gfx::AcceleratedWidget widget) const { if (!proxy_->IsConnected()) return; - + TRACE_EVENT_ASYNC_BEGIN0( + "hwoverlays", "DrmOverlayManager::SendOverlayValidationRequest", this); proxy_->GpuCheckOverlayCapabilities(widget, new_params); } @@ -126,6 +129,9 @@ gfx::AcceleratedWidget widget, const std::vector<OverlayCheck_Params>& params, const std::vector<OverlayCheckReturn_Params>& returns) { + TRACE_EVENT_ASYNC_END0( + "hwoverlays", "DrmOverlayManager::SendOverlayValidationRequest response", + this); cache_.Put(params, returns); }