Skip to content

Commit ab65a65

Browse files
committed
feat: browser window size now takes into calculation os nav bars
1 parent ed873b1 commit ab65a65

File tree

40 files changed

+267305
-2814
lines changed

40 files changed

+267305
-2814
lines changed

core-interfaces/IBrowserEmulator.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import INetworkInterceptorDelegate from './INetworkInterceptorDelegate';
22
import IUserProfile from './IUserProfile';
33
import INewDocumentInjectedScript from './INewDocumentInjectedScript';
4+
import IWindowFraming from "./IWindowFraming";
45

56
export default interface IBrowserEmulator {
67
readonly navigatorUserAgent: string;
78
readonly navigatorPlatform: string;
9+
readonly windowFramingBase: IWindowFraming;
10+
readonly windowFraming: IWindowFraming;
811
readonly canPolyfill: boolean;
912
readonly networkInterceptorDelegate: INetworkInterceptorDelegate;
1013
locale: string;

core-interfaces/IWindowFraming.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export default interface IWindowFraming {
2+
screenGapLeft: number;
3+
screenGapTop: number;
4+
screenGapRight: number;
5+
screenGapBottom: number;
6+
frameBorderWidth: number;
7+
frameBorderHeight: number;
8+
}

core/lib/Session.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ import IBrowserEmulationSettings from '@secret-agent/puppet-interfaces/IBrowserE
1818
import { IPuppetPage } from '@secret-agent/puppet-interfaces/IPuppetPage';
1919
import IViewport from '@secret-agent/core-interfaces/IViewport';
2020
import IHumanEmulator from '@secret-agent/core-interfaces/IHumanEmulator';
21-
import Viewport from '@secret-agent/emulate-browsers-base/lib/Viewport';
2221
import IBrowserEmulator from '@secret-agent/core-interfaces/IBrowserEmulator';
2322
import IBrowserEngine from '@secret-agent/core-interfaces/IBrowserEngine';
23+
import Viewports from './Viewports';
2424
import GlobalPool from './GlobalPool';
2525
import Tab from './Tab';
2626
import UserProfile from './UserProfile';
@@ -82,7 +82,7 @@ export default class Session {
8282
this.timezoneId = options.timezoneId;
8383
this.viewport = options.viewport;
8484
if (!this.viewport) {
85-
this.viewport = Viewport.getMostPopular();
85+
this.viewport = Viewports.getDefault(this.browserEmulator.windowFramingBase, this.browserEmulator.windowFraming);
8686
}
8787

8888
const humanEmulatorId = options.humanEmulatorId || HumanEmulators.getRandomId();

core/lib/Viewports.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import IViewport from '@secret-agent/core-interfaces/IViewport';
2+
import IWindowFraming from "../../core-interfaces/IWindowFraming";
3+
4+
export default class Viewports {
5+
static getDefault(windowFramingBase: IWindowFraming, windowFraming: IWindowFraming) {
6+
const screenWidth = 1440;
7+
const screenHeight = 900;
8+
const positionX = windowFraming.screenGapLeft;
9+
const positionY = windowFraming.screenGapTop;
10+
const windowWidth = screenWidth - (windowFramingBase.screenGapLeft + windowFramingBase.screenGapRight);
11+
const windowHeight = screenHeight - (windowFramingBase.screenGapTop + windowFramingBase.screenGapBottom);
12+
return {
13+
positionX,
14+
positionY,
15+
screenWidth,
16+
screenHeight,
17+
width: windowWidth,
18+
height: windowHeight,
19+
deviceScaleFactor: 1,
20+
} as IViewport;
21+
}
22+
}

emulate-browsers/base/data/resolution.json

Lines changed: 0 additions & 146 deletions
This file was deleted.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
if (args.windowFrame && !window.outerHeight) {
2-
proxyGetter(window, 'outerHeight', () => window.innerHeight + args.windowFrame, true);
1+
if (!window.outerHeight) {
2+
proxyGetter(window, 'outerHeight', () => window.innerHeight + (args.frameBorderHeight || 0), true);
33
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
if (!window.outerWidth) {
2-
proxyGetter(window, 'outerWidth', () => window.innerWidth, true);
2+
proxyGetter(window, 'outerWidth', () => window.innerWidth + (args.frameBorderWidth || 0), true);
33
}

emulate-browsers/base/lib/Viewport.ts

Lines changed: 0 additions & 65 deletions
This file was deleted.
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
{
2-
"width": 0,
3-
"height": 80
2+
"screenGapLeft": 0,
3+
"screenGapTop": 23,
4+
"screenGapRight": 0,
5+
"screenGapBottom": 4,
6+
"frameBorderWidth": 0,
7+
"frameBorderHeight": 80
48
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
{
2-
"width": 0,
3-
"height": 79
2+
"screenGapLeft": 0,
3+
"screenGapTop": 23,
4+
"screenGapRight": 0,
5+
"screenGapBottom": 4,
6+
"frameBorderWidth": 0,
7+
"frameBorderHeight": 79
48
}

0 commit comments

Comments
 (0)