1. 23 Aug, 2019 5 commits
    • Kyle Keating's avatar
      Namespace the real-time-updates module · 077ec4d0
      Kyle Keating authored
      077ec4d0
    • Hannah Stepanek's avatar
      Merge pull request #1320 from hypothesis/use-new-sentry-sdk · 5552dbfc
      Hannah Stepanek authored
      Replace legacy Sentry JS SDK with new Sentry SDK
      5552dbfc
    • Robert Knight's avatar
      Support configuring the Sentry environment · cac16aa0
      Robert Knight authored
      This enables us to distinguish reports from dev, qa, prod etc. The value
      is provided by h for the embed or the browser extension.
      cac16aa0
    • Robert Knight's avatar
      Implement client-side rate limiting per session · fd022199
      Robert Knight authored
      Previous experience with Sentry has found that there are various
      scenarios that can cause a client to spam the server with a large number
      of reports. Although Sentry has its own server-side quotas and rate
      limiting, I think it will be useful to do client-side per-session rate
      limiting as well. This also provides a place where we can hook in other
      client-side filtering in future.
      fd022199
    • Robert Knight's avatar
      Replace raven-js with Sentry's new JavaScript SDK · 542b96f0
      Robert Knight authored
      Replace the legacy raven-js package with Sentry's new JS SDK [1], with a
      minimal wrapper in `util/sentry.js` that exports the same interface as
      the previous `raven.js` module.
      
      To enable Sentry, h or the browser extension must set a `sentry` key in the
      sidebar app's configuration.
      
      As part of switching SDKs, the following changes were made:
      
       - The AngularJS integration was removed, as we are in the process of
         migrating away from Angular
       - The custom code for unhandled promise rejections was removed, as the
         new SDK handles this already
       - The URL rewriting logic was removed. This was done to make the setup
         as minimal as possible. This may need to be re-added later.
       - The `report` function was removed, as it was not used anywhere
       - The `session` module now imports `util/sentry` directly rather than
         using Angular dependency injection. Now that we have a convenient way
         to mock all CJS/ES imports, there isn't a need to use DI for
         utilities
      
      [1] https://docs.sentry.io/platforms/javascript/
      542b96f0
  2. 22 Aug, 2019 4 commits
  3. 21 Aug, 2019 4 commits
  4. 20 Aug, 2019 7 commits
  5. 19 Aug, 2019 6 commits
  6. 15 Aug, 2019 7 commits
    • Kyle Keating's avatar
      Fix JS error when searching after creating a page draft · d35a71d4
      Kyle Keating authored
      This adjusts view-filter so it can handle draft annotations which can be defined by a missing id.
      d35a71d4
    • Robert Knight's avatar
      Install `npm` in the Docker image · 70716a34
      Robert Knight authored
      `npm` is still used by the final deployment process to publish packages
      to the npm registry.
      70716a34
    • Robert Knight's avatar
      Merge pull request #1279 from hypothesis/karma-headless-chrome · 872c4d7c
      Robert Knight authored
      Switch default browser for running tests from PhantomJS to headless Chrome
      872c4d7c
    • Robert Knight's avatar
      Remove workarounds for PhantomJS in tests · 2030edc2
      Robert Knight authored
      2030edc2
    • Robert Knight's avatar
      Remove unnnecessary polyfills from test environment · 8e1e34a0
      Robert Knight authored
      These are no longer needed when running tests under Chrome.
      8e1e34a0
    • Robert Knight's avatar
      Replace PhantomJS with headless Chrome in tests · d7f22bbf
      Robert Knight authored
      Update our test/CI environment to a modern browser which matches what
      our users use and supports modern web APIs and ES language features.
      
       - Add a Dockerfile which defines an image that includes everything
         needed to run client tests and deployment steps. This image uses
         plain Alpine as the base rather than Debian as this makes it easier
         to update frequently (every 6 months) to get a current Chrome build.
      
       - Replace PhantomJS with Puppeteer for testing locally and on Travis.
         Jenkins uses Chromium packages from Alpine.
      d7f22bbf
    • Robert Knight's avatar
      Fix test failures in Chrome · 8988a962
      Robert Knight authored
      - Fix failing `services/api.js` test
      
        Chrome throws an error when trying to construct a fetch `Response` with
        a non-null `body` if the status is 204.
      
      - Fix Timestamp and GroupListItem test failures in Chrome
      
        - Pass required type argument to `Event` constructor
        - Pass valid `timestamp` argument to `Timestamp`. This value is passed
          on to date functions which require a valid date/time string.
      
      - Fix Slider transition test in Chrome
      
        Since the transition from open to closed is animated, the actual element
        height doesn't immediately transition to 0px. Instead of checking the
        actual height, check the target height specified by the current style
        properties.
      
        The previous code happened to work under PhantomJS, but was conceptually incorrect.
      8988a962
  7. 14 Aug, 2019 4 commits
  8. 12 Aug, 2019 3 commits