New issue
Advanced search Search tips

Issue 720596 link

Starred by 3 users

Issue metadata

Status: Archived
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature

Blocked on:
issue 718639
issue 734684

Blocking:
issue 682010
issue 707797



Sign in to add a comment

Implement Scalable views to make fractional dsf be pixel perfect

Project Member Reported by malaykeshav@chromium.org, May 10 2017

Issue description

Design doc: go/pixel-canvas

This feature will record all canvas draw commands at pixel size, thus eliminating majority of the fractional dsf bugs.
This will also allow the device to work at any non-discrete values of device scale factors.
 
Blockedon: 718639
Blocking: 707797
Blockedon: 734684
Blocking: 682010
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e

commit 55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e
Author: malaykeshav <malaykeshav@chromium.org>
Date: Thu Aug 03 01:06:04 2017

Implements core logic for Pixel Canvas

This patch implements the core logic for Pixel Canvas while hiding it
behind a compositor switch (Disabled by default).

Pixel Canvas enables all canvas draw commands to be recorded at pixel
size, helping eliminate a majority of fractional device scale factor
bugs. This also allows devices to work at all non discrete fractional
scales with reduced(or no) overhead.

Subsequent changes will fix bugs that happen when this mode is enabled.
This is to avoid one massive CL.

DesignDoc=go/pixel-canvas
Slides=go/pixel-canvas-slide
BUG= 720596 
COMPONENT=Canvas, View, Layer, Paint Context, Paint Recorder
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2877483003
Cr-Commit-Position: refs/heads/master@{#491587}

[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ash/system/tray/tray_details_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ash/wm/drag_window_controller.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/cc/layers/picture_layer.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/cc/layers/recording_source.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/cc/layers/recording_source.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/cc/raster/raster_source.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/cc/raster/raster_source.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/cc/raster/raster_source_unittest.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/cc/trees/layer_tree_host.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/cc/trees/layer_tree_host.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/autofill/card_unmask_prompt_views.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/autofill/card_unmask_prompt_views.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/frame/browser_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/frame/browser_view.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/frame/top_container_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/frame/top_container_view.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/profiles/profile_chooser_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/tabs/tab_strip.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/chrome/browser/ui/views/tabs/tab_strip.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/components/web_contents_delegate_android/validation_message_bubble_android.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/content/browser/compositor/reflector_impl_unittest.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/content/browser/compositor/software_browser_compositor_output_surface_unittest.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/content/browser/compositor/software_output_device_ozone_unittest.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/content/browser/renderer_host/browser_compositor_view_mac.mm
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/aura/window_tree_host.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/canvas_painter.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/canvas_painter.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/compositor.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/compositor.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/compositor_switches.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/compositor_switches.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/compositor_unittest.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/layer.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/layer.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/paint_context.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/paint_context.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/paint_recorder.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/paint_recorder.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/test/test_compositor_host_android.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/test/test_compositor_host_mac.mm
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/test/test_compositor_host_ozone.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/test/test_compositor_host_win.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/compositor/test/test_compositor_host_x11.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/gfx/geometry/rect.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/message_center/views/message_list_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/message_center/views/message_list_view.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/BUILD.gn
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/DEPS
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/bubble/bubble_frame_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/bubble/bubble_frame_view.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/button_drag_utils.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/cocoa/bridged_native_widget.mm
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/controls/label_unittest.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/controls/menu/submenu_view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/controls/menu/submenu_view.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/controls/textfield/textfield.cc
[add] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/paint_info.cc
[add] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/paint_info.h
[add] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/paint_info_unittest.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/view.cc
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/view.h
[modify] https://crrev.com/55c9f6d21086e418dac45a58e5f51a3a5ef7bc1e/ui/views/view_unittest.cc

Status: Fixed (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Aug 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/420b7dbf716f2fcdb4043c60d8beae9738f6d125

commit 420b7dbf716f2fcdb4043c60d8beae9738f6d125
Author: F#m <malaykeshav@chromium.org>
Date: Fri Aug 11 18:46:00 2017

Minor bug fix to adjust clip_path_ used by BubbleFrameView

The |clip_path_| is transformed to the paint recording coordinates by
multiplying it with a transform matrix. This matrix contains a scale
transform and an offset transform. The scale matrix needs to be applied
before the translate matrix. But currently the order is reveresed,
leading to bugs in places that use a clip path for clipping.

This change corrects the order of transform applied.

BUG= 720596 
COMPONENT=Clipping, Views, Dialog, BubbleFrameView

Change-Id: If8fd69470c502822338b64f4384660df05150812
Reviewed-on: https://chromium-review.googlesource.com/610683
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493825}
[modify] https://crrev.com/420b7dbf716f2fcdb4043c60d8beae9738f6d125/ui/views/view.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f2f5c7377b0268f8255c86f3fd21753ba0a9b49a

commit f2f5c7377b0268f8255c86f3fd21753ba0a9b49a
Author: F#m <malaykeshav@chromium.org>
Date: Mon Aug 14 22:22:43 2017

Renames PaintInfo ScaleType to have more meaningful enum

This patch renames the ScaleType enum in Paint info to have names more
representative of what effect they have on scaling.

BUG= 720596 
COMPONENT=View, PaintInfo, Scaling

Change-Id: Idfbaefde9be4c70637cb90380e8effd5176fd8a4
Reviewed-on: https://chromium-review.googlesource.com/612468
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494213}
[modify] https://crrev.com/f2f5c7377b0268f8255c86f3fd21753ba0a9b49a/ash/frame/caption_buttons/frame_caption_button.cc
[modify] https://crrev.com/f2f5c7377b0268f8255c86f3fd21753ba0a9b49a/ui/views/paint_info.cc
[modify] https://crrev.com/f2f5c7377b0268f8255c86f3fd21753ba0a9b49a/ui/views/paint_info.h
[modify] https://crrev.com/f2f5c7377b0268f8255c86f3fd21753ba0a9b49a/ui/views/paint_info_unittest.cc
[modify] https://crrev.com/f2f5c7377b0268f8255c86f3fd21753ba0a9b49a/ui/views/view.cc

Labels: -Restrict-View-Google

Comment 10 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment