Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit 37b7cf6

Browse files
committed
Refactor navigation timeout to time duration
We should try to work with time duration across most of the codebase. The only place where it could be an int64 is when the module receives a millisecond value in int64.
1 parent 8c883dc commit 37b7cf6

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

common/barrier.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func (b *Barrier) AddFrameNavigation(frame *Frame) {
3232
atomic.AddInt64(&b.count, 1)
3333
select {
3434
case <-frame.ctx.Done():
35-
case <-time.After(time.Duration(frame.manager.timeoutSettings.navigationTimeout()) * time.Millisecond):
35+
case <-time.After(frame.manager.timeoutSettings.navigationTimeout()):
3636
b.errCh <- ErrTimedOut
3737
case <-ch:
3838
b.ch <- true

common/frame.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -883,7 +883,7 @@ func (f *Frame) Goto(url string, opts goja.Value) (api.Response, error) {
883883
defaultReferer = netMgr.extraHTTPHeaders["referer"]
884884
parsedOpts = NewFrameGotoOptions(
885885
defaultReferer,
886-
time.Duration(f.manager.timeoutSettings.navigationTimeout())*time.Millisecond,
886+
f.manager.timeoutSettings.navigationTimeout(),
887887
)
888888
)
889889
if err := parsedOpts.Parse(f.ctx, opts); err != nil {

common/timeout.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package common
22

3+
import "time"
4+
35
// TimeoutSettings holds information on timeout settings.
46
type TimeoutSettings struct {
57
parent *TimeoutSettings
68
defaultTimeout *int64
7-
defaultNavigationTimeout *int64
9+
defaultNavigationTimeout *time.Duration
810
}
911

1012
// NewTimeoutSettings creates a new timeout settings object.
@@ -22,20 +24,21 @@ func (t *TimeoutSettings) setDefaultTimeout(timeout int64) {
2224
}
2325

2426
func (t *TimeoutSettings) setDefaultNavigationTimeout(timeout int64) {
25-
t.defaultNavigationTimeout = &timeout
27+
d := time.Duration(timeout) * time.Millisecond
28+
t.defaultNavigationTimeout = &d
2629
}
2730

28-
func (t *TimeoutSettings) navigationTimeout() int64 {
31+
func (t *TimeoutSettings) navigationTimeout() time.Duration {
2932
if t.defaultNavigationTimeout != nil {
3033
return *t.defaultNavigationTimeout
3134
}
3235
if t.defaultTimeout != nil {
33-
return *t.defaultTimeout
36+
return time.Duration(*t.defaultTimeout * time.Hour.Milliseconds())
3437
}
3538
if t.parent != nil {
3639
return t.parent.navigationTimeout()
3740
}
38-
return int64(DefaultTimeout.Milliseconds())
41+
return DefaultTimeout
3942
}
4043

4144
func (t *TimeoutSettings) timeout() int64 {

common/timeout_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func testTimeoutSettingsSetDefaultNavigationTimeout(t *testing.T) {
7171

7272
ts := NewTimeoutSettings(nil)
7373
ts.setDefaultNavigationTimeout(100)
74-
assert.Equal(t, int64(100), *ts.defaultNavigationTimeout)
74+
assert.Equal(t, int64(100), ts.defaultNavigationTimeout.Milliseconds())
7575
}
7676

7777
func testTimeoutSettingsNavigationTimeout(t *testing.T) {
@@ -80,11 +80,11 @@ func testTimeoutSettingsNavigationTimeout(t *testing.T) {
8080
ts := NewTimeoutSettings(nil)
8181

8282
// Assert default timeout value is used
83-
assert.Equal(t, int64(DefaultTimeout.Milliseconds()), ts.navigationTimeout())
83+
assert.Equal(t, DefaultTimeout, ts.navigationTimeout())
8484

8585
// Assert custom default timeout is used
8686
ts.setDefaultNavigationTimeout(100)
87-
assert.Equal(t, int64(100), ts.navigationTimeout())
87+
assert.Equal(t, int64(100), ts.navigationTimeout().Milliseconds())
8888
}
8989

9090
func testTimeoutSettingsNavigationTimeoutWithParent(t *testing.T) {
@@ -94,15 +94,15 @@ func testTimeoutSettingsNavigationTimeoutWithParent(t *testing.T) {
9494
tsWithParent := NewTimeoutSettings(ts)
9595

9696
// Assert default timeout value is used
97-
assert.Equal(t, int64(DefaultTimeout.Milliseconds()), tsWithParent.navigationTimeout())
97+
assert.Equal(t, DefaultTimeout, tsWithParent.navigationTimeout())
9898

9999
// Assert custom default timeout from parent is used
100100
ts.setDefaultNavigationTimeout(1000)
101-
assert.Equal(t, int64(1000), tsWithParent.navigationTimeout())
101+
assert.Equal(t, int64(1000), tsWithParent.navigationTimeout().Milliseconds())
102102

103103
// Assert custom default timeout is used (over parent)
104104
tsWithParent.setDefaultNavigationTimeout(100)
105-
assert.Equal(t, int64(100), tsWithParent.navigationTimeout())
105+
assert.Equal(t, int64(100), tsWithParent.navigationTimeout().Milliseconds())
106106
}
107107

108108
func testTimeoutSettingsTimeout(t *testing.T) {

0 commit comments

Comments
 (0)