<!DOCTYPE html>
<!--
 | Setting the border radius for a box with background-image set.
 |   https://www.w3.org/TR/css3-background/#border-radius
 -->
<html>
<head>
  <style>
    div {
      border-radius: 60px;
      height: 200px;
      width: 250px;
    }
  </style>
  <script>
    if (window.testRunner) {
      window.testRunner.waitUntilDone();
    }

    var image = new Image();
    var image_name = 'cobalt.png';

    image.onload = function() {
      var cobalt = document.getElementById('image');
      cobalt.style.background = 'url(' + image_name + ')';

      if (window.testRunner) {
        window.testRunner.notifyDone();
      }
    }

    image.src = image_name;

  </script>
</head>
<body>
  <div id='image'></div>
</body>
</html>
