Как правильно выставить разрешение экрана и браузера в снипете?

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Есть снипет

C#:
// установка рандомных размеров окна и инстанса
Random rnd = new Random();
string[] monitorSizeArr = {"360|740","360|740","360|740"};
string monitorSize = monitorSizeArr[rnd.Next(0,3)];
string[] split = monitorSize.Split(new[] {"|"}, StringSplitOptions.None);

int ScrSizeWidth = Convert.ToInt16(split[0]);
int ScrSizeHeight = Convert.ToInt16(split[1]);
int AvailScrWidth = ScrSizeWidth;
int AvailScrHeight = ScrSizeHeight;
int WindowSizeWidth = ScrSizeWidth;
int WindowSizeHeight = ScrSizeHeight -100;
int OuterWidthShift = rnd.Next(7, 25);
int OuterHeightShift = rnd.Next(96, 140);

project.Profile.ScreenSizeWidth = ScrSizeWidth;
project.Profile.ScreenSizeHeight = ScrSizeHeight;
project.Profile.AvailScreenWidth = AvailScrWidth;
project.Profile.AvailScreenHeight = AvailScrHeight;
project.Profile.OuterWidthShift = OuterWidthShift;
project.Profile.OuterHeightShift = OuterHeightShift;
instance.SetWindowSize(WindowSizeWidth, WindowSizeHeight);
Надо сделать что бы тут https://browserleaks.com/javascript
Были корректные значение схожие с оригинальным на телефоне.

А именно. Красным выделена видимая часть браузера, видите она меньше, т.е. бар барузера не учитывается. В профилях такое не генерится, да и в коде я сделал что бы viewport изменился, но значения снизу остались не изменными.
В общем можете даже на своем телефоне проверить. Как он показывает разрешение, и как PM его генерит.


2020-07-22_043946.jpg
 
Последнее редактирование:

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
Есть снипет

C#:
// установка рандомных размеров окна и инстанса
Random rnd = new Random();
string[] monitorSizeArr = {"360|740","360|740","360|740"};
string monitorSize = monitorSizeArr[rnd.Next(0,3)];
string[] split = monitorSize.Split(new[] {"|"}, StringSplitOptions.None);
  
int ScrSizeWidth = Convert.ToInt16(split[0]);
int ScrSizeHeight = Convert.ToInt16(split[1]);
int AvailScrWidth = ScrSizeWidth;
int AvailScrHeight = ScrSizeHeight;
int WindowSizeWidth = ScrSizeWidth;
int WindowSizeHeight = ScrSizeHeight -100;
int OuterWidthShift = rnd.Next(7, 25);
int OuterHeightShift = rnd.Next(96, 140);

project.Profile.ScreenSizeWidth = ScrSizeWidth;
project.Profile.ScreenSizeHeight = ScrSizeHeight;
project.Profile.AvailScreenWidth = AvailScrWidth;
project.Profile.AvailScreenHeight = AvailScrHeight;
project.Profile.OuterWidthShift = OuterWidthShift;
project.Profile.OuterHeightShift = OuterHeightShift;
instance.SetWindowSize(WindowSizeWidth, WindowSizeHeight);

Надо сделать что бы тут https://browserleaks.com/javascript
Были корректные значение схожие с оригинальным на телефоне.


Посмотреть вложение 60341
Все просто, я этот использую, да без разницы какой сниппет, его для примера.
C#:
instance.SetBrowserPreference("network.proxy.socks_remote_dns", true);
Random r = new Random();
 
// Формируем набор популярных десктопных разрешений [Идея хранения позаимствована у doc'a, за что ему большая благодарность!]
int [,] resolutionSet = {
    {360, 640}
    //{480, 640}
};
// Получаем рандомное разрешение и устанавливаем
int resolution = r.Next(resolutionSet.Length/2);
project.Profile.ScreenSizeWidth = resolutionSet[resolution, 0];
project.Profile.ScreenSizeHeight = resolutionSet[resolution, 1];
var TestW = Convert.ToInt32(resolutionSet[resolution, 0]);
var TestH = Convert.ToInt32(resolutionSet[resolution, 1]);

