1. 03 Jan, 2022 14 commits
  2. 20 Dec, 2021 10 commits
  3. 18 Dec, 2021 4 commits
  4. 17 Dec, 2021 8 commits
    • Eduardo's avatar
      Apply suggestions from code review · 6fd18cc4
      Eduardo authored
      Co-authored-by: 's avatarRobert Knight <robertknight@gmail.com>
      6fd18cc4
    • Eduardo Sanz García's avatar
      Fix and improve test · 011eb2bd
      Eduardo Sanz García authored
      In addition to cover the changes in the previous commit I have improved
      the test in this way:
      
      * like in frame-sync, segregate bridges according to the different
        channels and create utility functions to test the communication in
        those specific channels.
      * simplify a few test by relying on `emit[frame]Event` functions
      * remove mocking a public method
      011eb2bd
    • Eduardo Sanz García's avatar
      Reduce `Sidebar` dependency on `Guest` · a5613f9b
      Eduardo Sanz García authored
      Replace the 'sidebarLayoutChanged' event emitter for an RPC call using
      the `guest-host` communication channel. This change is a step further
      into be able to instantiate `Sidebar` independently from the `Guest`.
      This may be desirable in scenarios that has several iframes, like Ebooks
      and VitalSource.
      a5613f9b
    • Eduardo Sanz García's avatar
      Remove unused 'sidebarOpened' event emitter · 7474fc1c
      Eduardo Sanz García authored
      There is both an 'sidebarOpened' event emitter and RPC events. The RPC
      event is used, while the event emitter is not.
      7474fc1c
    • Eduardo Sanz García's avatar
      Move RPC listener together with the rest of listeners · d4b65960
      Eduardo Sanz García authored
      I moved a guest RPC listener with the rest of the listeners in the
      `Sidebar#_setupGuestEvents` method. This helps to quickly see which
      events from the `Guest` the `Sidebar` listens to.
      d4b65960
    • Robert Knight's avatar
      Increase timeout for port discovery · 62f30d3f
      Robert Knight authored
      On a slow device if the host page is heavily loaded with JavaScript, the
      10-second timeout can be exceeded. Increase this threshold to 20s to see
      what effect that has on the volume of reports we receive.
      62f30d3f
    • Lyza Danger Gardner's avatar
      Fix call to `store.focusGroup` in group-filtering test · 1ebb4e2d
      Lyza Danger Gardner authored
      The test was erroneously passing a Group object instead of a Group.id
      and was causing warnings to be logged to the test output.
      
      The immediately-following test passed because the group it was
      attempting to focus was the group that would be focused by default anyway.
      I adjusted the groups being focused and tested here to not use the
      default-focused group to assure the test is testing what it means to.
      1ebb4e2d
    • Robert Knight's avatar
      Reduce boot script cache expiry time · ee5de666
      Robert Knight authored
      Reduce the potential for mismatches between the client versions loaded
      in the annotator and sidebar when rolling out a new release by
      shortening the cache expiry time on the boot script.
      
      Set a very short expiry time on the browser cache TTL and a slightly
      longer time on the edge cache.
      ee5de666
  5. 16 Dec, 2021 4 commits
    • Robert Knight's avatar
      Limit line length in minified JS bundles · 2233d721
      Robert Knight authored
      Limit the line length in minified bundles to make them easier to examine in
      various tools which don't like very long source lines, and also mitigate an
      issue with stack traces in Firefox.
      
      Firefox stack traces report column numbers in Unicode code points whereas Sentry
      expects UTF-16 code units. If the input source contains Unicode characters which
      require multiple UTF-16 code units to represent then processed stack traces in
      Firefox will point to the wrong location.
      
      One of our dependencies (Showdown) contains a long string of emojis, which
      require multiple UTF-16 units to represent, and Terser by default tries to
      compress the code into as few lines as possible. The combined result of this is
      that stack traces from Firefox could end up being resolved to a location far
      from what is expected.
      
      Though it is not a complete fix for the issue, limiting the length of lines
      effectively mitigates this problem as only code nearby (on the same line as)
      these characters in the output is affected.
      
      I did also try Terser's `ascii_only` output option, but that increased the
      bundle size by 2% and has more potential for unexpected consequences elsewhere.
      2233d721
    • Robert Knight's avatar
      Remove all comments from minified JavaScript · 52da1f28
      Robert Knight authored
      By default Terser keeps certain comments [1] in minified output. Safari has a
      bug [2] that causes column numbers to be incorrectly reported in stack
      traces when a line contains inline comments. In minified code where the
      output is packed into a small number of lines, this can result in stack
      traces that map to the wrong source line. Stripping all comments from
      the output works around the issue.
      
      The effect on the size of the bundles is minimal. sidebar.bundle.js is
      about 2KB smaller with this change.
      
      Part of https://github.com/hypothesis/client/issues/4045
      
      [1] https://github.com/terser/terser#format-options
      [2] https://bugs.webkit.org/show_bug.cgi?id=221548
      52da1f28
    • Lyza Danger Gardner's avatar
      Extract RPC-related types into a new type module · 97ee3727
      Lyza Danger Gardner authored
      Extract RPC typing into its own module to avoid dependencies between
      the store and the RPC implementation. Clarify a few points in other
      types.
      97ee3727
    • Lyza Danger Gardner's avatar