JxBrowser matchMedia() различное поведение в тяжелом и легком режиме
Я запускал тест http://browserbench.org/MotionMark/ в JxBrowser 6.14 в режиме Heavyweight и Lightweight, когда заметил, что iframe, используемый в тесте, получает разные размеры для двух режимов:
Размер моей рамки: 1000x800
Тяжелый iframe: 900x600 В конце тест говорит: "на среднем экране (ноутбук, планшет)" <body>
помечен классом medium
,
Легкий iframe: 568x320 В конце тест говорит: "на маленьком экране (телефон)"
<body>
помечен классом small
,
Код веб-сайта, ответственного за эту разницу:
determineCanvasSize: function() {
var match = window.matchMedia("(max-device-width: 760px)");
if (match.matches) {
document.body.classList.add("small");
return;
}
match = window.matchMedia("(max-device-width: 1600px)");
if (match.matches) {
document.body.classList.add("medium");
return;
}
match = window.matchMedia("(max-width: 1600px)");
if (match.matches) {
document.body.classList.add("medium");
return;
}
document.body.classList.add("large");
},
Так видимо эти matchMedia()
запросы ведут себя по-разному в облегченном режиме и в тяжелом режиме.
Но почему они должны?
И что может быть решением?
1 ответ
Я не знаю, как работает этот тест, но я знаю, что тяжелые и легкие режимы рендеринга в JxBrowser - это слишком разные режимы, которые имеют свои преимущества и ограничения. Может быть, проблема, которую вы видите, является одной из них. Насколько я знаю, в облегченном режиме рендеринга (вне экрана) WebGL может работать по-другому, потому что в этом случае в движке Chromium используются разные методы рендеринга.
Не могли бы вы дать мне знать, как я могу проверить, что тест работает по-разному в обоих режимах рендеринга? Мне просто нужно запустить его в кадре Java с разрешением 1000x800 с только встроенным BrowserView?