instance.SetWindowSize (TestW, TestH);
// Видимая область
project.Profile.AvailScreenWidth = project.Profile.ScreenSizeWidth-17;
project.Profile.AvailScreenHeight = project.Profile.ScreenSizeHeight-40;
// Глубина цвета монитора (Color Depth)
// [Чуть позже будет обновление механизма установки этого параметра]
instance.SetScreenPreference("screen_color_depth", 24);

60342


60345
{-Profile.ScreenSizeWidth-}
{-Profile.ScreenSizeHeight-}
 

Вложения

  • Спасибо
Реакции: maxim.gutareff

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Все просто, я этот использую, да без разницы какой сниппет, его для примера.
Ну так он не решил поставленную задачу. Такие разрешения и профиль генерит. Я щас подправлю пост, что бы понятнее было что мне надо.

UPD. Подправил.

UPD. + у тебя появился скролл, которого в мобилке нету.
 

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
Ну так он не решил поставленную задачу. Такие разрешения и профиль генерит. Я щас подправлю пост, что бы понятнее было что мне надо.

UPD. Подправил.

UPD. + у тебя появился скролл, которого в мобилке нету.
Мой нокиа 6 так, но да что-то не сходится.
Во ты тему подкинул, теперь я тоже буду думать как решить эту проблему
Screenshot_20200722-041707.png
 
  • Спасибо
Реакции: eee и Mikhail B.

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
// Видимая область
project.Profile.AvailScreenWidth = project.Profile.ScreenSizeWidth-17;
project.Profile.AvailScreenHeight = project.Profile.ScreenSizeHeight-40;
// Глубина цвета монитора (Color Depth
На мобилах есть полосы прокрутки ?
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
C#:
// Видимая область
project.Profile.AvailScreenWidth = project.Profile.ScreenSizeWidth-17;
project.Profile.AvailScreenHeight = project.Profile.ScreenSizeHeight-40;
Это все не правильно
1. для мобилы это вообще автомитически считается и учитывает как раз полосу прокрутки которой нет. Т.е. смещения тут равны нулю реально
2. -17 и -40 смещения - надо проверять на разных девайсах. Сколько я смотрел - даже не дескстопе может отличаться.
3. Вручную сюда считаю что лучше вообще не лазить. Лучше (без багов) выставить возможности нету, а еще хуже - легко.

Вот баг с полосой прокрутки
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
Подробности читаем тут https://developer.mozilla.org/en-US/docs/Web/API/Screen

В частности
Screen.availHeightSpecifies the height of the screen, in pixels, minus permanent or semipermanent user interface features displayed by the operating system, such as the Taskbar on Windows.
И где-то на форумах буржуйских прогеров эта тема тоже разжовывалась как правильно считать, но я потерял где.
 
  • Спасибо
Реакции: watersquad

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
C#:
// Видимая область
project.Profile.AvailScreenWidth = project.Profile.ScreenSizeWidth-17;
project.Profile.AvailScreenHeight = project.Profile.ScreenSizeHeight-40;
Это все не правильно
1. для мобилы это вообще автомитически считается и учитывает как раз полосу прокрутки которой нет. Т.е. смещения тут равны нулю реально
2. -17 и -40 смещения - надо проверять на разных девайсах. Сколько я смотрел - даже не дескстопе может отличаться.
3. Вручную сюда считаю что лучше вообще не лазить. Лучше (без багов) выставить возможности нету, а еще хуже - легко.

