<html>
<head>
  <style>
    html {
      background: white;
    }
    body {
      margin: 0;
      height: 2000px;
      overflow: hidden;
      background: url(resources/green-blue.png);
      background-attachment: fixed;
      background-size: contain;
      background-repeat: no-repeat;
    }
  </style>
  <script>
  function runTest() {
    if (window.internals) {
      window.internals.setFixedLayoutSize(800, 600);
      window.internals.setPageScaleFactor(0.5, 0, 0);
      window.internals.setUseFixedLayout(true);
      window.internals.settings.setVisualViewportEnabled(false);
    }
  }
  window.addEventListener('load', runTest, false);
  </script>
</head>
<body>
</body>
</html>
