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?

Другие вопросы по тегам