<p dir="auto">DynamicChangeDetection class and JitChangeDetection class were previously private, with only the functions for each made public. The doc comments are on the functions, so nothing shows up in the API docs.</p>
<p dir="auto">Previously we were having issues with duplication in the list of exported public docs, it seems like this is still not quite fixed?</p>
<p dir="auto"><strong>Current behavior</strong><br>
Example<br>
history of browser stack is  [#/index/index  -&gt;  #/product/product -&gt; #/product/choice  -&gt; #/product/pay -&gt; #/product/success  ]</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="/// Follow CanDeactivate implement is for path #/product/success of SuccessComponent

canDeactivate(component: SuccessComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot) {
        console.log(currentState.url);
        console.log(nextState.url)
        return false;
}"><pre class="notranslate"><span class="pl-c">/// Follow CanDeactivate implement is for path #/product/success of SuccessComponent</span>

<span class="pl-en">canDeactivate</span><span class="pl-kos">(</span><span class="pl-s1">component</span>: <span class="pl-smi">SuccessComponent</span><span class="pl-kos">,</span> <span class="pl-s1">currentRoute</span>: <span class="pl-smi">ActivatedRouteSnapshot</span><span class="pl-kos">,</span> <span class="pl-s1">currentState</span>: <span class="pl-smi">RouterStateSnapshot</span><span class="pl-kos">,</span> <span class="pl-s1">nextState</span>?: <span class="pl-smi">RouterStateSnapshot</span><span class="pl-kos">)</span><span class="pl-kos"></span> <span class="pl-kos">{</span>
        <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">currentState</span><span class="pl-kos">.</span><span class="pl-c1">url</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
        <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">nextState</span><span class="pl-kos">.</span><span class="pl-c1">url</span><span class="pl-kos">)</span>
        <span class="pl-k">return</span> <span class="pl-c1">false</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="First click back button on browser
console output “/product/success”
console output “/product/pay”             // expect “/product/pay” so this is ok

Second click back button on browser
console output “/product/success”
console output “/product/choice”        // expect “/product/pay”  so this is error 

Third click back button on browser
console output “/product/success”
console output “/product/product”       // expect “/product/pay”  so this is error

Fourth click back button on browser
console output “/product/success”
console output “/index/index”             // expect “/product/pay”  so this is error"><pre class="notranslate"><code class="notranslate">First click back button on browser
console output “/product/success”
console output “/product/pay”             // expect “/product/pay” so this is ok

Second click back button on browser
console output “/product/success”
console output “/product/choice”        // expect “/product/pay”  so this is error 

Third click back button on browser
console output “/product/success”
console output “/product/product”       // expect “/product/pay”  so this is error

Fourth click back button on browser
console output “/product/success”
console output “/index/index”             // expect “/product/pay”  so this is error
</code></pre></div>
<p dir="auto">Last click back button on browser<br>
this time browser leave angular app even “return false” of canDeactivate be execute;</p>
<p dir="auto">I feel when I click back button of browser, history stack of browser pop a history item even “return false” of method canDeactivate</p>
<p dir="auto"><strong>Expected behavior</strong></p>

<p dir="auto">Recovery history of browser when "return false" of method canDeactivate, just like no click back button of browser.<br>
<strong>Minimal reproduction of the problem with instructions</strong><br>
When config a CanDeactivate for a router, even "return false" of canDeactivate be execute,  multi click back button of browser, we will reproduction this problem</p>
<p dir="auto"><strong>Please tell us about your environment:</strong><br>
angular-cli tool</p>
<ul dir="auto">
<li><strong>Angular version:</strong> 4.0.2</li>
</ul>

<ul dir="auto">
<li>
<p dir="auto"><strong>Browser:</strong> [all browser ]</p>
</li>
<li>
<p dir="auto"><strong>Language:</strong> [ TypeScript 2.x ]</p>
</li>
<li>
<p dir="auto"><strong>Node (for AoT issues):</strong> <code class="notranslate">node --version</code> =   node: 7.0</p>
</li>
</ul>