1. 17 Mar, 2020 37 commits
  2. 16 Mar, 2020 3 commits
    • David Bienvenu's avatar
      Windows: Fix focus on restored window minimized w/o focus · 87cb788b
      David Bienvenu authored
      If a browser window is minimimized w/o focus in the location bar,
      and Chrome is launched from a shortcut or the command line, the window
      is restored, but doesn't get focus, which breaks keyboard accessibility.
      
      This CL adds a HandleWindowMinimizedOrRestored notification to
      HwndMessageHandler::PostProcessActivateMessage, when restoring a
      minimized top level window from ::Activate(). This causes the root
      window to get shown, which allows the view to subsequently get focus.
      
      Bug: 1048195
      Change-Id: I147ffccc2a6d9b20623f1989a8ea4395ad56334d
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2088293
      Commit-Queue: David Bienvenu <davidbienvenu@chromium.org>
      Reviewed-by: default avatarScott Violet <sky@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#750786}
      87cb788b
    • Josh Simmons's avatar
      Unmount/remount smbfs SMB shares on suspend/resume · bfe9d198
      Josh Simmons authored
      Added SmbService as a power manager observer so that it can forcefully
      unmount any mounted smbfs shares during suspension, and remount them
      when the device powers back up.
      
      Bug: 1052729
      Change-Id: I8c5d06a847322b7da063a3255afe4237d18e112b
      Test: Manually tested by suspending the machine with a mounted smbfs share
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2097675Reviewed-by: default avatarAnand Mistry <amistry@chromium.org>
      Commit-Queue: Josh Simmons <simmonsjosh@google.com>
      Cr-Commit-Position: refs/heads/master@{#750785}
      bfe9d198
    • Daniel Clark's avatar
      Implement time picker infinite scroll without duplicating or reordering cells · 4c97f215
      Daniel Clark authored
      The purpose of this change is to work around an issue encountered when
      adding AX roles to the time picker popup to implement proper screen
      reader accessibility.  The trick used to create hour/day/minute columns
      that loop infinitely when navigated by arrow key involves duplicating
      all the cells and placing them out-of-order in the DOM.  This confuses
      screen readers so that they read out confusing things like "minutes
      column, 25, item 70 out of 120 selected", even with the right ARIA roles.
      I looked at two alternative fixes for this issue:
      1) Applying aria-posinset and aria-setsize to the TimeCells.  This seems
      like it should work, but these stop functioning when the number of items
      in the DOM is greater than aria-setsize or when the aria-posinset values
      are not increasing with respect to DOM order of the cells.
      2) Marking cells aria-hidden and controlling screen reader announcements
      with an aria-live region.  This could mostly work, but Windows Narrator
      doesn't draw proper focus rects for aria-hidden items, and this behavior
      is explicitly warned against in the spec per
      https://www.w3.org/TR/using-aria/#fourth so there could be
      interoperability issues.
      
      So as a last resort, this change re-implements the infinite scrolling
      behavior by dynamically manipulating the layout of the TimeCells so
      that they can be present in the DOM in an order and number that makes
      sense for a11y.
      
      This is achieved by a scroll event handler and ArrowUp/Down keydown
      event handlers that rotate the cells' layouts to ensure that more cells
      are always visible in the direction that the user is navigating.  These
      rotations handle outside of the visible portion of the scroller so they
      are not visible to the user, who just sees an infinitely looping column
      of cells.
      
      One advantage to this change aside from the a11y issue is that mouse
      scrolling no longer bottoms out after 1-2 trips through the values; it
      now appears really 'infinite'.  The obvious disadvantage is that this
      approach is more complicated and likely has more performance overhead.
      
      A subsequent (much simpler!) change will add the ARIA roles to finally
      make the control accessible.
      
      Bug: 1026544
      Change-Id: If4eeb2e84731d3107b1f516544761b908cc62e4e
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2097250Reviewed-by: default avatarMason Freed <masonfreed@chromium.org>
      Reviewed-by: default avatarIonel Popescu <iopopesc@microsoft.com>
      Commit-Queue: Dan Clark <daniec@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#750784}
      4c97f215