Other(refactor): Move UserAgent out of frontend
This commit is contained in:
@ -92,6 +92,7 @@ func main(b *base.Base, c *cli.Context) error { //nolint:funlen
|
|||||||
b.CrashHandler,
|
b.CrashHandler,
|
||||||
b.Listener,
|
b.Listener,
|
||||||
b.TLS,
|
b.TLS,
|
||||||
|
b.UserAgent,
|
||||||
cache,
|
cache,
|
||||||
builder,
|
builder,
|
||||||
b.CM,
|
b.CM,
|
||||||
@ -161,7 +162,6 @@ func main(b *base.Base, c *cli.Context) error { //nolint:funlen
|
|||||||
b.Settings,
|
b.Settings,
|
||||||
b.Listener,
|
b.Listener,
|
||||||
b.Updater,
|
b.Updater,
|
||||||
b.UserAgent,
|
|
||||||
bridge,
|
bridge,
|
||||||
smtpBackend,
|
smtpBackend,
|
||||||
b,
|
b,
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import (
|
|||||||
"github.com/ProtonMail/go-autostart"
|
"github.com/ProtonMail/go-autostart"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/config/settings"
|
"github.com/ProtonMail/proton-bridge/v2/internal/config/settings"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/config/tls"
|
"github.com/ProtonMail/proton-bridge/v2/internal/config/tls"
|
||||||
|
"github.com/ProtonMail/proton-bridge/v2/internal/config/useragent"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/constants"
|
"github.com/ProtonMail/proton-bridge/v2/internal/constants"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/metrics"
|
"github.com/ProtonMail/proton-bridge/v2/internal/metrics"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/sentry"
|
"github.com/ProtonMail/proton-bridge/v2/internal/sentry"
|
||||||
@ -54,6 +55,7 @@ type Bridge struct {
|
|||||||
updater Updater
|
updater Updater
|
||||||
versioner Versioner
|
versioner Versioner
|
||||||
tls *tls.TLS
|
tls *tls.TLS
|
||||||
|
userAgent *useragent.UserAgent
|
||||||
cacheProvider CacheProvider
|
cacheProvider CacheProvider
|
||||||
autostart *autostart.App
|
autostart *autostart.App
|
||||||
// Bridge's global errors list.
|
// Bridge's global errors list.
|
||||||
@ -72,6 +74,7 @@ func New(
|
|||||||
panicHandler users.PanicHandler,
|
panicHandler users.PanicHandler,
|
||||||
eventListener listener.Listener,
|
eventListener listener.Listener,
|
||||||
tls *tls.TLS,
|
tls *tls.TLS,
|
||||||
|
userAgent *useragent.UserAgent,
|
||||||
cache cache.Cache,
|
cache cache.Cache,
|
||||||
builder *message.Builder,
|
builder *message.Builder,
|
||||||
clientManager pmapi.Manager,
|
clientManager pmapi.Manager,
|
||||||
@ -103,6 +106,7 @@ func New(
|
|||||||
updater: updater,
|
updater: updater,
|
||||||
versioner: versioner,
|
versioner: versioner,
|
||||||
tls: tls,
|
tls: tls,
|
||||||
|
userAgent: userAgent,
|
||||||
cacheProvider: cacheProvider,
|
cacheProvider: cacheProvider,
|
||||||
autostart: autostart,
|
autostart: autostart,
|
||||||
isFirstStart: false,
|
isFirstStart: false,
|
||||||
|
|||||||
9
internal/bridge/useragent.go
Normal file
9
internal/bridge/useragent.go
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package bridge
|
||||||
|
|
||||||
|
func (b *Bridge) GetCurrentUserAgent() string {
|
||||||
|
return b.userAgent.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *Bridge) SetCurrentPlatform(platform string) {
|
||||||
|
b.userAgent.SetPlatform(platform)
|
||||||
|
}
|
||||||
@ -21,7 +21,6 @@ package frontend
|
|||||||
import (
|
import (
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/bridge"
|
"github.com/ProtonMail/proton-bridge/v2/internal/bridge"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/config/settings"
|
"github.com/ProtonMail/proton-bridge/v2/internal/config/settings"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/config/useragent"
|
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/cli"
|
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/cli"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/grpc"
|
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/grpc"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/types"
|
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/types"
|
||||||
@ -46,7 +45,6 @@ func New(
|
|||||||
settings *settings.Settings,
|
settings *settings.Settings,
|
||||||
eventListener listener.Listener,
|
eventListener listener.Listener,
|
||||||
updater types.Updater,
|
updater types.Updater,
|
||||||
userAgent *useragent.UserAgent,
|
|
||||||
bridge *bridge.Bridge,
|
bridge *bridge.Bridge,
|
||||||
noEncConfirmator types.NoEncConfirmator,
|
noEncConfirmator types.NoEncConfirmator,
|
||||||
restarter types.Restarter,
|
restarter types.Restarter,
|
||||||
@ -60,7 +58,6 @@ func New(
|
|||||||
settings,
|
settings,
|
||||||
eventListener,
|
eventListener,
|
||||||
updater,
|
updater,
|
||||||
userAgent,
|
|
||||||
bridgeWrap,
|
bridgeWrap,
|
||||||
noEncConfirmator,
|
noEncConfirmator,
|
||||||
restarter,
|
restarter,
|
||||||
|
|||||||
@ -28,7 +28,6 @@ import (
|
|||||||
|
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/bridge"
|
"github.com/ProtonMail/proton-bridge/v2/internal/bridge"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/config/settings"
|
"github.com/ProtonMail/proton-bridge/v2/internal/config/settings"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/config/useragent"
|
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/events"
|
"github.com/ProtonMail/proton-bridge/v2/internal/events"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/types"
|
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/types"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/updater"
|
"github.com/ProtonMail/proton-bridge/v2/internal/updater"
|
||||||
@ -55,7 +54,6 @@ type Service struct { // nolint:structcheck
|
|||||||
eventListener listener.Listener
|
eventListener listener.Listener
|
||||||
updater types.Updater
|
updater types.Updater
|
||||||
updateCheckMutex sync.Mutex
|
updateCheckMutex sync.Mutex
|
||||||
userAgent *useragent.UserAgent
|
|
||||||
bridge types.Bridger
|
bridge types.Bridger
|
||||||
restarter types.Restarter
|
restarter types.Restarter
|
||||||
showOnStartup bool
|
showOnStartup bool
|
||||||
@ -76,7 +74,6 @@ func NewService(
|
|||||||
settings *settings.Settings,
|
settings *settings.Settings,
|
||||||
eventListener listener.Listener,
|
eventListener listener.Listener,
|
||||||
updater types.Updater,
|
updater types.Updater,
|
||||||
userAgent *useragent.UserAgent,
|
|
||||||
bridge types.Bridger,
|
bridge types.Bridger,
|
||||||
_ types.NoEncConfirmator,
|
_ types.NoEncConfirmator,
|
||||||
restarter types.Restarter,
|
restarter types.Restarter,
|
||||||
@ -88,7 +85,6 @@ func NewService(
|
|||||||
settings: settings,
|
settings: settings,
|
||||||
eventListener: eventListener,
|
eventListener: eventListener,
|
||||||
updater: updater,
|
updater: updater,
|
||||||
userAgent: userAgent,
|
|
||||||
bridge: bridge,
|
bridge: bridge,
|
||||||
restarter: restarter,
|
restarter: restarter,
|
||||||
showOnStartup: showOnStartup,
|
showOnStartup: showOnStartup,
|
||||||
|
|||||||
@ -258,7 +258,7 @@ func (s *Service) ColorSchemeName(context.Context, *emptypb.Empty) (*wrapperspb.
|
|||||||
func (s *Service) CurrentEmailClient(context.Context, *emptypb.Empty) (*wrapperspb.StringValue, error) {
|
func (s *Service) CurrentEmailClient(context.Context, *emptypb.Empty) (*wrapperspb.StringValue, error) {
|
||||||
s.log.Info("CurrentEmailClient")
|
s.log.Info("CurrentEmailClient")
|
||||||
|
|
||||||
return wrapperspb.String(s.userAgent.String()), nil
|
return wrapperspb.String(s.bridge.GetCurrentUserAgent()), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) ReportBug(_ context.Context, report *ReportBugRequest) (*emptypb.Empty, error) {
|
func (s *Service) ReportBug(_ context.Context, report *ReportBugRequest) (*emptypb.Empty, error) {
|
||||||
|
|||||||
@ -34,7 +34,7 @@ func (s *Service) StartEventStream(request *EventStreamRequest, server Bridge_St
|
|||||||
return status.Errorf(codes.AlreadyExists, "the service is already streaming") // TO-DO GODT-1667 decide if we want to kill the existing stream.
|
return status.Errorf(codes.AlreadyExists, "the service is already streaming") // TO-DO GODT-1667 decide if we want to kill the existing stream.
|
||||||
}
|
}
|
||||||
|
|
||||||
s.userAgent.SetPlatform(request.ClientPlatform)
|
s.bridge.SetCurrentPlatform(request.ClientPlatform)
|
||||||
|
|
||||||
s.eventStreamCh = make(chan *StreamEvent)
|
s.eventStreamCh = make(chan *StreamEvent)
|
||||||
s.eventStreamDoneCh = make(chan struct{})
|
s.eventStreamDoneCh = make(chan struct{})
|
||||||
|
|||||||
@ -85,6 +85,9 @@ type Bridger interface {
|
|||||||
GetLicenseFilePath() string
|
GetLicenseFilePath() string
|
||||||
GetDependencyLicensesLink() string
|
GetDependencyLicensesLink() string
|
||||||
|
|
||||||
|
GetCurrentUserAgent() string
|
||||||
|
SetCurrentPlatform(string)
|
||||||
|
|
||||||
// -- old --
|
// -- old --
|
||||||
|
|
||||||
ReportBug(osType, osVersion, description, accountName, address, emailClient string, attachLogs bool) error
|
ReportBug(osType, osVersion, description, accountName, address, emailClient string, attachLogs bool) error
|
||||||
|
|||||||
@ -42,7 +42,7 @@ func (ctx *TestContext) GetBridge() *bridge.Bridge {
|
|||||||
// withBridgeInstance creates a bridge instance for use in the test.
|
// withBridgeInstance creates a bridge instance for use in the test.
|
||||||
// TestContext has this by default once called with env variable TEST_APP=bridge.
|
// TestContext has this by default once called with env variable TEST_APP=bridge.
|
||||||
func (ctx *TestContext) withBridgeInstance() {
|
func (ctx *TestContext) withBridgeInstance() {
|
||||||
ctx.bridge = newBridgeInstance(ctx.t, ctx.locations, ctx.cache, ctx.settings, ctx.tls, ctx.credStore, ctx.listener, ctx.clientManager)
|
ctx.bridge = newBridgeInstance(ctx.t, ctx.locations, ctx.cache, ctx.settings, ctx.tls, ctx.userAgent, ctx.credStore, ctx.listener, ctx.clientManager)
|
||||||
ctx.users = ctx.bridge.Users
|
ctx.users = ctx.bridge.Users
|
||||||
ctx.addCleanupChecked(ctx.bridge.ClearData, "Cleaning bridge data")
|
ctx.addCleanupChecked(ctx.bridge.ClearData, "Cleaning bridge data")
|
||||||
}
|
}
|
||||||
@ -74,6 +74,7 @@ func newBridgeInstance(
|
|||||||
cacheProvider bridge.CacheProvider,
|
cacheProvider bridge.CacheProvider,
|
||||||
fakeSettings *fakeSettings,
|
fakeSettings *fakeSettings,
|
||||||
tls *tls.TLS,
|
tls *tls.TLS,
|
||||||
|
userAgent *useragent.UserAgent,
|
||||||
credStore users.CredentialsStorer,
|
credStore users.CredentialsStorer,
|
||||||
eventListener listener.Listener,
|
eventListener listener.Listener,
|
||||||
clientManager pmapi.Manager,
|
clientManager pmapi.Manager,
|
||||||
@ -82,10 +83,11 @@ func newBridgeInstance(
|
|||||||
locations,
|
locations,
|
||||||
cacheProvider,
|
cacheProvider,
|
||||||
fakeSettings,
|
fakeSettings,
|
||||||
sentry.NewReporter("bridge", constants.Version, useragent.New()),
|
sentry.NewReporter("bridge", constants.Version, userAgent),
|
||||||
&panicHandler{t: t},
|
&panicHandler{t: t},
|
||||||
eventListener,
|
eventListener,
|
||||||
tls,
|
tls,
|
||||||
|
userAgent,
|
||||||
cache.NewInMemoryCache(100*(1<<20)),
|
cache.NewInMemoryCache(100*(1<<20)),
|
||||||
message.NewBuilder(fakeSettings.GetInt(settings.FetchWorkers), fakeSettings.GetInt(settings.AttachmentWorkers)),
|
message.NewBuilder(fakeSettings.GetInt(settings.FetchWorkers), fakeSettings.GetInt(settings.AttachmentWorkers)),
|
||||||
clientManager,
|
clientManager,
|
||||||
|
|||||||
Reference in New Issue
Block a user