Skip to content
Snippets Groups Projects
  1. Jul 31, 2017
  2. Jul 28, 2017
  3. Jul 26, 2017
  4. Jul 24, 2017
  5. Jul 19, 2017
    • Eugen Rochko's avatar
      Fix webfinger retries (#4275) · 1fcdaafa
      Eugen Rochko authored
      * Do not raise unretryable exceptions in ResolveRemoteAccountService
      
      * Removed fatal exceptions from ResolveRemoteAccountService
      
      Exceptions that cannot be retried should not be raised. New exception
      class for those that can be retried (Mastodon::UnexpectedResponseError)
      1fcdaafa
  6. Jul 18, 2017
  7. Jul 17, 2017
  8. Jul 15, 2017
    • ThibG's avatar
      Optimize uri normalization (#4212) · 05cd3709
      ThibG authored
      * Add dependency on idn-ruby to speed up URI normalization
      
      * Use normalized_host instead of normalize.host when applicable
      
      When we are only interested in the normalized host, calling normalized_host
      avoids normalizing the other components of the URI as well as creating a
      new object
      05cd3709
  9. Jul 14, 2017
    • Eugen Rochko's avatar
      Fix #2672 - Connect signed PuSH subscription requests to instance domain (#4205) · cd9b2ab2
      Eugen Rochko authored
      * Fix #2672 - Connect signed PuSH subscription requests to instance domain
      
      Resolves #2739
      
      * Fix return of locate_subscription
      
      * Fix tests
      cd9b2ab2
    • Eugen Rochko's avatar
      HTTP signatures (#4146) · 1618b68b
      Eugen Rochko authored
      * Add Request class with HTTP signature generator
      
      Spec: https://tools.ietf.org/html/draft-cavage-http-signatures-06
      
      * Add HTTP signature verification concern
      
      * Add test for SignatureVerification concern
      
      * Add basic test for Request class
      
      * Make PuSH subscribe/unsubscribe requests use new Request class
      
      Accidentally fix lease_seconds not being set and sent properly, and
      change the new minimum subscription duration to 1 day
      
      * Make all PuSH workers use new Request class
      
      * Make Salmon sender use new Request class
      
      * Make FetchLinkService use new Request class
      
      * Make FetchAtomService use the new Request class
      
      * Make Remotable use the new Request class
      
      * Make ResolveRemoteAccountService use the new Request class
      
      * Add more tests
      
      * Allow +-30 seconds window for signed request to remain valid
      
      * Disable time window validation for signed requests, restore 7 days
      as PuSH subscription duration (which was previous default due to a bug)
      1618b68b
  10. Jul 13, 2017
    • Sorin Davidoi's avatar
      Web Push Notifications (#3243) · 0c7c188c
      Sorin Davidoi authored
      * feat: Register push subscription
      
      * feat: Notify when mentioned
      
      * feat: Boost, favourite, reply, follow, follow request
      
      * feat: Notification interaction
      
      * feat: Handle change of public key
      
      * feat: Unsubscribe if things go wrong
      
      * feat: Do not send normal notifications if push is enabled
      
      * feat: Focus client if open
      
      * refactor: Move push logic to WebPushSubscription
      
      * feat: Better title and body
      
      * feat: Localize messages
      
      * chore: Fix lint errors
      
      * feat: Settings
      
      * refactor: Lazy load
      
      * fix: Check if push settings exist
      
      * feat: Device-based preferences
      
      * refactor: Simplify logic
      
      * refactor: Pull request feedback
      
      * refactor: Pull request feedback
      
      * refactor: Create /api/web/push_subscriptions endpoint
      
      * feat: Spec PushSubscriptionController
      
      * refactor: WebPushSubscription => Web::PushSubscription
      
      * feat: Spec Web::PushSubscription
      
      * feat: Display first media attachment
      
      * feat: Support direction
      
      * fix: Stuff broken while rebasing
      
      * refactor: Integration with session activations
      
      * refactor: Cleanup
      
      * refactor: Simplify implementation
      
      * feat: Set VAPID keys via environment
      
      * chore: Comments
      
      * fix: Crash when no alerts
      
      * fix: Set VAPID keys in testing environment
      
      * fix: Follow link
      
      * feat: Notification actions
      
      * fix: Delete previous subscription
      
      * chore: Temporary logs
      
      * refactor: Move migration to a later date
      
      * fix: Fetch the correct session activation and misc bugs
      
      * refactor: Move migration to a later date
      
      * fix: Remove follow request (no notifications)
      
      * feat: Send administrator contact to push service
      
      * feat: Set time-to-live
      
      * fix: Do not show sensitive images
      
      * fix: Reducer crash in error handling
      
      * feat: Add badge
      
      * chore: Fix lint error
      
      * fix: Checkbox label overlap
      
      * fix: Check for payload support
      
      * fix: Rename action "type" (crash in latest Chrome)
      
      * feat: Action to expand notification
      
      * fix: Lint errors
      
      * fix: Unescape notification body
      
      * fix: Do not allow boosting if the status is hidden
      
      * feat: Add VAPID keys to the production sample environment
      
      * fix: Strip HTML tags from status
      
      * refactor: Better error messages
      
      * refactor: Handle browser not implementing the VAPID protocol (Samsung Internet)
      
      * fix: Error when target_status is nil
      
      * fix: Handle lack of image
      
      * fix: Delete reference to invalid subscriptions
      
      * feat: Better error handling
      
      * fix: Unescape HTML characters after tags are striped
      
      * refactor: Simpify code
      
      * fix: Modify to work with #4091
      
      * Sort strings alphabetically
      
      * i18n: Updated Polish translation
      
      it annoys me that it's not fully localized :P
      
      * refactor: Use current_session in PushSubscriptionController
      
      * fix: Rebase mistake
      
      * fix: Set cacheName to mastodon
      
      * refactor: Pull request feedback
      
      * refactor: Remove logging statements
      
      * chore(yarn): Fix conflicts with master
      
      * chore(yarn): Copy latest from master
      
      * chore(yarn): Readd offline-plugin
      
      * refactor: Use save! and update!
      
      * refactor: Send notifications async
      
      * fix: Allow retry when push fails
      
      * fix: Save track for failed pushes
      
      * fix: Minify sw.js
      
      * fix: Remove account_id from fabricator
      0c7c188c
  11. Jul 10, 2017
    • Eugen Rochko's avatar
      Limit total subscribe retries to 10, but space them out more (#4142) · 34ccc058
      Eugen Rochko authored
      Since there is little point in retrying so often when a service is down
      or does not exist anymore. Subscriptions are renewed 1 day before they
      should expire, so retrying in 30 minutes, then 2 hours, then 12 hours
      is fine. If even after that, the remote server does not work, there is
      little sense in retrying more often than once a day
      
      Also, uniqueness of the job should ensure that failed retries will
      not result in multiple retries for the same endpoint when the next
      resubscription cycle comes
      34ccc058
  12. Jul 07, 2017
  13. Jun 25, 2017
    • Eugen Rochko's avatar
      Bind web UI access tokens to sessions (#3940) · ed7dc170
      Eugen Rochko authored
      * Add overview of active sessions
      
      * Better display of browser/platform name
      
      * Improve how browser information is stored and displayed for sessions overview
      
      * Fix test
      
      * Fix #2347 - Bind web UI access token to session
      
      When you logout, session also destroys the access token, so it's no longer
      valid. If access token is destroyed some other way, the session is also
      destroyed, requiring a re-login.
      
      Fix #1681 - Add scheduler to remove revoked access tokens and grants
      
      * Fix test
      ed7dc170
  14. Jun 22, 2017
    • Akihiko Odaki (@fn_aki@pawoo.net)'s avatar
      Some minor change and spec for Account (#3813) · e27f792c
      Akihiko Odaki (@fn_aki@pawoo.net) authored
      * Introduce domains method to Account relation
      
      Account had followers_domains method, which was excessively specific.
      Let relation of Account have domains method instead.
      
      * Move follow_mapping in Account to AccountInteractions
      
      * Introduce shared examples for AccountAvatar inclusion
      
      * Cover Account more
      e27f792c
  15. Jun 18, 2017
  16. Jun 14, 2017
    • Eugen Rochko's avatar
      Batched remove status service (#3735) · e17c2e5d
      Eugen Rochko authored
      * Make Pubsubhubbub::DistributionWorker handle both single stream entry
      arguments, as well as arrays of stream entries
      
      * Add BatchedRemoveStatusService, make SuspendAccountService use it
      
      * Improve method names
      
      * Add test
      
      * Add more tests
      
      * Use PuSH payloads of 100 to have a clear mapping of
      1000 input statuses -> 10 PuSH payloads
      
      It was nice while it lasted
      e17c2e5d
    • Eugen Rochko's avatar
      Account deletion (#3728) · 4a618908
      Eugen Rochko authored
      * Add form for account deletion
      
      * If avatar or header are gone from source, remove them
      
      * Add option to have SuspendAccountService remove user record, add tests
      
      * Exclude suspended accounts from search
      4a618908
  17. Jun 03, 2017
  18. May 22, 2017
  19. May 20, 2017
  20. May 19, 2017
  21. May 18, 2017
  22. May 14, 2017
    • Eugen Rochko's avatar
      Do not cancel PuSH subscriptions after encountering "permanent" error… (#3046) · 657496b5
      Eugen Rochko authored
      * Do not cancel PuSH subscriptions after encountering "permanent" error response
      
      After talking with MMN about it, turns out some servers/php setups do
      return 4xx errors while rebooting, so this anti-feature that was meant
      to take load off of the hub is doing more harm than good in terms of
      breaking subscriptions
      
      * Update delivery_worker.rb
      657496b5
  23. May 12, 2017
  24. May 10, 2017
  25. May 09, 2017
  26. May 06, 2017
  27. May 05, 2017
    • Eugen Rochko's avatar
      More robust PuSH subscription refreshes (#2799) · 81584779
      Eugen Rochko authored
      * Fix #2473 - Use sidekiq scheduler to refresh PuSH subscriptions instead of cron
      
      Fix an issue where / in domain would raise exception in TagManager#normalize_domain
      
      PuSH subscriptions refresh done in a round-robin way to avoid hammering a single
      server's hub in sequence. Correct handling of failures/retries through Sidekiq (see
      also #2613). Optimize Account#with_followers scope. Also, since subscriptions
      are now delegated to Sidekiq jobs, an uncaught exception will not stop the entire
      refreshing operation halfway through
      
      Fix #2702 - Correct user agent header on outgoing http requests
      
      * Add test for SubscribeService
      
      * Extract #expiring_accounts into method
      
      * Make mastodon:push:refresh no-op
      
      * Queues are now defined in sidekiq.yml
      
      * Queues are now in sidekiq.yml
      81584779
  28. Apr 25, 2017
    • Eugen's avatar
      Punycode URI normalization (#2370) · 17c591ff
      Eugen authored
      * Fix #2119 - Whenever about to send a HTTP request, normalize the URI
      
      * Add test for IDN request in FetchLinkCardService
      
      * Perform IDN normalization on domains before they are stored in the DB
      17c591ff
  29. Apr 23, 2017
    • Eugen's avatar
      Followers-only post federation (#2111) · 50151496
      Eugen authored
      * Make private toots get PuSHed to subscription URLs that belong to domains where you have approved followers
      
      * Authorized followers controller, stub for bulk action
      
      * Soft block in the background
      
      * Add simple test for new controller
      
      * Rename Settings::FollowersController to Settings::FollowerDomainsController, paginate results,
      rename "private" post setting to "followers-only", fix pagination style, improve post privacy
      preferences style, improve warning style
      
      * Extract compose form warnings into own container, show warning when posting to followers-only with unlocked account
      50151496
Loading