<html>
  <head>
    <title>FrameSet Rotation Hit Test</title>

    <script>
        function init() {
            if (!window.eventSender || !window.internals)
                return;
            // Scale the page and resize the frames to verify hit testing on the frameset
            var leftPanelWidth = window.innerWidth / 8;
            var panelHeight = window.innerHeight / 2;
            window.internals.setPageScaleFactor(0.5, 0, 0);
            eventSender.mouseMoveTo(panelHeight / 2, leftPanelWidth);
            eventSender.mouseDown();
            eventSender.mouseMoveTo(panelHeight / 2, 2 * leftPanelWidth);
            eventSender.mouseUp();
        }
        window.onload = init;
    </script>
  </head>
  <!--rotate the frameset and translate it to make sure the entire frameset is visible after scaling-->
  <frameset style="background-color: red; -webkit-transform: rotate(90deg) translate(100px, 0px);" cols="25%,75%">
    <frame src="data:text/html,<body bgcolor='green'></body>">
    <frame src="data:text/html,<body bgcolor='green'></body>">
  </frameset>
</html>
