widget/tests/test_bug517396.xul
author Jan de Mooij <jdemooij@mozilla.com>
Sat, 12 Jan 2019 10:50:04 +0000
changeset 453631 cfa1c48c717048f00eb4811b5719cd716eb1e5b3
parent 405692 3c6de76d185556a74a822e1ee0a59ee4b04e9265
child 469642 0d9b9b96f5475adbed73922da696aeff7cbbaed3
permissions -rw-r--r--
Bug 1518753 part 5 - Stop using JSProtoKey for initial shapes. r=tcampbell I added this optimization in bug 1299107 to share more shapes across compartments. Unfortunately this doesn't play well with same-compartment realms (ICs can misbehave) because it relies on compartments being isolated from each other. I think we should remove this optimization: * Fixing the IC issue is impossible without deoptimizing everything. * I added it mainly for chrome globals. The shared-JSM-global work has eliminated the need for this there. * Same-compartment realms win memory back by eliminating CCWs etc. * It's quite a lot of complicated code. Differential Revision: https://phabricator.services.mozilla.com/D16170

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
                 type="text/css"?>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=517396
-->
<window title="Mozilla Bug 517396"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <script type="application/javascript"
          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />

<body  xmlns="http://www.w3.org/1999/xhtml">
<div id="content" style="display: none">
  
</div>
<pre id="test">
</pre>
</body>

<script class="testbody" type="application/javascript">
<![CDATA[

SimpleTest.waitForExplicitFinish();

SimpleTest.waitForFocus(function () {
   // this test fails on Linux, bug 526236
  if (navigator.platform.includes("Lin")) {
    ok(true, "disabled on Linux");
    SimpleTest.finish();
    return;
  }

  var wm = Cc["@mozilla.org/appshell/window-mediator;1"].
              getService(Ci.nsIWindowMediator);
  var win = wm.getMostRecentWindow("navigator:browser");
  var oldWidth = win.outerWidth, oldHeight = win.outerHeight;
  win.maximize();
  var newWidth = win.outerWidth, newHeight = win.outerHeight;
  win.moveBy(10, 0);
  var sizeShouldHaveChanged = !navigator.platform.match(/Mac/);
  var compFunc = sizeShouldHaveChanged ? isnot : is;
  var not = sizeShouldHaveChanged ? "" : "not ";
  compFunc(win.outerWidth, newWidth, "moving a maximized window should " + not + "have changed its width");
  compFunc(win.outerHeight, newHeight, "moving a maximized window should " + not + "have changed its height");
  win.restore();
  is(win.outerWidth, oldWidth, "restored window has wrong width");
  is(win.outerHeight, oldHeight, "restored window has wrong height");
  SimpleTest.finish();
});

]]>
</script>

</window>