blob: 8c78aa8e5409ac67a7131b5a4f5879c729983f60 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
window.addEventListener('DOMContentLoaded', function() {
var body = document.body;
var div = body.appendChild(document.createElement('div'));
var input1 = body.appendChild(document.createElement('input'));
var input2 = body.appendChild(document.createElement('input'));
input1.focus();
input1.addEventListener('blur', function() {
div.setAttribute('baz', 'bat');
});
var success = false;
var mutationsDelivered = false;
var observer = new MutationObserver(function() {
mutationsDelivered = true;
if (success)
chrome.test.succeed();
});
observer.observe(document, { subtree: true, attributes: true });
// The getAll callback should be counted as a V8RecursionScope and cause
// the delivery of MutationRecords to be delayed until it has exited.
chrome.windows.getAll(function() {
div.setAttribute('foo', 'bar');
input2.focus();
if (mutationsDelivered)
chrome.test.fail();
else
success = true;
});
});