| Index: LayoutTests/inspector/styles/override-and-disable.html
 | 
| diff --git a/LayoutTests/inspector/styles/override-screen-size.html b/LayoutTests/inspector/styles/override-and-disable.html
 | 
| similarity index 72%
 | 
| copy from LayoutTests/inspector/styles/override-screen-size.html
 | 
| copy to LayoutTests/inspector/styles/override-and-disable.html
 | 
| index 826f1babb7c32969545f3266a8f091cb76e6b6f1..b7ff8971a803cfa9e57dfe7eb05eaa553b8ffdaa 100644
 | 
| --- a/LayoutTests/inspector/styles/override-screen-size.html
 | 
| +++ b/LayoutTests/inspector/styles/override-and-disable.html
 | 
| @@ -2,15 +2,15 @@
 | 
|  <head>
 | 
|  
 | 
|  <style type="text/css" media="screen">
 | 
| -@media (max-device-width: 478px) and (max-device-height: 959px) {
 | 
| +@media (max-device-width: 478px) and (max-device-height: 799px) {
 | 
|      #main { background: red; }
 | 
|  }
 | 
|  
 | 
| -@media (max-device-width: 480px) and (max-device-height: 960px) {
 | 
| +@media (max-device-width: 480px) and (max-device-height: 800px) {
 | 
|      #main { background: green; }
 | 
|  }
 | 
|  
 | 
| -@media (min-device-width: 481px) and (min-device-height: 961px) {
 | 
| +@media (min-device-width: 481px) and (min-device-height: 801px) {
 | 
|      #main { background: yellow; }
 | 
|  }
 | 
|  
 | 
| @@ -41,7 +41,7 @@ function getSizes()
 | 
|  
 | 
|  function test()
 | 
|  {
 | 
| -    var exceededDimension = 10000001;
 | 
| +    var overridesEnabled = false;
 | 
|      var originalScreenSize;
 | 
|  
 | 
|      function saveSizeCallback(jsonResult)
 | 
| @@ -64,56 +64,6 @@ function test()
 | 
|  
 | 
|      function step1()
 | 
|      {
 | 
| -        function compareSizeCallback(jsonResult)
 | 
| -        {
 | 
| -            // Check that the screen size reported is the same as the original one.
 | 
| -            var result = JSON.parse(jsonResult.value);
 | 
| -            if (result.screen !== originalScreenSize)
 | 
| -                InspectorTest.addResult("Original size " + originalScreenSize + " not restored, found: " + result.screen);
 | 
| -            step2();
 | 
| -        }
 | 
| -
 | 
| -        function overrideCallback()
 | 
| -        {
 | 
| -            InspectorTest.evaluateInPage("getSizes()", compareSizeCallback);
 | 
| -        }
 | 
| -
 | 
| -        // Disable overrides.
 | 
| -        PageAgent.setDeviceMetricsOverride(0, 0, 1, true, overrideCallback);
 | 
| -    }
 | 
| -
 | 
| -    function step2()
 | 
| -    {
 | 
| -        overrideAndDumpData(800, 480, step3);
 | 
| -    }
 | 
| -
 | 
| -    function step3()
 | 
| -    {
 | 
| -        applyOverride(exceededDimension, 800, step4);
 | 
| -    }
 | 
| -
 | 
| -    function step4()
 | 
| -    {
 | 
| -        applyOverride(-1, 800, step5);
 | 
| -    }
 | 
| -
 | 
| -    function step5()
 | 
| -    {
 | 
| -        applyOverride(480, exceededDimension, step6);
 | 
| -    }
 | 
| -
 | 
| -    function step6()
 | 
| -    {
 | 
| -        function callback()
 | 
| -        {
 | 
| -            InspectorTest.addResult("Current dimensions:");
 | 
| -            getAndDumpSizes(step7);
 | 
| -        }
 | 
| -        applyOverride(480, -1, callback);
 | 
| -    }
 | 
| -
 | 
| -    function step7()
 | 
| -    {
 | 
|          function callback(jsonResult)
 | 
|          {
 | 
|              var value = JSON.parse(jsonResult.value);
 | 
| @@ -121,7 +71,7 @@ function test()
 | 
|                  InspectorTest.addResult("Screen size not restored, actual: " + value.screen + ", expected: " + originalScreenSize);
 | 
|              else
 | 
|                  InspectorTest.addResult("Screen size same as original - OK");
 | 
| -            step8();
 | 
| +            step2();
 | 
|          }
 | 
|  
 | 
|          InspectorTest.addResult("Disable PageAgent:");
 | 
| @@ -129,7 +79,7 @@ function test()
 | 
|          InspectorTest.evaluateInPage("getSizes()", callback);
 | 
|      }
 | 
|  
 | 
| -    function step8()
 | 
| +    function step2()
 | 
|      {
 | 
|          function callback(jsonResult)
 | 
|          {
 | 
| @@ -148,13 +98,20 @@ function test()
 | 
|  
 | 
|      function applyOverride(width, height, userCallback)
 | 
|      {
 | 
| -        function callback(error)
 | 
| +        function callback(reload, error)
 | 
|          {
 | 
|              if (error)
 | 
|                  InspectorTest.addResult("Override: " + width + "x" + height + " => ERROR");
 | 
| -            userCallback();
 | 
| +            if (reload && !error) {
 | 
| +                InspectorTest.reloadPage(userCallback);
 | 
| +            } else {
 | 
| +                userCallback();
 | 
| +            }
 | 
|          }
 | 
| -        PageAgent.setDeviceMetricsOverride(width, height, 1, true, callback);
 | 
| +        
 | 
| +        var enabled = width > 0 && height > 0;
 | 
| +        PageAgent.setDeviceMetricsOverride(width, height, 1, true, callback.bind(null, enabled != overridesEnabled));
 | 
| +        overridesEnabled = enabled;
 | 
|      }
 | 
|  
 | 
|      function overrideAndDumpData(width, height, callback)
 | 
| @@ -212,7 +169,7 @@ function test()
 | 
|  
 | 
|  <body onload="runTest()">
 | 
|  <p>
 | 
| -Tests that screen dimension overrides affect media rules, body dimensions, and window.screen.
 | 
| +Tests that disabling page agent cancels device metrics override.
 | 
|  </p>
 | 
|  
 | 
|  <div id="main"></div>
 | 
| 
 |