<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML style="overflow:auto;">
<HEAD>
<meta name="generator" content="JDiff v1.1.0">
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
<TITLE>
android.webkit.WebSettings
</TITLE>
<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
<noscript>
<style type="text/css">
body{overflow:auto;}
#body-content{position:relative; top:0;}
#doc-content{overflow:visible;border-left:3px solid #666;}
#side-nav{padding:0;}
#side-nav .toggle-list ul {display:block;}
#resize-packages-nav{border-bottom:3px solid #666;}
</style>
</noscript>
<style type="text/css">
</style>
</HEAD>
<BODY>
<!-- Start of nav bar -->
<a name="top"></a>
<div id="header" style="margin-bottom:0;padding-bottom:0;">
<div id="headerLeft">
<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
</div>
  <div id="headerRight">
  <div id="headerLinks">
<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
<span class="text">
<!-- &nbsp;<a href="#">English</a> | -->
<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
</span>
</div>
  <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
    <table class="diffspectable">
      <tr>
        <td colspan="2" class="diffspechead">API Diff Specification</td>
      </tr>
      <tr>
        <td class="diffspec" style="padding-top:.25em">To Level:</td>
        <td class="diffvaluenew" style="padding-top:.25em">15</td>
      </tr>
      <tr>
        <td class="diffspec">From Level:</td>
        <td class="diffvalueold">14</td>
      </tr>
      <tr>
        <td class="diffspec">Generated</td>
        <td class="diffvalue">2011.12.12 18:47</td>
      </tr>
    </table>
    </div><!-- End and-diff-id -->
  <div class="and-diff-id" style="margin-right:8px;">
    <table class="diffspectable">
      <tr>
        <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
      </tr>
    </table>
  </div> <!-- End and-diff-id -->
  </div> <!-- End headerRight -->
  </div> <!-- End header -->
<div id="body-content" xstyle="padding:12px;padding-right:18px;">
<div id="doc-content" style="position:relative;">
<div id="mainBodyFluid">
<H2>
Class android.webkit.<A HREF="../../../../reference/android/webkit/WebSettings.html" target="_top"><font size="+2"><code>WebSettings</code></font></A>
</H2>
<a NAME="constructors"></a>
<a NAME="methods"></a>
<p>
<a NAME="Changed"></a>
<TABLE summary="Changed Methods" WIDTH="100%">
<TR>
  <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
</TH>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.webkit.WebSettings.getLayoutAlgorithm_changed()"></A>
  <nobr><code>LayoutAlgorithm</code>&nbsp;<A HREF="../../../../reference/android/webkit/WebSettings.html#getLayoutAlgorithm()" target="_top"><code>getLayoutAlgorithm</code></A>()  </nobr>
  </TD>
  <TD VALIGN="TOP" WIDTH="30%">
Change from deprecated to undeprecated.<br>
  </TD>
  <TD>&nbsp;</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.webkit.WebSettings.setLayoutAlgorithm_changed(android.webkit.WebSettings.LayoutAlgorithm)"></A>
  <nobr><code>void</code>&nbsp;<A HREF="../../../../reference/android/webkit/WebSettings.html#setLayoutAlgorithm(android.webkit.WebSettings.LayoutAlgorithm)" target="_top"><code>setLayoutAlgorithm</code></A>(<code>LayoutAlgorithm</code>)  </nobr>
  </TD>
  <TD VALIGN="TOP" WIDTH="30%">
Change from deprecated to undeprecated.<br>
  </TD>
  <TD>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<a NAME="fields"></a>
      </div>	
      <div id="footer">
        <div id="copyright">
        Except as noted, this content is licensed under 
        <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
        For details and restrictions, see the <a href="/license.html">Content License</a>.
        </div>
      <div id="footerlinks">
      <p>
        <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
        <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
        <a href="http://www.android.com/branding.html">Brand Guidelines</a>
      </p>
    </div>
    </div> <!-- end footer -->
    </div><!-- end doc-content -->
    </div> <!-- end body-content --> 
<script src="//www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
  try {
    var pageTracker = _gat._getTracker("UA-5831155-1");
    pageTracker._setAllowAnchor(true);
    pageTracker._initData();
    pageTracker._trackPageview();
  } catch(e) {}
</script>
</BODY>
</HTML>