Вот баг с полосой прокрутки
хочешь сказать лучше оставить зеновскую генерацию?
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
хочешь сказать лучше оставить зеновскую генерацию?
Имею ввиду что как не плюнь, то все криво.
Потому руками не лазить чтобы не сделать еще хуже. В частности вводить коэффициенты там какие-то поправки, вычеты размеров и тд.
Глобально только контролировать размер окна(viewport)
но тут косяк!
Потому что размер viewport не сохраняется в профиле)) (гы гы, привет разрабам, которые считают что это настолько ничтожный параметр, что он не достоин хранения в профиле)
Надо самому для профилей его считать и хранить.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Имею ввиду что как не плюнь, то все криво.
Потому руками не лазить чтобы не сделать еще хуже.
Глобально только контролировать размер окна(viewport)
но тут косяк!
Потому что размер viewport не сохраняется в профиле)) (гы гы, привет разрабам, которые считают что это настолько ничтожный параметр, что он не достоин хранения в профиле)
Надо самому для профилей его считать и хранить.
Значит надо делать предложение. Можешь сформировать корректное предложение в разделе предложений? Видно что тебе тема более близка и ты сможешь раскрыть тему)))
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
Значит надо делать предложение. Можешь сформировать корректное предложение в разделе предложений? Видно что тебе тема более близка и ты сможешь раскрыть тему)))
Рас, два, три

Все давно запощено. А толку?)
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
  • Спасибо
Реакции: Iv1

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Посмотрел на реальных девайсах по ширине всегда совпадает, то есть нет отступов справа. А вот по высоте иногда бывает значительный отступ - видимо менюшка андроида снизу занимает ...
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Посмотрел на реальных девайсах по ширине всегда совпадает, то есть нет отступов справа. А вот по высоте иногда бывает значительный отступ - видимо менюшка андроида снизу занимает ...
Вобще кто-то юзает браузер на весь экран? Я даже не знаю можно ли его так юзать)) на компе да F11 нажал и юзай, это как бы простительно еще
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
Посмотрел на реальных девайсах по ширине всегда совпадает, то есть нет отступов справа. А вот по высоте иногда бывает значительный отступ - видимо менюшка андроида снизу занимает ...
Если смотреть сервисами то зенка не может выдать адекватный avail. Тут хоть усчитайся - пофиг.
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
Вобще кто-то юзает браузер на весь экран? Я даже не знаю можно ли его так юзать)) на компе да F11 нажал и юзай, это как бы простительно еще
На мобели браузер всегда фул скрин
 
  • Спасибо
Реакции: luk911

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
На мобели браузер всегда фул скрин
А это тогда что?


740 фулл высота
612 видимая область браузера, вот именно эту ебалу я не могу эмулировать корректно. она менется в viewport вроде.
А в нижних строчках не меняется. Соответственно не получается полностью повторить разрешения телефона.

 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
Сейчас выяснить что Айфон - это вам не Андроид))
А какой нибудь EMUI - это вообще не так))

Попробую на разных моделях и производителях проверить.
Может тут от оболочек производителей еще что зависит
Я знаю что строение прошивки для айфонов, самсунгов, хуавеев и остальных - отличается.
А как сильно - еще может надо разбирать
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
у меня реальных телефонов разных производителей под рукой всего то 5 штук.
Статистики много не бывает))
Соберу еще данных - отпишусь

p.s. Параметры inner и outer - еще более хитро считаются и вроде тоже автоматически определяются.
 
  • Спасибо
Реакции: Mikhail B.

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
А это тогда что?


740 фулл высота
612 видимая область браузера, вот именно эту ебалу я не могу эмулировать корректно. она менется в viewport вроде.
А в нижних строчках не меняется. Соответственно не получается полностью повторить разрешения телефона.

Это скорее всего андроидовское меню снизу, если оно у тебя не скрывается. Или строка браузера сверху ...
 

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 704
Благодарностей
1 079
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
  • Спасибо
Реакции: zarufakis

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 704
Благодарностей
1 079
Баллы
113
Вот так же как и у меня.

Значит так и должно быть и зенка не может корректно отобразить бар
На андроиде понятно, что нужно отнять высоту верхнего бара и нижнего (если он есть).
А как на iPhone дела должны обстоять?
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 704
Благодарностей
1 079
Баллы
113
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
В общем буду зеновское ставить из профиля.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)