Merge change I8018f091 into eclair
* changes:
Add very simple input path. Fix end-of-line issues.
diff --git a/Android.mk b/Android.mk
index 90f2acb..1428454 100644
--- a/Android.mk
+++ b/Android.mk
@@ -216,6 +216,7 @@
frameworks/base/core/java/android/net/Uri.aidl \
frameworks/base/core/java/android/os/Bundle.aidl \
frameworks/base/core/java/android/os/ParcelFileDescriptor.aidl \
+ frameworks/base/core/java/android/os/ParcelUuid.aidl \
frameworks/base/core/java/android/view/KeyEvent.aidl \
frameworks/base/core/java/android/view/MotionEvent.aidl \
frameworks/base/core/java/android/view/Surface.aidl \
diff --git a/api/4.xml b/api/4.xml
index bca9816..e996e8f 100644
--- a/api/4.xml
+++ b/api/4.xml
@@ -51157,7 +51157,7 @@
<method name="breakText"
return="int"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51201,7 +51201,7 @@
<method name="breakText"
return="int"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51769,7 +51769,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51786,7 +51786,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51803,7 +51803,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
diff --git a/api/current.xml b/api/current.xml
index 54cff8d..0389da5 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -2550,6 +2550,17 @@
visibility="public"
>
</field>
+<field name="colorBackgroundCacheHint"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843435"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="colorForeground"
type="int"
transient="false"
@@ -3485,6 +3496,17 @@
visibility="public"
>
</field>
+<field name="fadeScrollbars"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843434"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="fadingEdge"
type="int"
transient="false"
@@ -6763,6 +6785,28 @@
visibility="public"
>
</field>
+<field name="scrollbarDefaultDelayBeforeFade"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843433"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="scrollbarFadeDuration"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843432"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="scrollbarSize"
type="int"
transient="false"
@@ -24284,6 +24328,17 @@
visibility="public"
>
</field>
+<field name="SUGGEST_PARAMETER_LIMIT"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""limit""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="SUGGEST_URI_PATH_QUERY"
type="java.lang.String"
transient="false"
@@ -26029,6 +26084,17 @@
visibility="public"
>
</field>
+<field name="ACTION_REQUEST_ENABLE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""android.bluetooth.adapter.action.REQUEST_ENABLE""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="ACTION_SCAN_MODE_CHANGED"
type="java.lang.String"
transient="false"
@@ -27528,87 +27594,6 @@
>
</method>
</class>
-<class name="ParcelUuid"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="android.os.Parcelable">
-</implements>
-<constructor name="ParcelUuid"
- type="android.bluetooth.ParcelUuid"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="uuid" type="java.util.UUID">
-</parameter>
-</constructor>
-<method name="describeContents"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="fromString"
- return="android.bluetooth.ParcelUuid"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="uuid" type="java.lang.String">
-</parameter>
-</method>
-<method name="getUuid"
- return="java.util.UUID"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="writeToParcel"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="dest" type="android.os.Parcel">
-</parameter>
-<parameter name="flags" type="int">
-</parameter>
-</method>
-<field name="CREATOR"
- type="android.os.Parcelable.Creator"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-</class>
</package>
<package name="android.content"
>
@@ -41626,6 +41611,19 @@
<parameter name="appInfo" type="android.content.pm.ApplicationInfo">
</parameter>
</method>
+<method name="hasSystemFeature"
+ return="boolean"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
<method name="isSafeMode"
return="boolean"
abstract="true"
@@ -58563,7 +58561,7 @@
<method name="breakText"
return="int"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -58607,7 +58605,7 @@
<method name="breakText"
return="int"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -59175,7 +59173,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -59192,7 +59190,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -59209,7 +59207,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -67550,19 +67548,6 @@
<exception name="IOException" type="java.io.IOException">
</exception>
</method>
-<method name="setZoomCallback"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="cb" type="android.hardware.Camera.ZoomCallback">
-</parameter>
-</method>
<method name="startPreview"
return="void"
abstract="false"
@@ -68528,11 +68513,11 @@
visibility="public"
>
</field>
-<field name="FLASH_MODE_VIDEO_LIGHT"
+<field name="FLASH_MODE_TORCH"
type="java.lang.String"
transient="false"
volatile="false"
- value=""video-light""
+ value=""torch""
static="true"
final="true"
deprecated="not deprecated"
@@ -68943,29 +68928,6 @@
>
</field>
</class>
-<interface name="Camera.ZoomCallback"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="onZoomUpdate"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="zoomLevel" type="int">
-</parameter>
-<parameter name="camera" type="android.hardware.Camera">
-</parameter>
-</method>
-</interface>
<class name="GeomagneticField"
extends="java.lang.Object"
abstract="false"
@@ -105523,6 +105485,87 @@
</parameter>
</constructor>
</class>
+<class name="ParcelUuid"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="android.os.Parcelable">
+</implements>
+<constructor name="ParcelUuid"
+ type="android.os.ParcelUuid"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="uuid" type="java.util.UUID">
+</parameter>
+</constructor>
+<method name="describeContents"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="fromString"
+ return="android.os.ParcelUuid"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="uuid" type="java.lang.String">
+</parameter>
+</method>
+<method name="getUuid"
+ return="java.util.UUID"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="writeToParcel"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="dest" type="android.os.Parcel">
+</parameter>
+<parameter name="flags" type="int">
+</parameter>
+</method>
+<field name="CREATOR"
+ type="android.os.Parcelable.Creator"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
<interface name="Parcelable"
abstract="true"
static="false"
@@ -113870,6 +113913,17 @@
visibility="public"
>
</field>
+<field name="OFFICE_LOCATION"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""data9""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="PHONETIC_NAME"
type="java.lang.String"
transient="false"
@@ -115040,6 +115094,27 @@
visibility="public"
>
</field>
+<field name="CONTENT_VCARD_TYPE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""text/x-vcard""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="CONTENT_VCARD_URI"
+ type="android.net.Uri"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
</class>
<class name="ContactsContract.Contacts.AggregationSuggestions"
extends="java.lang.Object"
@@ -115635,82 +115710,21 @@
</field>
</class>
<class name="ContactsContract.Presence"
- extends="java.lang.Object"
+ extends="android.provider.ContactsContract.StatusUpdates"
abstract="false"
static="true"
final="true"
+ deprecated="deprecated"
+ visibility="public"
+>
+<constructor name="ContactsContract.Presence"
+ type="android.provider.ContactsContract.Presence"
+ static="false"
+ final="false"
deprecated="not deprecated"
visibility="public"
>
-<method name="getPresenceIconResourceId"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="status" type="int">
-</parameter>
-</method>
-<method name="getPresencePrecedence"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="status" type="int">
-</parameter>
-</method>
-<field name="CONTENT_ITEM_TYPE"
- type="java.lang.String"
- transient="false"
- volatile="false"
- value=""vnd.android.cursor.item/im-presence""
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="CONTENT_TYPE"
- type="java.lang.String"
- transient="false"
- volatile="false"
- value=""vnd.android.cursor.dir/im-presence""
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="CONTENT_URI"
- type="android.net.Uri"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="_ID"
- type="java.lang.String"
- transient="false"
- volatile="false"
- value=""presence_id""
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
+</constructor>
</class>
<class name="ContactsContract.RawContacts"
extends="java.lang.Object"
@@ -115877,6 +115891,73 @@
>
</field>
</class>
+<class name="ContactsContract.StatusUpdates"
+ extends="java.lang.Object"
+ abstract="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="getPresenceIconResourceId"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="status" type="int">
+</parameter>
+</method>
+<method name="getPresencePrecedence"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="status" type="int">
+</parameter>
+</method>
+<field name="CONTENT_ITEM_TYPE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""vnd.android.cursor.item/status-update""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="CONTENT_TYPE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""vnd.android.cursor.dir/status-update""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="CONTENT_URI"
+ type="android.net.Uri"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
<class name="ContactsContract.SyncState"
extends="java.lang.Object"
abstract="false"
@@ -117788,6 +117869,21 @@
visibility="public"
>
</constructor>
+<method name="cancelThumbnailRequest"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="cr" type="android.content.ContentResolver">
+</parameter>
+<parameter name="origId" type="long">
+</parameter>
+</method>
<method name="getContentUri"
return="android.net.Uri"
abstract="false"
@@ -118230,6 +118326,21 @@
visibility="public"
>
</constructor>
+<method name="cancelThumbnailRequest"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="cr" type="android.content.ContentResolver">
+</parameter>
+<parameter name="origId" type="long">
+</parameter>
+</method>
<method name="getContentUri"
return="android.net.Uri"
abstract="false"
@@ -123138,6 +123249,23 @@
<parameter name="b" type="java.lang.String">
</parameter>
</method>
+<method name="compare"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="context" type="android.content.Context">
+</parameter>
+<parameter name="a" type="java.lang.String">
+</parameter>
+<parameter name="b" type="java.lang.String">
+</parameter>
+</method>
<method name="convertKeypadLettersToDigits"
return="java.lang.String"
abstract="false"
@@ -131377,6 +131505,19 @@
<parameter name="appInfo" type="android.content.pm.ApplicationInfo">
</parameter>
</method>
+<method name="hasSystemFeature"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
<method name="isSafeMode"
return="boolean"
abstract="false"
@@ -155210,6 +155351,45 @@
<parameter name="views" type="java.util.ArrayList<android.view.View>">
</parameter>
</method>
+<method name="awakenScrollBars"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</method>
+<method name="awakenScrollBars"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+<parameter name="startDelay" type="int">
+</parameter>
+</method>
+<method name="awakenScrollBars"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+<parameter name="startDelay" type="int">
+</parameter>
+<parameter name="invalidate" type="boolean">
+</parameter>
+</method>
<method name="bringToFront"
return="void"
abstract="false"
@@ -156859,6 +157039,17 @@
visibility="public"
>
</method>
+<method name="isScrollbarFadingEnabled"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
<method name="isSelected"
return="boolean"
abstract="false"
@@ -158311,6 +158502,19 @@
<parameter name="isScrollContainer" type="boolean">
</parameter>
</method>
+<method name="setScrollbarFadingEnabled"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="fadeScrollbars" type="boolean">
+</parameter>
+</method>
<method name="setSelected"
return="void"
abstract="false"
@@ -159644,6 +159848,17 @@
visibility="public"
>
</method>
+<method name="getScrollBarFadeDuration"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
<method name="getScrollBarSize"
return="int"
abstract="false"
@@ -159655,6 +159870,17 @@
visibility="public"
>
</method>
+<method name="getScrollDefaultDelay"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
<method name="getScrollFriction"
return="float"
abstract="false"
@@ -171804,6 +172030,48 @@
</parameter>
</method>
</interface>
+<class name="GeolocationPermissions"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="GeolocationPermissions"
+ type="android.webkit.GeolocationPermissions"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+</class>
+<interface name="GeolocationPermissions.Callback"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="invoke"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="origin" type="java.lang.String">
+</parameter>
+<parameter name="allow" type="boolean">
+</parameter>
+<parameter name="remember" type="boolean">
+</parameter>
+</method>
+</interface>
<class name="HttpAuthHandler"
extends="android.os.Handler"
abstract="false"
@@ -172905,6 +173173,32 @@
<parameter name="quotaUpdater" type="android.webkit.WebStorage.QuotaUpdater">
</parameter>
</method>
+<method name="onGeolocationPermissionsHidePrompt"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="onGeolocationPermissionsShowPrompt"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="origin" type="java.lang.String">
+</parameter>
+<parameter name="callback" type="android.webkit.GeolocationPermissions.Callback">
+</parameter>
+</method>
<method name="onJsAlert"
return="boolean"
abstract="false"
@@ -173743,6 +174037,32 @@
<parameter name="font" type="java.lang.String">
</parameter>
</method>
+<method name="setGeolocationDatabasePath"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="databasePath" type="java.lang.String">
+</parameter>
+</method>
+<method name="setGeolocationEnabled"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="flag" type="boolean">
+</parameter>
+</method>
<method name="setJavaScriptCanOpenWindowsAutomatically"
return="void"
abstract="false"
@@ -196869,7 +197189,7 @@
abstract="false"
static="false"
final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<constructor name="AllocationLimitError"
@@ -197075,7 +197395,7 @@
abstract="false"
static="false"
final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<constructor name="PotentialDeadlockError"
@@ -197102,7 +197422,7 @@
abstract="false"
static="false"
final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<constructor name="StaleDexCacheError"
@@ -197129,7 +197449,7 @@
abstract="false"
static="false"
final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<constructor name="TemporaryDirectory"
@@ -197172,7 +197492,7 @@
abstract="false"
static="false"
final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<constructor name="TouchDex"
@@ -197215,7 +197535,7 @@
abstract="false"
static="false"
final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<method name="dumpHprofData"
@@ -197719,7 +198039,7 @@
abstract="false"
static="false"
final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<method name="gcSoftReferences"
@@ -197820,7 +198140,7 @@
abstract="false"
static="false"
final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<constructor name="VMStack"
@@ -197887,7 +198207,7 @@
abstract="false"
static="false"
final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
visibility="public"
>
<method name="fork"
diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java
index b877098..79eb310b 100644
--- a/cmds/pm/src/com/android/commands/pm/Pm.java
+++ b/cmds/pm/src/com/android/commands/pm/Pm.java
@@ -18,6 +18,7 @@
import android.content.ComponentName;
import android.content.pm.ApplicationInfo;
+import android.content.pm.FeatureInfo;
import android.content.pm.IPackageDeleteObserver;
import android.content.pm.IPackageInstallObserver;
import android.content.pm.IPackageManager;
@@ -137,6 +138,7 @@
* pm list [package | packages]
* pm list permission-groups
* pm list permissions
+ * pm list features
* pm list instrumentation
*/
private void runList() {
@@ -152,6 +154,8 @@
runListPermissionGroups();
} else if ("permissions".equals(type)) {
runListPermissions();
+ } else if ("features".equals(type)) {
+ runListFeatures();
} else if ("instrumentation".equals(type)) {
runListInstrumentation();
} else {
@@ -205,6 +209,44 @@
}
/**
+ * Lists all of the features supported by the current device.
+ *
+ * pm list features
+ */
+ private void runListFeatures() {
+ try {
+ List<FeatureInfo> list = new ArrayList<FeatureInfo>();
+ FeatureInfo[] rawList = mPm.getSystemAvailableFeatures();
+ for (int i=0; i<rawList.length; i++) {
+ list.add(rawList[i]);
+ }
+
+
+ // Sort by name
+ Collections.sort(list, new Comparator<FeatureInfo>() {
+ public int compare(FeatureInfo o1, FeatureInfo o2) {
+ if (o1.name == o2.name) return 0;
+ if (o1.name == null) return -1;
+ if (o2.name == null) return 1;
+ return o1.name.compareTo(o2.name);
+ }
+ });
+
+ int count = (list != null) ? list.size() : 0;
+ for (int p = 0; p < count; p++) {
+ FeatureInfo fi = list.get(p);
+ System.out.print("feature:");
+ if (fi.name != null) System.out.println(fi.name);
+ else System.out.println("reqGlEsVersion=0x"
+ + Integer.toHexString(fi.reqGlEsVersion));
+ }
+ } catch (RemoteException e) {
+ System.err.println(e.toString());
+ System.err.println(PM_NOT_RUNNING_ERR);
+ }
+ }
+
+ /**
* Lists all of the installed instrumentation, or all for a given package
*
* pm list instrumentation [package] [-f]
@@ -778,6 +820,7 @@
System.err.println(" pm list permission-groups");
System.err.println(" pm list permissions [-g] [-f] [-d] [-u] [GROUP]");
System.err.println(" pm list instrumentation [-f] [TARGET-PACKAGE]");
+ System.err.println(" pm list features");
System.err.println(" pm path PACKAGE");
System.err.println(" pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] PATH");
System.err.println(" pm uninstall [-k] PACKAGE");
@@ -802,6 +845,8 @@
System.err.println("or only those that target a specified package. Options:");
System.err.println(" -f: see their associated file.");
System.err.println("");
+ System.err.println("The list features command prints all features of the system.");
+ System.err.println("");
System.err.println("The path command prints the path to the .apk of a package.");
System.err.println("");
System.err.println("The install command installs a package to the system. Options:");
diff --git a/core/java/android/accounts/AccountManagerService.java b/core/java/android/accounts/AccountManagerService.java
index 2d2e75f..6dea023 100644
--- a/core/java/android/accounts/AccountManagerService.java
+++ b/core/java/android/accounts/AccountManagerService.java
@@ -73,7 +73,7 @@
public class AccountManagerService
extends IAccountManager.Stub
implements RegisteredServicesCacheListener {
- private static final String GOOGLE_ACCOUNT_TYPE = "com.google.GAIA";
+ private static final String GOOGLE_ACCOUNT_TYPE = "com.google";
private static final String NO_BROADCAST_FLAG = "nobroadcast";
@@ -81,7 +81,7 @@
private static final int TIMEOUT_DELAY_MS = 1000 * 60;
private static final String DATABASE_NAME = "accounts.db";
- private static final int DATABASE_VERSION = 3;
+ private static final int DATABASE_VERSION = 4;
private final Context mContext;
@@ -102,6 +102,7 @@
private static final String ACCOUNTS_ID = "_id";
private static final String ACCOUNTS_NAME = "name";
private static final String ACCOUNTS_TYPE = "type";
+ private static final String ACCOUNTS_TYPE_COUNT = "count(type)";
private static final String ACCOUNTS_PASSWORD = "password";
private static final String TABLE_AUTHTOKENS = "authtokens";
@@ -127,6 +128,8 @@
private static final String[] ACCOUNT_NAME_TYPE_PROJECTION =
new String[]{ACCOUNTS_ID, ACCOUNTS_NAME, ACCOUNTS_TYPE};
+ private static final String[] ACCOUNT_TYPE_COUNT_PROJECTION =
+ new String[] { ACCOUNTS_TYPE, ACCOUNTS_TYPE_COUNT};
private static final Intent ACCOUNTS_CHANGED_INTENT;
private static final String COUNT_OF_MATCHING_GRANTS = ""
@@ -849,7 +852,7 @@
try {
new Session(response, accountType, expectActivityLaunch) {
public void run() throws RemoteException {
- mAuthenticator.addAccount(this, mAccountType, authTokenType, requiredFeatures,
+ mAuthenticator.addAccount(this, mAccountType, authTokenType, requiredFeatures,
options);
}
@@ -1284,7 +1287,7 @@
MessageHandler(Looper looper) {
super(looper);
}
-
+
public void handleMessage(Message msg) {
if (mBindHelper.handleMessage(msg)) {
return;
@@ -1376,6 +1379,12 @@
createAccountsDeletionTrigger(db);
oldVersion++;
}
+
+ if (oldVersion == 3) {
+ db.execSQL("UPDATE " + TABLE_ACCOUNTS + " SET " + ACCOUNTS_TYPE +
+ " = 'com.google' WHERE " + ACCOUNTS_TYPE + " == 'com.google.GAIA'");
+ oldVersion++;
+ }
}
@Override
@@ -1414,7 +1423,7 @@
filter.addAction(Intent.ACTION_DEVICE_STORAGE_OK);
context.registerReceiver(this, filter);
}
-
+
/**
* Compare the IMSI to the one stored in the login service's
* database. If they differ, erase all passwords and
@@ -1455,18 +1464,54 @@
return asBinder();
}
- protected void dump(FileDescriptor fd, PrintWriter fout, String[] args) {
- synchronized (mSessions) {
- final long now = SystemClock.elapsedRealtime();
- fout.println("AccountManagerService: " + mSessions.size() + " sessions");
- for (Session session : mSessions.values()) {
- fout.println(" " + session.toDebugString(now));
+ /**
+ * Searches array of arguments for the specified string
+ * @param args array of argument strings
+ * @param value value to search for
+ * @return true if the value is contained in the array
+ */
+ private static boolean scanArgs(String[] args, String value) {
+ if (args != null) {
+ for (String arg : args) {
+ if (value.equals(arg)) {
+ return true;
+ }
}
}
+ return false;
+ }
- fout.println();
+ protected void dump(FileDescriptor fd, PrintWriter fout, String[] args) {
+ final boolean isCheckinRequest = scanArgs(args, "--checkin") || scanArgs(args, "-c");
- mAuthenticatorCache.dump(fd, fout, args);
+ if (isCheckinRequest) {
+ // This is a checkin request. *Only* upload the account types and the count of each.
+ SQLiteDatabase db = mOpenHelper.getReadableDatabase();
+
+ Cursor cursor = db.query(TABLE_ACCOUNTS, ACCOUNT_TYPE_COUNT_PROJECTION,
+ null, null, ACCOUNTS_TYPE, null, null);
+ try {
+ while (cursor.moveToNext()) {
+ // print type,count
+ fout.println(cursor.getString(0) + "," + cursor.getString(1));
+ }
+ } finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+ } else {
+ synchronized (mSessions) {
+ final long now = SystemClock.elapsedRealtime();
+ fout.println("AccountManagerService: " + mSessions.size() + " sessions");
+ for (Session session : mSessions.values()) {
+ fout.println(" " + session.toDebugString(now));
+ }
+ }
+
+ fout.println();
+ mAuthenticatorCache.dump(fd, fout, args);
+ }
}
private void doNotification(Account account, CharSequence message, Intent intent) {
diff --git a/core/java/android/app/ApplicationContext.java b/core/java/android/app/ApplicationContext.java
index 8896015..0582e34 100644
--- a/core/java/android/app/ApplicationContext.java
+++ b/core/java/android/app/ApplicationContext.java
@@ -1686,6 +1686,15 @@
}
@Override
+ public boolean hasSystemFeature(String name) {
+ try {
+ return mPM.hasSystemFeature(name);
+ } catch (RemoteException e) {
+ throw new RuntimeException("Package manager has died", e);
+ }
+ }
+
+ @Override
public int checkPermission(String permName, String pkgName) {
try {
return mPM.checkPermission(permName, pkgName);
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index 68be2e8..1e9d5a1 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -1709,14 +1709,17 @@
public boolean dispatchKeyEventPreIme(KeyEvent event) {
if (DBG) Log.d(LOG_TAG, "onKeyPreIme(" + event + ")");
if (mSearchDialog != null && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
- if (event.getAction() == KeyEvent.ACTION_DOWN
- && event.getRepeatCount() == 0) {
- getKeyDispatcherState().startTracking(event, this);
- return true;
- } else if (event.getAction() == KeyEvent.ACTION_UP
- && !event.isCanceled() && getKeyDispatcherState().isTracking(event)) {
- mSearchDialog.onBackPressed();
- return true;
+ KeyEvent.DispatcherState state = getKeyDispatcherState();
+ if (state != null) {
+ if (event.getAction() == KeyEvent.ACTION_DOWN
+ && event.getRepeatCount() == 0) {
+ state.startTracking(event, this);
+ return true;
+ } else if (event.getAction() == KeyEvent.ACTION_UP
+ && !event.isCanceled() && state.isTracking(event)) {
+ mSearchDialog.onBackPressed();
+ return true;
+ }
}
}
return super.dispatchKeyEventPreIme(event);
diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java
index f0876f4..ae33fad 100644
--- a/core/java/android/app/SearchManager.java
+++ b/core/java/android/app/SearchManager.java
@@ -27,9 +27,9 @@
import android.os.RemoteException;
import android.os.ServiceManager;
import android.server.search.SearchableInfo;
+import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
-import android.text.TextUtils;
import java.util.List;
@@ -1591,6 +1591,12 @@
public final static String SUGGEST_NEVER_MAKE_SHORTCUT = "_-1";
/**
+ * Query parameter added to suggestion queries to limit the number of suggestions returned.
+ * This limit is only advisory and suggestion providers may chose to ignore it.
+ */
+ public final static String SUGGEST_PARAMETER_LIMIT = "limit";
+
+ /**
* If a suggestion has this value in {@link #SUGGEST_COLUMN_INTENT_ACTION},
* the search dialog will switch to a different suggestion source when the
* suggestion is clicked.
@@ -1980,6 +1986,21 @@
* @hide because SearchableInfo is not part of the API.
*/
public Cursor getSuggestions(SearchableInfo searchable, String query) {
+ return getSuggestions(searchable, query, -1);
+ }
+
+ /**
+ * Gets a cursor with search suggestions.
+ *
+ * @param searchable Information about how to get the suggestions.
+ * @param query The search text entered (so far).
+ * @param limit The query limit to pass to the suggestion provider. This is advisory,
+ * the returned cursor may contain more rows. Pass {@code -1} for no limit.
+ * @return a cursor with suggestions, or <code>null</null> the suggestion query failed.
+ *
+ * @hide because SearchableInfo is not part of the API.
+ */
+ public Cursor getSuggestions(SearchableInfo searchable, String query, int limit) {
if (searchable == null) {
return null;
}
@@ -1991,7 +2012,9 @@
Uri.Builder uriBuilder = new Uri.Builder()
.scheme(ContentResolver.SCHEME_CONTENT)
- .authority(authority);
+ .authority(authority)
+ .query("") // TODO: Remove, workaround for a bug in Uri.writeToParcel()
+ .fragment(""); // TODO: Remove, workaround for a bug in Uri.writeToParcel()
// if content path provided, insert it now
final String contentPath = searchable.getSuggestPath();
@@ -1999,7 +2022,7 @@
uriBuilder.appendEncodedPath(contentPath);
}
- // append standard suggestion query path
+ // append standard suggestion query path
uriBuilder.appendPath(SearchManager.SUGGEST_URI_PATH_QUERY);
// get the query selection, may be null
@@ -2012,10 +2035,11 @@
uriBuilder.appendPath(query);
}
- Uri uri = uriBuilder
- .query("") // TODO: Remove, workaround for a bug in Uri.writeToParcel()
- .fragment("") // TODO: Remove, workaround for a bug in Uri.writeToParcel()
- .build();
+ if (limit > 0) {
+ uriBuilder.appendQueryParameter(SUGGEST_PARAMETER_LIMIT, String.valueOf(limit));
+ }
+
+ Uri uri = uriBuilder.build();
// finally, make the query
return mContext.getContentResolver().query(uri, null, selection, selArgs, null);
diff --git a/core/java/android/app/SuggestionsAdapter.java b/core/java/android/app/SuggestionsAdapter.java
index 9234a9c..12be97c 100644
--- a/core/java/android/app/SuggestionsAdapter.java
+++ b/core/java/android/app/SuggestionsAdapter.java
@@ -58,6 +58,7 @@
private static final boolean DBG = false;
private static final String LOG_TAG = "SuggestionsAdapter";
+ private static final int QUERY_LIMIT = 50;
private SearchManager mSearchManager;
private SearchDialog mSearchDialog;
@@ -186,7 +187,7 @@
mSearchDialog.getWindow().getDecorView().post(mStartSpinnerRunnable);
}
try {
- final Cursor cursor = mSearchManager.getSuggestions(mSearchable, query);
+ final Cursor cursor = mSearchManager.getSuggestions(mSearchable, query, QUERY_LIMIT);
// trigger fill window so the spinner stays up until the results are copied over and
// closer to being ready
if (!mGlobalSearchMode && cursor != null) cursor.getCount();
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index 776c923..e3ec2cc 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -18,6 +18,7 @@
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
+import android.os.ParcelUuid;
import android.os.RemoteException;
import android.util.Log;
@@ -105,6 +106,8 @@
/**
* Activity Action: Show a system activity that requests discoverable mode.
+ * <p>This activity will also request the user to turn on Bluetooth if it
+ * is not currently enabled.
* <p>Discoverable mode is equivalent to {@link
* #SCAN_MODE_CONNECTABLE_DISCOVERABLE}. It allows remote devices to see
* this Bluetooth adapter when they perform a discovery.
@@ -120,7 +123,7 @@
* value if the user rejected discoverability.
* <p>Applications can also listen for {@link #ACTION_SCAN_MODE_CHANGED}
* for global notification whenever the scan mode changes.
- * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
*/
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
public static final String ACTION_REQUEST_DISCOVERABLE =
@@ -136,6 +139,24 @@
"android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
/**
+ * Activity Action: Show a system activity that allows the user to turn on
+ * Bluetooth.
+ * <p>This system activity will return once Bluetooth has completed turning
+ * on, or the user has decided not to turn Bluetooth on.
+ * <p>Notification of the result of this activity is posted using the
+ * {@link android.app.Activity#onActivityResult} callback. The
+ * <code>resultCode</code>
+ * will be negative if the user did not turn on Bluetooth, and non-negative
+ * if Bluetooth has been turned on.
+ * <p>Applications can also listen for {@link #ACTION_STATE_CHANGED}
+ * for global notification whenever Bluetooth is turned on or off.
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
+ */
+ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+ public static final String ACTION_REQUEST_ENABLE =
+ "android.bluetooth.adapter.action.REQUEST_ENABLE";
+
+ /**
* Broadcast Action: Indicates the Bluetooth scan mode of the local Adapter
* has changed.
* <p>Always contains the extra fields {@link #EXTRA_SCAN_MODE} and {@link
@@ -412,10 +433,10 @@
* Set the Bluetooth scan mode of the local Bluetooth adapter.
* <p>The Bluetooth scan mode determines if the local adapter is
* connectable and/or discoverable from remote Bluetooth devices.
- * <p>For privacy reasons, it is recommended to limit the duration of time
- * that the local adapter remains in a discoverable scan mode. For example,
- * 2 minutes is a generous time to allow a remote Bluetooth device to
- * initiate and complete its discovery process.
+ * <p>For privacy reasons, discoverable mode is automatically turned off
+ * after <code>duration</code> seconds. For example, 120 seconds should be
+ * enough for a remote device to initiate and complete its discovery
+ * process.
* <p>Valid scan mode values are:
* {@link #SCAN_MODE_NONE},
* {@link #SCAN_MODE_CONNECTABLE},
@@ -427,17 +448,24 @@
* </code>instead.
*
* @param mode valid scan mode
+ * @param duration time in seconds to apply scan mode, only used for
+ * {@link #SCAN_MODE_CONNECTABLE_DISCOVERABLE}
* @return true if the scan mode was set, false otherwise
* @hide
*/
- public boolean setScanMode(int mode) {
+ public boolean setScanMode(int mode, int duration) {
try {
- return mService.setScanMode(mode);
+ return mService.setScanMode(mode, duration);
} catch (RemoteException e) {Log.e(TAG, "", e);}
return false;
}
/** @hide */
+ public boolean setScanMode(int mode) {
+ return setScanMode(mode, 120);
+ }
+
+ /** @hide */
public int getDiscoverableTimeout() {
try {
return mService.getDiscoverableTimeout();
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index c714f69..d5393ed 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -22,6 +22,7 @@
import android.os.IBinder;
import android.os.Parcel;
import android.os.Parcelable;
+import android.os.ParcelUuid;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.Log;
@@ -228,9 +229,9 @@
/**
* Broadcast Action: This intent is used to broadcast the {@link UUID}
- * wrapped as a {@link ParcelUuid} of the remote device after it has been
- * fetched. This intent is sent only when the UUIDs of the remote device
- * are requested to be fetched using Service Discovery Protocol
+ * wrapped as a {@link android.os.ParcelUuid} of the remote device after it
+ * has been fetched. This intent is sent only when the UUIDs of the remote
+ * device are requested to be fetched using Service Discovery Protocol
* <p> Always contains the extra field {@link #EXTRA_DEVICE}
* <p> Always contains the extra filed {@link #EXTRA_UUID}
* <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive.
@@ -309,8 +310,8 @@
/**
* Used as an extra field in {@link #ACTION_UUID} intents,
- * Contains the {@link ParcelUuid}s of the remote device which is a parcelable
- * version of {@link UUID}.
+ * Contains the {@link android.os.ParcelUuid}s of the remote device which
+ * is a parcelable version of {@link UUID}.
* @hide
*/
public static final String EXTRA_UUID = "android.bluetooth.device.extra.UUID";
diff --git a/core/java/android/bluetooth/BluetoothUuid.java b/core/java/android/bluetooth/BluetoothUuid.java
index 24ad06a..da0564a 100644
--- a/core/java/android/bluetooth/BluetoothUuid.java
+++ b/core/java/android/bluetooth/BluetoothUuid.java
@@ -16,6 +16,8 @@
package android.bluetooth;
+import android.os.ParcelUuid;
+
import java.util.Arrays;
import java.util.HashSet;
diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl
index 203a61d..2f77ba4 100644
--- a/core/java/android/bluetooth/IBluetooth.aidl
+++ b/core/java/android/bluetooth/IBluetooth.aidl
@@ -16,7 +16,7 @@
package android.bluetooth;
-import android.bluetooth.ParcelUuid;
+import android.os.ParcelUuid;
/**
* System private API for talking with the Bluetooth service.
@@ -35,7 +35,7 @@
boolean setName(in String name);
int getScanMode();
- boolean setScanMode(int mode);
+ boolean setScanMode(int mode, int duration);
int getDiscoverableTimeout();
boolean setDiscoverableTimeout(int timeout);
diff --git a/core/java/android/content/AbstractSyncableContentProvider.java b/core/java/android/content/AbstractSyncableContentProvider.java
index 808f30c..fc3acc5 100644
--- a/core/java/android/content/AbstractSyncableContentProvider.java
+++ b/core/java/android/content/AbstractSyncableContentProvider.java
@@ -170,7 +170,7 @@
// AbstractGDataSyncAdapter, which will put acore into a crash loop
ArrayList<Account> gaiaAccounts = new ArrayList<Account>();
for (Account acct: accounts) {
- if (acct.type.equals("com.google.GAIA")) {
+ if (acct.type.equals("com.google")) {
gaiaAccounts.add(acct);
}
}
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java
index 307899a..c9edc41c 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -903,7 +903,7 @@
if (extras != null) {
String accountName = extras.getString(SYNC_EXTRAS_ACCOUNT);
if (!TextUtils.isEmpty(accountName)) {
- account = new Account(accountName, "com.google.GAIA");
+ account = new Account(accountName, "com.google");
}
extras.remove(SYNC_EXTRAS_ACCOUNT);
}
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index 1c61324d..6181a07 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -2092,6 +2092,7 @@
clickIntent.setClassName("com.android.providers.subscribedfeeds",
"com.android.settings.SyncActivityTooManyDeletes");
clickIntent.putExtra("account", account);
+ clickIntent.putExtra("authority", authority);
clickIntent.putExtra("provider", authorityName.toString());
clickIntent.putExtra("numDeletes", numDeletes);
diff --git a/core/java/android/content/SyncStorageEngine.java b/core/java/android/content/SyncStorageEngine.java
index fbdd5ae..11d984d 100644
--- a/core/java/android/content/SyncStorageEngine.java
+++ b/core/java/android/content/SyncStorageEngine.java
@@ -1104,7 +1104,7 @@
String accountType = parser.getAttributeValue(
null, "type");
if (accountType == null) {
- accountType = "com.google.GAIA";
+ accountType = "com.google";
}
String authorityName = parser.getAttributeValue(
null, "authority");
@@ -1272,7 +1272,7 @@
String accountType = hasType
? c.getString(c.getColumnIndex("account_type")) : null;
if (accountType == null) {
- accountType = "com.google.GAIA";
+ accountType = "com.google";
}
String authorityName = c.getString(c.getColumnIndex("authority"));
AuthorityInfo authority = this.getOrCreateAuthorityLocked(
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index c322951..fc6538f 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -283,6 +283,8 @@
*/
FeatureInfo[] getSystemAvailableFeatures();
+ boolean hasSystemFeature(String name);
+
void enterSafeMode();
boolean isSafeMode();
void systemReady();
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 825eb85..cd48dcb 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -995,11 +995,19 @@
*
* @return An array of FeatureInfo classes describing the features
* that are available on the system, or null if there are none(!!).
- *
*/
public abstract FeatureInfo[] getSystemAvailableFeatures();
/**
+ * Check whether the given feature name is one of the available
+ * features as returned by {@link #getSystemAvailableFeatures()}.
+ *
+ * @return Returns true if the devices supports the feature, else
+ * false.
+ */
+ public abstract boolean hasSystemFeature(String name);
+
+ /**
* Determine the best action to perform for a given Intent. This is how
* {@link Intent#resolveActivity} finds an activity if a class has not
* been explicitly specified.
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 27c65f0..3e117d4 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -195,7 +195,15 @@
if ((flags&PackageManager.GET_ACTIVITIES) != 0) {
int N = p.activities.size();
if (N > 0) {
- pi.activities = new ActivityInfo[N];
+ if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
+ pi.activities = new ActivityInfo[N];
+ } else {
+ int num = 0;
+ for (int i=0; i<N; i++) {
+ if (p.activities.get(i).info.enabled) num++;
+ }
+ pi.activities = new ActivityInfo[num];
+ }
for (int i=0; i<N; i++) {
final Activity activity = p.activities.get(i);
if (activity.info.enabled
@@ -208,7 +216,15 @@
if ((flags&PackageManager.GET_RECEIVERS) != 0) {
int N = p.receivers.size();
if (N > 0) {
- pi.receivers = new ActivityInfo[N];
+ if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
+ pi.receivers = new ActivityInfo[N];
+ } else {
+ int num = 0;
+ for (int i=0; i<N; i++) {
+ if (p.receivers.get(i).info.enabled) num++;
+ }
+ pi.receivers = new ActivityInfo[num];
+ }
for (int i=0; i<N; i++) {
final Activity activity = p.receivers.get(i);
if (activity.info.enabled
@@ -221,7 +237,15 @@
if ((flags&PackageManager.GET_SERVICES) != 0) {
int N = p.services.size();
if (N > 0) {
- pi.services = new ServiceInfo[N];
+ if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
+ pi.services = new ServiceInfo[N];
+ } else {
+ int num = 0;
+ for (int i=0; i<N; i++) {
+ if (p.services.get(i).info.enabled) num++;
+ }
+ pi.services = new ServiceInfo[num];
+ }
for (int i=0; i<N; i++) {
final Service service = p.services.get(i);
if (service.info.enabled
@@ -234,7 +258,15 @@
if ((flags&PackageManager.GET_PROVIDERS) != 0) {
int N = p.providers.size();
if (N > 0) {
- pi.providers = new ProviderInfo[N];
+ if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
+ pi.providers = new ProviderInfo[N];
+ } else {
+ int num = 0;
+ for (int i=0; i<N; i++) {
+ if (p.providers.get(i).info.enabled) num++;
+ }
+ pi.providers = new ProviderInfo[num];
+ }
for (int i=0; i<N; i++) {
final Provider provider = p.providers.get(i);
if (provider.info.enabled
diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java
index e425f3a..f621483 100644
--- a/core/java/android/database/sqlite/SQLiteDatabase.java
+++ b/core/java/android/database/sqlite/SQLiteDatabase.java
@@ -54,7 +54,8 @@
*/
public class SQLiteDatabase extends SQLiteClosable {
private static final String TAG = "Database";
- private static final int DB_OPERATION_EVENT = 52000;
+ private static final int EVENT_DB_OPERATION = 52000;
+ private static final int EVENT_DB_CORRUPT = 75004;
/**
* Algorithms used in ON CONFLICT clause
@@ -739,6 +740,7 @@
// Try to recover from this, if we can.
// TODO: should we do this for other open failures?
Log.e(TAG, "Deleting and re-creating corrupt database " + path, e);
+ EventLog.writeEvent(EVENT_DB_CORRUPT, path);
new File(path).delete();
return new SQLiteDatabase(path, factory, flags);
}
@@ -1732,7 +1734,7 @@
}
/* package */ void logTimeStat(boolean read, long begin, long end) {
- EventLog.writeEvent(DB_OPERATION_EVENT, mPath, read ? 0 : 1, end - begin);
+ EventLog.writeEvent(EVENT_DB_OPERATION, mPath, read ? 0 : 1, end - begin);
}
/**
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index e47ea84..11c8b6f 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -368,6 +368,9 @@
* uses auto-focus with the
* <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a>
* manifest element.</p>
+ * <p>If the current flash mode is not
+ * {@link android.hardware.Camera.Parameters#FLASH_MODE_OFF}, flash may be
+ * fired during auto-focus depending on the driver.<p>
*
* @param cb the callback to run
*/
@@ -466,6 +469,8 @@
/**
* Handles the zoom callback.
+ *
+ * @hide
*/
public interface ZoomCallback
{
@@ -484,6 +489,7 @@
* Registers a callback to be invoked when the zoom
* level is updated by the camera driver.
* @param cb the callback to run
+ * @hide
*/
public final void setZoomCallback(ZoomCallback cb)
{
@@ -637,12 +643,13 @@
*/
public static final String FLASH_MODE_OFF = "off";
/**
- * Flash will be fired automatically when required. The timing is
- * decided by camera driver.
+ * Flash will be fired automatically when required. The flash may be fired
+ * during preview, auto-focus, or snapshot depending on the driver.
*/
public static final String FLASH_MODE_AUTO = "auto";
/**
- * Flash will always be fired. The timing is decided by camera driver.
+ * Flash will always be fired during snapshot. The flash may also be
+ * fired during preview or auto-focus depending on the driver.
*/
public static final String FLASH_MODE_ON = "on";
/**
@@ -650,9 +657,10 @@
*/
public static final String FLASH_MODE_RED_EYE = "red-eye";
/**
- * Constant emission of light. This can be used for video recording.
+ * Constant emission of light during preview, auto-focus and snapshot.
+ * This can also be used for video recording.
*/
- public static final String FLASH_MODE_VIDEO_LIGHT = "video-light";
+ public static final String FLASH_MODE_TORCH = "torch";
// Values for scene mode settings.
public static final String SCENE_MODE_AUTO = "auto";
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index b4778fe..b9f78a1 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -146,6 +146,9 @@
* <li> The {@link android.app.Activity} class will now execute back
* key presses on the key up instead of key down, to be able to detect
* canceled presses from virtual keys.
+ * <li> The {@link android.widget.TabWidget} class will use a new color scheme
+ * for tabs. In the new scheme, the foreground tab has a medium gray background
+ * the background tabs have a dark gray background.
* </ul>
*/
public static final int ECLAIR = CUR_DEVELOPMENT;
diff --git a/core/java/android/bluetooth/ParcelUuid.aidl b/core/java/android/os/ParcelUuid.aidl
similarity index 95%
rename from core/java/android/bluetooth/ParcelUuid.aidl
rename to core/java/android/os/ParcelUuid.aidl
index 70bcc4b..f7e080a 100644
--- a/core/java/android/bluetooth/ParcelUuid.aidl
+++ b/core/java/android/os/ParcelUuid.aidl
@@ -14,6 +14,6 @@
** limitations under the License.
*/
-package android.bluetooth;
+package android.os;
parcelable ParcelUuid;
diff --git a/core/java/android/bluetooth/ParcelUuid.java b/core/java/android/os/ParcelUuid.java
similarity index 97%
rename from core/java/android/bluetooth/ParcelUuid.java
rename to core/java/android/os/ParcelUuid.java
index 27166a0..88fcfc5 100644
--- a/core/java/android/bluetooth/ParcelUuid.java
+++ b/core/java/android/os/ParcelUuid.java
@@ -14,10 +14,7 @@
* limitations under the License.
*/
-package android.bluetooth;
-
-import android.os.Parcel;
-import android.os.Parcelable;
+package android.os;
import java.util.UUID;
diff --git a/core/java/android/pim/vcard/ContactStruct.java b/core/java/android/pim/vcard/ContactStruct.java
index 35224c7..e87c796 100644
--- a/core/java/android/pim/vcard/ContactStruct.java
+++ b/core/java/android/pim/vcard/ContactStruct.java
@@ -1051,8 +1051,8 @@
List<String> nameList;
switch (VCardConfig.getNameOrderType(mVCardType)) {
case VCardConfig.NAME_ORDER_JAPANESE:
- if (VCardUtils.containsOnlyAscii(mFamilyName) &&
- VCardUtils.containsOnlyAscii(mGivenName)) {
+ if (VCardUtils.containsOnlyPrintableAscii(mFamilyName) &&
+ VCardUtils.containsOnlyPrintableAscii(mGivenName)) {
nameList = Arrays.asList(mPrefix, mGivenName, mMiddleName, mFamilyName, mSuffix);
} else {
nameList = Arrays.asList(mPrefix, mFamilyName, mMiddleName, mGivenName, mSuffix);
@@ -1123,7 +1123,7 @@
}
// From GoogleSource.java in Contacts app.
- private static final String ACCOUNT_TYPE_GOOGLE = "com.google.GAIA";
+ private static final String ACCOUNT_TYPE_GOOGLE = "com.google";
private static final String GOOGLE_MY_CONTACTS_GROUP = "System Group: My Contacts";
public void pushIntoContentResolver(ContentResolver resolver) {
diff --git a/core/java/android/pim/vcard/VCardComposer.java b/core/java/android/pim/vcard/VCardComposer.java
index e01bd3c..b0376c4 100644
--- a/core/java/android/pim/vcard/VCardComposer.java
+++ b/core/java/android/pim/vcard/VCardComposer.java
@@ -23,6 +23,7 @@
import android.content.Entity.NamedContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
+import android.net.Uri;
import android.os.RemoteException;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
@@ -55,8 +56,10 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* <p>
@@ -81,7 +84,7 @@
public class VCardComposer {
private static final String LOG_TAG = "vcard.VCardComposer";
- private final static String DEFAULT_EMAIL_TYPE = Constants.ATTR_TYPE_INTERNET;
+ private static final String DEFAULT_EMAIL_TYPE = Constants.ATTR_TYPE_INTERNET;
public static final String FAILURE_REASON_FAILED_TO_GET_DATABASE_INFO =
"Failed to get database information";
@@ -94,6 +97,14 @@
public static final String NO_ERROR = "No error";
+ private static final Uri sDataRequestUri;
+
+ static {
+ Uri.Builder builder = RawContacts.CONTENT_URI.buildUpon();
+ builder.appendQueryParameter(Data.FOR_EXPORT_ONLY, "1");
+ sDataRequestUri = builder.build();
+ }
+
public static interface OneEntryHandler {
public boolean onInit(Context context);
@@ -116,7 +127,7 @@
@SuppressWarnings("hiding")
private static final String LOG_TAG = "vcard.VCardComposer.HandlerForOutputStream";
- private OutputStream mOutputStream; // mWriter will close this.
+ final private OutputStream mOutputStream; // mWriter will close this.
private Writer mWriter;
private boolean mOnTerminateIsCalled = false;
@@ -225,9 +236,8 @@
private static final String VCARD_PROPERTY_X_PHONETIC_LAST_NAME = "X-PHONETIC-LAST-NAME";
// Android specific properties
- private static final String VCARD_PROPERTY_X_PHONETIC_NAME = "X-PHONETIC-NAME";
+ // TODO: ues extra MIME-TYPE instead of adding this kind of inflexible fields
private static final String VCARD_PROPERTY_X_NICKNAME = "X-NICKNAME";
- // TODO: add properties like X-LATITUDE
// Property for call log entry
private static final String VCARD_PROPERTY_X_TIMESTAMP = "X-IRMC-CALL-DATETIME";
@@ -301,8 +311,8 @@
private boolean mIsCallLogComposer = false;
- private static final String[] sRawContactsProjection = new String[] {
- RawContacts._ID,
+ private static final String[] sContactsProjection = new String[] {
+ Contacts._ID,
};
/** The projection to use when querying the call log table */
@@ -387,7 +397,7 @@
}
boolean needCharset = false;
- if (!(VCardUtils.containsOnlyAscii(phoneName))) {
+ if (!(VCardUtils.containsOnlyPrintableAscii(phoneName))) {
needCharset = true;
}
appendVCardLine(builder, VCARD_PROPERTY_FULL_NAME, phoneName, needCharset, false);
@@ -442,7 +452,7 @@
mCursor = mContentResolver.query(CallLog.Calls.CONTENT_URI, sCallLogProjection,
selection, selectionArgs, null);
} else {
- mCursor = mContentResolver.query(RawContacts.CONTENT_URI, sRawContactsProjection,
+ mCursor = mContentResolver.query(Contacts.CONTENT_URI, sContactsProjection,
selection, selectionArgs, null);
}
@@ -451,7 +461,7 @@
return false;
}
- if (mCursor.getCount() == 0 || !mCursor.moveToFirst()) {
+ if (getCount() == 0 || !mCursor.moveToFirst()) {
try {
mCursor.close();
} catch (SQLiteException e) {
@@ -587,7 +597,7 @@
if (TextUtils.isEmpty(name)) {
name = mCursor.getString(NUMBER_COLUMN_INDEX);
}
- final boolean needCharset = !(VCardUtils.containsOnlyAscii(name));
+ final boolean needCharset = !(VCardUtils.containsOnlyPrintableAscii(name));
appendVCardLine(builder, VCARD_PROPERTY_FULL_NAME, name, needCharset, false);
appendVCardLine(builder, VCARD_PROPERTY_NAME, name, needCharset, false);
@@ -604,23 +614,19 @@
}
private String createOneEntryInternal(final String contactId) {
- final StringBuilder builder = new StringBuilder();
- appendVCardLine(builder, VCARD_PROPERTY_BEGIN, VCARD_DATA_VCARD);
- if (mIsV30) {
- appendVCardLine(builder, VCARD_PROPERTY_VERSION, Constants.VERSION_V30);
- } else {
- appendVCardLine(builder, VCARD_PROPERTY_VERSION, Constants.VERSION_V21);
- }
-
final Map<String, List<ContentValues>> contentValuesListMap =
- new HashMap<String, List<ContentValues>>();
-
- final String selection = Data.RAW_CONTACT_ID + "=?";
+ new HashMap<String, List<ContentValues>>();
+ final String selection = Data.CONTACT_ID + "=?";
final String[] selectionArgs = new String[] {contactId};
+ // The resolver may return the entity iterator with no data. It is possiible.
+ // e.g. If all the data in the contact of the given contact id are not exportable ones,
+ // they are hidden from the view of this method, though contact id itself exists.
+ boolean dataExists = false;
EntityIterator entityIterator = null;
try {
entityIterator = mContentResolver.queryEntities(
- RawContacts.CONTENT_URI, selection, selectionArgs, null);
+ sDataRequestUri, selection, selectionArgs, null);
+ dataExists = entityIterator.hasNext();
while (entityIterator.hasNext()) {
Entity entity = entityIterator.next();
for (NamedContentValues namedContentValues : entity
@@ -648,7 +654,18 @@
}
}
- // TODO: consolidate order? (low priority)
+ if (!dataExists) {
+ return "";
+ }
+
+ final StringBuilder builder = new StringBuilder();
+ appendVCardLine(builder, VCARD_PROPERTY_BEGIN, VCARD_DATA_VCARD);
+ if (mIsV30) {
+ appendVCardLine(builder, VCARD_PROPERTY_VERSION, Constants.VERSION_V30);
+ } else {
+ appendVCardLine(builder, VCARD_PROPERTY_VERSION, Constants.VERSION_V21);
+ }
+
appendStructuredNames(builder, contentValuesListMap);
appendNickNames(builder, contentValuesListMap);
appendPhones(builder, contentValuesListMap);
@@ -660,7 +677,7 @@
appendOrganizations(builder, contentValuesListMap);
appendPhotos(builder, contentValuesListMap);
appendNotes(builder, contentValuesListMap);
- // TODO: GroupMembership... What?
+ // TODO: GroupMembership
if (mIsDoCoMo) {
appendVCardLine(builder, VCARD_PROPERTY_X_CLASS, VCARD_DATA_PUBLIC);
@@ -724,213 +741,220 @@
final Map<String, List<ContentValues>> contentValuesListMap) {
final List<ContentValues> contentValuesList = contentValuesListMap
.get(StructuredName.CONTENT_ITEM_TYPE);
- if (contentValuesList != null) {
+ if (contentValuesList != null && contentValuesList.size() > 0) {
appendStructuredNamesInternal(builder, contentValuesList);
} else if (mIsDoCoMo) {
appendVCardLine(builder, VCARD_PROPERTY_NAME, "");
+ } else if (mIsV30) {
+ // vCard 3.0 requires "N" and "FN" properties.
+ appendVCardLine(builder, VCARD_PROPERTY_NAME, "");
+ appendVCardLine(builder, VCARD_PROPERTY_FULL_NAME, "");
}
}
private void appendStructuredNamesInternal(final StringBuilder builder,
final List<ContentValues> contentValuesList) {
+ // For safety, we'll emit just one value around StructuredName, as external importers
+ // may get confused with multiple "N", "FN", etc. properties, though it is valid in
+ // vCard spec.
+ ContentValues primaryContentValues = null;
for (ContentValues contentValues : contentValuesList) {
- final String familyName = contentValues
- .getAsString(StructuredName.FAMILY_NAME);
- final String middleName = contentValues
- .getAsString(StructuredName.MIDDLE_NAME);
- final String givenName = contentValues
- .getAsString(StructuredName.GIVEN_NAME);
- final String prefix = contentValues
- .getAsString(StructuredName.PREFIX);
- final String suffix = contentValues
- .getAsString(StructuredName.SUFFIX);
- final String displayName = contentValues
- .getAsString(StructuredName.DISPLAY_NAME);
+ Integer isSuperPrimary = contentValues.getAsInteger(StructuredName.IS_SUPER_PRIMARY);
+ if (isSuperPrimary != null && isSuperPrimary != 0) {
+ // We choose "super primary" ContentValues.
+ primaryContentValues = contentValues;
+ break;
+ } else if (primaryContentValues == null && contentValues != null) {
+ // We choose the first ContentValues if "super primary" ContentValues does not exist.
+ primaryContentValues = contentValues;
+ }
+ }
- // For now, some primary element is not encoded into Quoted-Printable, which is not
- // valid in vCard spec strictly. In the future, we may have to have some flag to
- // enable composer to encode these primary field into Quoted-Printable.
- if (!TextUtils.isEmpty(familyName) || !TextUtils.isEmpty(givenName)) {
- final String encodedFamily = escapeCharacters(familyName);
- final String encodedGiven = escapeCharacters(givenName);
- final String encodedMiddle = escapeCharacters(middleName);
- final String encodedPrefix = escapeCharacters(prefix);
- final String encodedSuffix = escapeCharacters(suffix);
+ if (primaryContentValues == null) {
+ Log.e(LOG_TAG, "All ContentValues given from database is empty.");
+ primaryContentValues = new ContentValues();
+ }
- // N property. This order is specified by vCard spec and does not depend on countries.
- builder.append(VCARD_PROPERTY_NAME);
- if (!(VCardUtils.containsOnlyAscii(familyName) &&
- VCardUtils.containsOnlyAscii(givenName) &&
- VCardUtils.containsOnlyAscii(middleName) &&
- VCardUtils.containsOnlyAscii(prefix) &&
- VCardUtils.containsOnlyAscii(suffix))) {
- builder.append(VCARD_ATTR_SEPARATOR);
- builder.append(mVCardAttributeCharset);
- }
+ final String familyName = primaryContentValues
+ .getAsString(StructuredName.FAMILY_NAME);
+ final String middleName = primaryContentValues
+ .getAsString(StructuredName.MIDDLE_NAME);
+ final String givenName = primaryContentValues
+ .getAsString(StructuredName.GIVEN_NAME);
+ final String prefix = primaryContentValues
+ .getAsString(StructuredName.PREFIX);
+ final String suffix = primaryContentValues
+ .getAsString(StructuredName.SUFFIX);
+ final String displayName = primaryContentValues
+ .getAsString(StructuredName.DISPLAY_NAME);
- builder.append(VCARD_DATA_SEPARATOR);
- builder.append(encodedFamily);
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(encodedGiven);
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(encodedMiddle);
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(encodedPrefix);
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(encodedSuffix);
- builder.append(VCARD_COL_SEPARATOR);
+ // For now, some primary element is not encoded into Quoted-Printable, which is not
+ // valid in vCard spec strictly. In the future, we may have to have some flag to
+ // enable composer to encode these primary field into Quoted-Printable.
+ if (!TextUtils.isEmpty(familyName) || !TextUtils.isEmpty(givenName)) {
+ final String encodedFamily = escapeCharacters(familyName);
+ final String encodedGiven = escapeCharacters(givenName);
+ final String encodedMiddle = escapeCharacters(middleName);
+ final String encodedPrefix = escapeCharacters(prefix);
+ final String encodedSuffix = escapeCharacters(suffix);
- final String encodedFullname = VCardUtils.constructNameFromElements(
- VCardConfig.getNameOrderType(mVCardType),
- encodedFamily, encodedMiddle, encodedGiven, encodedPrefix, encodedSuffix);
-
- // FN property
- builder.append(VCARD_PROPERTY_FULL_NAME);
- if (!VCardUtils.containsOnlyAscii(encodedFullname)) {
- builder.append(VCARD_ATTR_SEPARATOR);
- builder.append(mVCardAttributeCharset);
- }
- builder.append(VCARD_DATA_SEPARATOR);
- builder.append(encodedFullname);
- builder.append(VCARD_COL_SEPARATOR);
- } else if (!TextUtils.isEmpty(displayName)) {
- builder.append(VCARD_PROPERTY_NAME);
+ // N property. This order is specified by vCard spec and does not depend on countries.
+ builder.append(VCARD_PROPERTY_NAME);
+ if (!(VCardUtils.containsOnlyPrintableAscii(familyName) &&
+ VCardUtils.containsOnlyPrintableAscii(givenName) &&
+ VCardUtils.containsOnlyPrintableAscii(middleName) &&
+ VCardUtils.containsOnlyPrintableAscii(prefix) &&
+ VCardUtils.containsOnlyPrintableAscii(suffix))) {
builder.append(VCARD_ATTR_SEPARATOR);
builder.append(mVCardAttributeCharset);
- builder.append(VCARD_DATA_SEPARATOR);
- builder.append(escapeCharacters(displayName));
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(VCARD_COL_SEPARATOR);
- } else if (mIsDoCoMo) {
- appendVCardLine(builder, VCARD_PROPERTY_NAME, "");
}
- String phoneticFamilyName = contentValues
- .getAsString(StructuredName.PHONETIC_FAMILY_NAME);
- String phoneticMiddleName = contentValues
- .getAsString(StructuredName.PHONETIC_MIDDLE_NAME);
- String phoneticGivenName = contentValues
- .getAsString(StructuredName.PHONETIC_GIVEN_NAME);
- if (!(TextUtils.isEmpty(phoneticFamilyName)
- && TextUtils.isEmpty(phoneticMiddleName) && TextUtils
- .isEmpty(phoneticGivenName))) { // if not empty
- if (mIsJapaneseMobilePhone) {
- phoneticFamilyName = VCardUtils
- .toHalfWidthString(phoneticFamilyName);
- phoneticMiddleName = VCardUtils
- .toHalfWidthString(phoneticMiddleName);
- phoneticGivenName = VCardUtils
- .toHalfWidthString(phoneticGivenName);
- }
+ builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(encodedFamily);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(encodedGiven);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(encodedMiddle);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(encodedPrefix);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(encodedSuffix);
+ builder.append(VCARD_COL_SEPARATOR);
- if (mIsV30) {
- final String sortString = VCardUtils
- .constructNameFromElements(mVCardType,
- phoneticFamilyName, phoneticMiddleName,
- phoneticGivenName);
- builder.append(VCARD_PROPERTY_SORT_STRING);
+ final String encodedFullname = VCardUtils.constructNameFromElements(
+ VCardConfig.getNameOrderType(mVCardType),
+ encodedFamily, encodedMiddle, encodedGiven, encodedPrefix, encodedSuffix);
- if (!VCardUtils.containsOnlyAscii(sortString)) {
- // Strictly, adding charset information is NOT valid in
- // VCard 3.0,
- // but we'll add this info since parser side may be able to
- // use the charset via
- // this attribute field.
- //
- // e.g. Japanese mobile phones use Shift_Jis while RFC 2426
- // recommends
- // UTF-8. By adding this field, parsers may be able to know
- // this text
- // is NOT UTF-8 but Shift_Jis.
- builder.append(VCARD_ATTR_SEPARATOR);
- builder.append(mVCardAttributeCharset);
- }
+ // FN property
+ builder.append(VCARD_PROPERTY_FULL_NAME);
+ if (!VCardUtils.containsOnlyPrintableAscii(encodedFullname)) {
+ builder.append(VCARD_ATTR_SEPARATOR);
+ builder.append(mVCardAttributeCharset);
+ }
+ builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(encodedFullname);
+ builder.append(VCARD_COL_SEPARATOR);
+ } else if (!TextUtils.isEmpty(displayName)) {
+ builder.append(VCARD_PROPERTY_NAME);
+ builder.append(VCARD_ATTR_SEPARATOR);
+ builder.append(mVCardAttributeCharset);
+ builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(escapeCharacters(displayName));
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(VCARD_COL_SEPARATOR);
+ } else if (mIsDoCoMo) {
+ appendVCardLine(builder, VCARD_PROPERTY_NAME, "");
+ } else if (mIsV30) {
+ appendVCardLine(builder, VCARD_PROPERTY_NAME, "");
+ appendVCardLine(builder, VCARD_PROPERTY_FULL_NAME, "");
+ }
- builder.append(VCARD_DATA_SEPARATOR);
- builder.append(sortString);
- builder.append(VCARD_COL_SEPARATOR);
- } else {
- // Note: There is no appropriate property for expressing
- // phonetic name in
- // VCard 2.1, while there is in VCard 3.0 (SORT-STRING).
- // We chose to use DoCoMo's way since it is supported by a
- // lot of
- // Japanese mobile phones.
+ String phoneticFamilyName = primaryContentValues
+ .getAsString(StructuredName.PHONETIC_FAMILY_NAME);
+ String phoneticMiddleName = primaryContentValues
+ .getAsString(StructuredName.PHONETIC_MIDDLE_NAME);
+ String phoneticGivenName = primaryContentValues
+ .getAsString(StructuredName.PHONETIC_GIVEN_NAME);
+ if (!(TextUtils.isEmpty(phoneticFamilyName)
+ && TextUtils.isEmpty(phoneticMiddleName) &&
+ TextUtils.isEmpty(phoneticGivenName))) { // if not empty
+ if (mIsJapaneseMobilePhone) {
+ phoneticFamilyName = VCardUtils
+ .toHalfWidthString(phoneticFamilyName);
+ phoneticMiddleName = VCardUtils
+ .toHalfWidthString(phoneticMiddleName);
+ phoneticGivenName = VCardUtils
+ .toHalfWidthString(phoneticGivenName);
+ }
+
+ if (mIsV30) {
+ final String sortString = VCardUtils
+ .constructNameFromElements(mVCardType,
+ phoneticFamilyName, phoneticMiddleName,
+ phoneticGivenName);
+ builder.append(VCARD_PROPERTY_SORT_STRING);
+
+ if (!VCardUtils.containsOnlyPrintableAscii(sortString)) {
+ // Strictly, adding charset information is NOT valid in
+ // VCard 3.0,
+ // but we'll add this info since parser side may be able to
+ // use the charset via
+ // this attribute field.
//
- // TODO: should use Quoted-Pritable?
- builder.append(VCARD_PROPERTY_SOUND);
+ // e.g. Japanese mobile phones use Shift_Jis while RFC 2426
+ // recommends
+ // UTF-8. By adding this field, parsers may be able to know
+ // this text
+ // is NOT UTF-8 but Shift_Jis.
builder.append(VCARD_ATTR_SEPARATOR);
- builder.append(Constants.ATTR_TYPE_X_IRMC_N);
- builder.append(VCARD_ATTR_SEPARATOR);
-
- if (!(VCardUtils.containsOnlyAscii(phoneticFamilyName) &&
- VCardUtils.containsOnlyAscii(phoneticMiddleName) &&
- VCardUtils.containsOnlyAscii(phoneticGivenName))) {
- builder.append(mVCardAttributeCharset);
- builder.append(VCARD_DATA_SEPARATOR);
- }
-
- builder.append(escapeCharacters(phoneticFamilyName));
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(escapeCharacters(phoneticMiddleName));
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(escapeCharacters(phoneticGivenName));
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(VCARD_ITEM_SEPARATOR);
- builder.append(VCARD_COL_SEPARATOR);
-
- if (mUsesAndroidProperty) {
- final String phoneticName = VCardUtils
- .constructNameFromElements(mVCardType,
- phoneticFamilyName, phoneticMiddleName,
- phoneticGivenName);
- builder.append(VCARD_PROPERTY_X_PHONETIC_NAME);
-
- if (!VCardUtils.containsOnlyAscii(phoneticName)) {
- builder.append(VCARD_ATTR_SEPARATOR);
- builder.append(mVCardAttributeCharset);
- }
-
- builder.append(VCARD_DATA_SEPARATOR);
- // TODO: may need to make the text quoted-printable.
- builder.append(phoneticName);
- builder.append(VCARD_COL_SEPARATOR);
- }
+ builder.append(mVCardAttributeCharset);
}
- } else if (mIsDoCoMo) {
+
+ builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(sortString);
+ builder.append(VCARD_COL_SEPARATOR);
+ } else {
+ // Note: There is no appropriate property for expressing
+ // phonetic name in
+ // VCard 2.1, while there is in VCard 3.0 (SORT-STRING).
+ // We chose to use DoCoMo's way since it is supported by a
+ // lot of Japanese mobile phones.
+ //
+ // TODO: should use Quoted-Pritable?
builder.append(VCARD_PROPERTY_SOUND);
builder.append(VCARD_ATTR_SEPARATOR);
builder.append(Constants.ATTR_TYPE_X_IRMC_N);
- builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(VCARD_ATTR_SEPARATOR);
+
+ if (!(VCardUtils.containsOnlyPrintableAscii(phoneticFamilyName) &&
+ VCardUtils.containsOnlyPrintableAscii(phoneticMiddleName) &&
+ VCardUtils.containsOnlyPrintableAscii(phoneticGivenName))) {
+ builder.append(mVCardAttributeCharset);
+ builder.append(VCARD_DATA_SEPARATOR);
+ }
+
+ builder.append(escapeCharacters(phoneticFamilyName));
builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(escapeCharacters(phoneticMiddleName));
builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(escapeCharacters(phoneticGivenName));
builder.append(VCARD_ITEM_SEPARATOR);
builder.append(VCARD_ITEM_SEPARATOR);
builder.append(VCARD_COL_SEPARATOR);
}
+ } else if (mIsDoCoMo) {
+ builder.append(VCARD_PROPERTY_SOUND);
+ builder.append(VCARD_ATTR_SEPARATOR);
+ builder.append(Constants.ATTR_TYPE_X_IRMC_N);
+ builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(VCARD_ITEM_SEPARATOR);
+ builder.append(VCARD_COL_SEPARATOR);
+ }
- if (mUsesDefactProperty) {
- if (!TextUtils.isEmpty(phoneticGivenName)) {
- builder.append(VCARD_PROPERTY_X_PHONETIC_FIRST_NAME);
- builder.append(VCARD_DATA_SEPARATOR);
- builder.append(phoneticGivenName);
- builder.append(VCARD_COL_SEPARATOR);
- }
- if (!TextUtils.isEmpty(phoneticMiddleName)) {
- builder.append(VCARD_PROPERTY_X_PHONETIC_MIDDLE_NAME);
- builder.append(VCARD_DATA_SEPARATOR);
- builder.append(phoneticMiddleName);
- builder.append(VCARD_COL_SEPARATOR);
- }
- if (!TextUtils.isEmpty(phoneticFamilyName)) {
- builder.append(VCARD_PROPERTY_X_PHONETIC_LAST_NAME);
- builder.append(VCARD_DATA_SEPARATOR);
- builder.append(phoneticFamilyName);
- builder.append(VCARD_COL_SEPARATOR);
- }
+ if (mUsesDefactProperty) {
+ if (!TextUtils.isEmpty(phoneticGivenName)) {
+ builder.append(VCARD_PROPERTY_X_PHONETIC_FIRST_NAME);
+ builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(phoneticGivenName);
+ builder.append(VCARD_COL_SEPARATOR);
+ }
+ if (!TextUtils.isEmpty(phoneticMiddleName)) {
+ builder.append(VCARD_PROPERTY_X_PHONETIC_MIDDLE_NAME);
+ builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(phoneticMiddleName);
+ builder.append(VCARD_COL_SEPARATOR);
+ }
+ if (!TextUtils.isEmpty(phoneticFamilyName)) {
+ builder.append(VCARD_PROPERTY_X_PHONETIC_LAST_NAME);
+ builder.append(VCARD_DATA_SEPARATOR);
+ builder.append(phoneticFamilyName);
+ builder.append(VCARD_COL_SEPARATOR);
}
}
}
@@ -958,7 +982,7 @@
}
builder.append(propertyNickname);
- if (!VCardUtils.containsOnlyAscii(propertyNickname)) {
+ if (!VCardUtils.containsOnlyPrintableAscii(propertyNickname)) {
// Strictly, this is not valid in vCard 3.0. See above.
builder.append(VCARD_ATTR_SEPARATOR);
builder.append(mVCardAttributeCharset);
@@ -975,16 +999,31 @@
final Map<String, List<ContentValues>> contentValuesListMap) {
final List<ContentValues> contentValuesList = contentValuesListMap
.get(Phone.CONTENT_ITEM_TYPE);
+ boolean phoneLineExists = false;
if (contentValuesList != null) {
+ Set<String> phoneSet = new HashSet<String>();
for (ContentValues contentValues : contentValuesList) {
- Integer phoneType = contentValues.getAsInteger(Phone.TYPE);
- int phoneTypeAsPrimitive =
- (phoneType == null ? Phone.TYPE_HOME : phoneType);
- appendVCardTelephoneLine(builder, phoneTypeAsPrimitive,
- contentValues.getAsString(Phone.LABEL),
- contentValues.getAsString(Phone.NUMBER));
+ final Integer typeAsObject = contentValues.getAsInteger(Phone.TYPE);
+ final String label = contentValues.getAsString(Phone.LABEL);
+ String phoneNumber = contentValues.getAsString(Phone.NUMBER);
+ if (phoneNumber != null) {
+ phoneNumber = phoneNumber.trim();
+ }
+ if (TextUtils.isEmpty(phoneNumber)) {
+ continue;
+ }
+ phoneLineExists = true;
+ int type = (typeAsObject != null ? typeAsObject : Phone.TYPE_HOME);
+ // TODO: Premature, since this allows two phone numbers which are
+ // same from the view of phone number format (e.g. "100" v.s. "1-0-0")
+ if (!phoneSet.contains(phoneNumber)) {
+ phoneSet.add(phoneNumber);
+ appendVCardTelephoneLine(builder, type, label, phoneNumber);
+ }
}
- } else if (mIsDoCoMo) {
+ }
+
+ if (!phoneLineExists && mIsDoCoMo) {
appendVCardTelephoneLine(builder, Phone.TYPE_HOME, "", "");
}
}
@@ -993,14 +1032,31 @@
final Map<String, List<ContentValues>> contentValuesListMap) {
final List<ContentValues> contentValuesList = contentValuesListMap
.get(Email.CONTENT_ITEM_TYPE);
+ boolean emailAddressExists = false;
if (contentValuesList != null) {
+ Set<String> addressSet = new HashSet<String>();
for (ContentValues contentValues : contentValuesList) {
- appendVCardEmailLine(builder, contentValues
- .getAsInteger(Email.TYPE), contentValues
- .getAsString(Email.LABEL), contentValues
- .getAsString(Email.DATA));
+ Integer typeAsObject = contentValues.getAsInteger(Email.TYPE);
+ final int type = (typeAsObject != null ?
+ typeAsObject : Email.TYPE_OTHER);
+ final String label = contentValues.getAsString(Email.LABEL);
+ String emailAddress = contentValues.getAsString(Email.DATA);
+ if (emailAddress != null) {
+ emailAddress = emailAddress.trim();
+ }
+ if (TextUtils.isEmpty(emailAddress)) {
+ continue;
+ }
+ emailAddressExists = true;
+ // Do not allow completely same email address line emitted into each file.
+ if (!addressSet.contains(emailAddress)) {
+ addressSet.add(emailAddress);
+ appendVCardEmailLine(builder, type, label, emailAddress);
+ }
}
- } else if (mIsDoCoMo) {
+ }
+
+ if (!emailAddressExists && mIsDoCoMo) {
appendVCardEmailLine(builder, Email.TYPE_HOME, "", "");
}
}
@@ -1071,7 +1127,9 @@
for (ContentValues contentValues : contentValuesList) {
final Integer type = contentValues.getAsInteger(StructuredPostal.TYPE);
final String label = contentValues.getAsString(StructuredPostal.LABEL);
- appendVCardPostalLine(builder, type, label, contentValues);
+ if (type != null) {
+ appendVCardPostalLine(builder, type, label, contentValues);
+ }
}
}
@@ -1083,6 +1141,12 @@
for (ContentValues contentValues : contentValuesList) {
Integer protocol = contentValues.getAsInteger(Im.PROTOCOL);
String data = contentValues.getAsString(Im.DATA);
+ if (data != null) {
+ data = data.trim();
+ }
+ if (TextUtils.isEmpty(data)) {
+ continue;
+ }
if (protocol != null && protocol == Im.PROTOCOL_GOOGLE_TALK) {
if (VCardConfig.usesAndroidSpecificProperty(mVCardType)) {
@@ -1100,8 +1164,13 @@
.get(Website.CONTENT_ITEM_TYPE);
if (contentValuesList != null) {
for (ContentValues contentValues : contentValuesList) {
- final String website = contentValues.getAsString(Website.URL);
- appendVCardLine(builder, VCARD_PROPERTY_URL, website);
+ String website = contentValues.getAsString(Website.URL);
+ if (website != null) {
+ website = website.trim();
+ }
+ if (!TextUtils.isEmpty(website)) {
+ appendVCardLine(builder, VCARD_PROPERTY_URL, website);
+ }
}
}
}
@@ -1114,8 +1183,13 @@
// Theoretically, there must be only one birthday for each vCard data and
// we are afraid of some parse error occuring in some devices, so
// we emit only one birthday entry for now.
- final String birthday = contentValuesList.get(0).getAsString(Birthday.BIRTHDAY);
- appendVCardLine(builder, VCARD_PROPERTY_BIRTHDAY, birthday);
+ String birthday = contentValuesList.get(0).getAsString(Birthday.BIRTHDAY);
+ if (birthday != null) {
+ birthday = birthday.trim();
+ }
+ if (!TextUtils.isEmpty(birthday)) {
+ appendVCardLine(builder, VCARD_PROPERTY_BIRTHDAY, birthday);
+ }
}
}
@@ -1125,14 +1199,29 @@
.get(Organization.CONTENT_ITEM_TYPE);
if (contentValuesList != null) {
for (ContentValues contentValues : contentValuesList) {
- final String company = contentValues
+ String company = contentValues
.getAsString(Organization.COMPANY);
- final String title = contentValues
+ if (company != null) {
+ company = company.trim();
+ }
+ String title = contentValues
.getAsString(Organization.TITLE);
- appendVCardLine(builder, VCARD_PROPERTY_ORG, company, true,
- mUsesQuotedPrintable);
- appendVCardLine(builder, VCARD_PROPERTY_TITLE, title, true,
- mUsesQuotedPrintable);
+ if (title != null) {
+ title = title.trim();
+ }
+
+ if (!TextUtils.isEmpty(company)) {
+ appendVCardLine(builder, VCARD_PROPERTY_ORG, company,
+ !VCardUtils.containsOnlyPrintableAscii(company),
+ (mUsesQuotedPrintable &&
+ !VCardUtils.containsOnlyNonCrLfPrintableAscii(company)));
+ }
+ if (!TextUtils.isEmpty(title)) {
+ appendVCardLine(builder, VCARD_PROPERTY_TITLE, title,
+ !VCardUtils.containsOnlyPrintableAscii(title),
+ (mUsesQuotedPrintable &&
+ !VCardUtils.containsOnlyNonCrLfPrintableAscii(title)));
+ }
}
}
}
@@ -1185,7 +1274,10 @@
StringBuilder noteBuilder = new StringBuilder();
boolean first = true;
for (ContentValues contentValues : contentValuesList) {
- final String note = contentValues.getAsString(Note.NOTE);
+ String note = contentValues.getAsString(Note.NOTE);
+ if (note == null) {
+ note = "";
+ }
if (note.length() > 0) {
if (first) {
first = false;
@@ -1195,14 +1287,27 @@
noteBuilder.append(note);
}
}
- appendVCardLine(builder, VCARD_PROPERTY_NOTE, noteBuilder.toString(),
- true, mUsesQuotedPrintable);
+ final String noteStr = noteBuilder.toString();
+ // This means we scan noteStr completely twice, which is redundant.
+ // But for now, we assume this is not so time-consuming..
+ final boolean shouldAppendCharsetInfo =
+ !VCardUtils.containsOnlyPrintableAscii(noteStr);
+ final boolean reallyUseQuotedPrintable =
+ (mUsesQuotedPrintable &&
+ !VCardUtils.containsOnlyNonCrLfPrintableAscii(noteStr));
+ appendVCardLine(builder, VCARD_PROPERTY_NOTE, noteStr,
+ shouldAppendCharsetInfo, reallyUseQuotedPrintable);
} else {
for (ContentValues contentValues : contentValuesList) {
- final String note = contentValues.getAsString(Note.NOTE);
- if (!TextUtils.isEmpty(note)) {
- appendVCardLine(builder, VCARD_PROPERTY_NOTE, note, true,
- mUsesQuotedPrintable);
+ final String noteStr = contentValues.getAsString(Note.NOTE);
+ if (!TextUtils.isEmpty(noteStr)) {
+ final boolean shouldAppendCharsetInfo =
+ !VCardUtils.containsOnlyPrintableAscii(noteStr);
+ final boolean reallyUseQuotedPrintable =
+ (mUsesQuotedPrintable &&
+ !VCardUtils.containsOnlyNonCrLfPrintableAscii(noteStr));
+ appendVCardLine(builder, VCARD_PROPERTY_NOTE, noteStr,
+ shouldAppendCharsetInfo, reallyUseQuotedPrintable);
}
}
}
@@ -1323,15 +1428,31 @@
builder.append(VCARD_PROPERTY_ADR);
builder.append(VCARD_ATTR_SEPARATOR);
+ // Note: Not sure why we need to emit "empty" line even when actual data does not exist.
+ // There may be some reason or may not be any. We keep safer side.
+ // TODO: investigate this.
boolean dataExists = false;
String[] dataArray = VCardUtils.getVCardPostalElements(contentValues);
+ boolean actuallyUseQuotedPrintable = false;
+ boolean shouldAppendCharset = false;
+ for (String data : dataArray) {
+ if (!TextUtils.isEmpty(data)) {
+ dataExists = true;
+ if (!shouldAppendCharset && !VCardUtils.containsOnlyPrintableAscii(data)) {
+ shouldAppendCharset = true;
+ }
+ if (mUsesQuotedPrintable && !VCardUtils.containsOnlyNonCrLfPrintableAscii(data)) {
+ actuallyUseQuotedPrintable = true;
+ break;
+ }
+ }
+ }
+
int length = dataArray.length;
- final boolean useQuotedPrintable = mUsesQuotedPrintable;
for (int i = 0; i < length; i++) {
String data = dataArray[i];
if (!TextUtils.isEmpty(data)) {
- dataExists = true;
- if (useQuotedPrintable) {
+ if (actuallyUseQuotedPrintable) {
dataArray[i] = encodeQuotedPrintable(data);
} else {
dataArray[i] = escapeCharacters(data);
@@ -1378,25 +1499,40 @@
}
}
- if (typeAsString != null) {
- appendTypeAttribute(builder, typeAsString);
- }
+ // Attribute(s).
- if (dataExists) {
- // Strictly, vCard 3.0 does not allow exporters to emit charset information,
- // but we will add it since the information should be useful for importers,
- //
- // Assume no parser does not emit error with this attribute in vCard 3.0.
+ {
+ boolean shouldAppendAttrSeparator = false;
if (typeAsString != null) {
- builder.append(VCARD_ATTR_SEPARATOR);
+ appendTypeAttribute(builder, typeAsString);
+ shouldAppendAttrSeparator = true;
}
- builder.append(mVCardAttributeCharset);
- if (useQuotedPrintable) {
- builder.append(VCARD_ATTR_SEPARATOR);
- builder.append(VCARD_ATTR_ENCODING_QP);
+ if (dataExists) {
+ if (shouldAppendCharset) {
+ // Strictly, vCard 3.0 does not allow exporters to emit charset information,
+ // but we will add it since the information should be useful for importers,
+ //
+ // Assume no parser does not emit error with this attribute in vCard 3.0.
+ if (shouldAppendAttrSeparator) {
+ builder.append(VCARD_ATTR_SEPARATOR);
+ }
+ builder.append(mVCardAttributeCharset);
+ shouldAppendAttrSeparator = true;
+ }
+
+ if (actuallyUseQuotedPrintable) {
+ if (shouldAppendAttrSeparator) {
+ builder.append(VCARD_ATTR_SEPARATOR);
+ }
+ builder.append(VCARD_ATTR_ENCODING_QP);
+ shouldAppendAttrSeparator = true;
+ }
}
}
+
+ // Property values.
+
builder.append(VCARD_DATA_SEPARATOR);
if (dataExists) {
// The elements in dataArray are already encoded to quoted printable
diff --git a/core/java/android/pim/vcard/VCardUtils.java b/core/java/android/pim/vcard/VCardUtils.java
index ffceade..4f50103 100644
--- a/core/java/android/pim/vcard/VCardUtils.java
+++ b/core/java/android/pim/vcard/VCardUtils.java
@@ -283,7 +283,7 @@
return builder.toString();
}
- public static boolean containsOnlyAscii(String str) {
+ public static boolean containsOnlyPrintableAscii(String str) {
if (TextUtils.isEmpty(str)) {
return true;
}
@@ -299,13 +299,35 @@
}
return true;
}
-
+
+ /**
+ * This is useful when checking the string should be encoded into quoted-printable
+ * or not, which is required by vCard 2.1.
+ * See the definition of "7bit" in vCard 2.1 spec for more information.
+ */
+ public static boolean containsOnlyNonCrLfPrintableAscii(String str) {
+ if (TextUtils.isEmpty(str)) {
+ return true;
+ }
+
+ final int length = str.length();
+ final int asciiFirst = 0x20;
+ final int asciiLast = 0x126;
+ for (int i = 0; i < length; i = str.offsetByCodePoints(i, 1)) {
+ int c = str.codePointAt(i);
+ if (c < asciiFirst || asciiLast < c || c == '\n' || c == '\r') {
+ return false;
+ }
+ }
+ return true;
+ }
+
/**
* This is useful since vCard 3.0 often requires the ("X-") properties and groups
* should contain only alphabets, digits, and hyphen.
*
* Note: It is already known some devices (wrongly) outputs properties with characters
- * which should not be in the field. One example is "X-GOOGLE TALK". We appreciate
+ * which should not be in the field. One example is "X-GOOGLE TALK". We accept
* such kind of input but must never output it unless the target is very specific
* to the device which is able to parse the malformed input.
*/
diff --git a/core/java/android/preference/Preference.java b/core/java/android/preference/Preference.java
index 08a2a9f..cebb75c 100644
--- a/core/java/android/preference/Preference.java
+++ b/core/java/android/preference/Preference.java
@@ -102,6 +102,7 @@
private int mLayoutResId = com.android.internal.R.layout.preference;
private int mWidgetLayoutResId;
private boolean mHasSpecifiedLayout = false;
+ private View mLayoutView;
private OnPreferenceChangeInternalListener mListener;
@@ -336,7 +337,7 @@
if (!mHasSpecifiedLayout) {
mHasSpecifiedLayout = true;
}
-
+ mLayoutView = null;
mLayoutResId = layoutResId;
}
@@ -360,6 +361,7 @@
* @see #setLayoutResource(int)
*/
public void setWidgetLayoutResource(int widgetLayoutResId) {
+ mLayoutView = null;
mWidgetLayoutResId = widgetLayoutResId;
}
@@ -387,7 +389,10 @@
*/
public View getView(View convertView, ViewGroup parent) {
if (convertView == null) {
- convertView = onCreateView(parent);
+ if (mLayoutView == null) {
+ mLayoutView = onCreateView(parent);
+ }
+ convertView = mLayoutView;
}
onBindView(convertView);
return convertView;
diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java
index b54ad5d..7854423 100644
--- a/core/java/android/provider/CallLog.java
+++ b/core/java/android/provider/CallLog.java
@@ -16,16 +16,14 @@
package android.provider;
+import com.android.internal.telephony.CallerInfo;
+import com.android.internal.telephony.Connection;
+
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.net.Uri;
-import android.provider.Contacts.People;
-import com.android.internal.telephony.CallerInfo;
-import com.android.internal.telephony.Connection;
-
import android.text.TextUtils;
-import android.util.Log;
/**
* The CallLog provider contains information about placed and received calls.
@@ -179,7 +177,7 @@
}
if ((ci != null) && (ci.person_id > 0)) {
- People.markAsContacted(resolver, ci.person_id);
+ ContactsContract.Contacts.markAsContacted(resolver, ci.person_id);
}
Uri result = resolver.insert(CONTENT_URI, values);
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index cd03869..70a20d6 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -57,9 +57,18 @@
public static final String CALLER_IS_SYNCADAPTER = "caller_is_syncadapter";
/**
+ * A query parameter key used to specify the package that is requesting a query.
+ * This is used for restricting data based on package name.
+ *
+ * @hide
+ */
+ public static final String REQUESTING_PACKAGE_PARAM_KEY = "requesting_package";
+
+ /**
* @hide should be removed when users are updated to refer to SyncState
* @deprecated use SyncState instead
*/
+ @Deprecated
public interface SyncStateColumns extends SyncStateContract.Columns {
}
@@ -225,49 +234,6 @@
public static final String IN_VISIBLE_GROUP = "in_visible_group";
/**
- * Contact presence status. See {@link Presence}
- * for individual status definitions. This column is only returned if explicitly
- * requested in the query projection.
- * <p>Type: NUMBER</p>
- */
- public static final String PRESENCE_STATUS = Presence.PRESENCE_STATUS;
-
- /**
- * Contact presence custom status. This column is only returned if explicitly
- * requested in the query projection.
- * <p>Type: TEXT</p>
- */
- public static final String PRESENCE_CUSTOM_STATUS = Presence.PRESENCE_CUSTOM_STATUS;
-
- /**
- * The time when the latest presence custom status was inserted/updated.
- * This column is only returned if explicitly requested in the query
- * projection.
- * <p>Type: TEXT</p>
- * @hide TODO unhide
- */
- public static final String PRESENCE_CUSTOM_STATUS_TIMESTAMP =
- Presence.PRESENCE_CUSTOM_STATUS_TIMESTAMP;
-
- /**
- * Protocol that supplied the latest status update (see {@link CommonDataKinds.Im#PROTOCOL}.
- * This column is only returned if explicitly requested in the query
- * projection.
- * <p>Type: NUMBER</p>
- * @hide TODO unhide
- */
- public static final String PRESENCE_PROTOCOL = "presence_protocol";
-
- /**
- * Custom protocol that supplied the latest status update (see
- * {@link CommonDataKinds.Im#CUSTOM_PROTOCOL}. This column is only
- * returned if explicitly requested in the query projection.
- * <p>Type: TEXT</p>
- * @hide TODO unhide
- */
- public static final String PRESENCE_CUSTOM_PROTOCOL = "presence_custom_protocol";
-
- /**
* An indicator of whether this contact has at least one phone number. "1" if there is
* at least one phone number, "0" otherwise.
* <P>Type: INTEGER</P>
@@ -281,12 +247,55 @@
public static final String LOOKUP_KEY = "lookup";
}
+ private interface ContactStatusColumns {
+ /**
+ * Contact presence status. See {@link StatusUpdates} for individual status
+ * definitions.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String CONTACT_PRESENCE = "contact_presence";
+
+ /**
+ * Contact's latest status update.
+ * <p>Type: TEXT</p>
+ */
+ public static final String CONTACT_STATUS = "contact_status";
+
+ /**
+ * The absolute time in milliseconds when the latest status was
+ * inserted/updated.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String CONTACT_STATUS_TIMESTAMP = "contact_status_ts";
+
+ /**
+ * The package containing resources for this status: label and icon.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String CONTACT_STATUS_RES_PACKAGE = "contact_status_res_package";
+
+ /**
+ * The resource ID of the label describing the source of contact
+ * status, e.g. "Google Talk". This resource is scoped by the
+ * {@link #CONTACT_STATUS_RES_PACKAGE}.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String CONTACT_STATUS_LABEL = "contact_status_label";
+
+ /**
+ * The resource ID of the icon for the source of contact status. This
+ * resource is scoped by the {@link #CONTACT_STATUS_RES_PACKAGE}.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String CONTACT_STATUS_ICON = "contact_status_icon";
+ }
+
/**
* Constants for the contacts table, which contains a record per group
* of raw contacts representing the same person.
*/
public static class Contacts implements BaseColumns, ContactsColumns,
- ContactOptionsColumns {
+ ContactOptionsColumns, ContactStatusColumns {
/**
* This utility class cannot be instantiated
*/
@@ -317,6 +326,17 @@
"lookup");
/**
+ * Base {@link Uri} for referencing a single {@link Contacts} entry,
+ * created by appending {@link #LOOKUP_KEY} using
+ * {@link Uri#withAppendedPath(Uri, String)}. Provides
+ * {@link OpenableColumns} columns when queried, or returns the
+ * referenced contact formatted as a vCard when opened through
+ * {@link ContentResolver#openAssetFileDescriptor(Uri, String)}.
+ */
+ public static final Uri CONTENT_VCARD_URI = Uri.withAppendedPath(CONTENT_URI,
+ "as_vcard");
+
+ /**
* Builds a {@link #CONTENT_LOOKUP_URI} style {@link Uri} describing the
* requested {@link Contacts} entry.
*
@@ -434,6 +454,12 @@
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact";
/**
+ * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
+ * person.
+ */
+ public static final String CONTENT_VCARD_TYPE = "text/x-vcard";
+
+ /**
* A sub-directory of a single contact that contains all of the constituent raw contact
* {@link Data} rows.
*/
@@ -649,6 +675,46 @@
}
}
+ private interface StatusColumns extends Im.CommonPresenceColumns {
+ /**
+ * Contact's latest presence level.
+ * <P>Type: INTEGER (one of the values below)</P>
+ */
+ public static final String PRESENCE = PRESENCE_STATUS;
+
+ /**
+ * Contact latest status update.
+ * <p>Type: TEXT</p>
+ */
+ public static final String STATUS = PRESENCE_CUSTOM_STATUS;
+
+ /**
+ * The absolute time in milliseconds when the latest status was inserted/updated.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String STATUS_TIMESTAMP = "status_ts";
+
+ /**
+ * The package containing resources for this status: label and icon.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String STATUS_RES_PACKAGE = "status_res_package";
+
+ /**
+ * The resource ID of the label describing the source of the status update, e.g. "Google
+ * Talk". This resource should be scoped by the {@link #STATUS_RES_PACKAGE}.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String STATUS_LABEL = "status_label";
+
+ /**
+ * The resource ID of the icon for the source of the status update.
+ * This resource should be scoped by the {@link #STATUS_RES_PACKAGE}.
+ * <p>Type: NUMBER</p>
+ */
+ public static final String STATUS_ICON = "status_icon";
+ }
+
private interface DataColumns {
/**
* The package name to use when creating {@link Resources} objects for
@@ -736,8 +802,8 @@
/**
* Combines all columns returned by {@link Data} table queries.
*/
- private interface DataColumnsWithJoins extends BaseColumns, DataColumns, RawContactsColumns,
- ContactsColumns, ContactOptionsColumns {
+ private interface DataColumnsWithJoins extends BaseColumns, DataColumns, StatusColumns,
+ RawContactsColumns, ContactsColumns, ContactOptionsColumns, ContactStatusColumns {
}
@@ -759,20 +825,27 @@
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "data");
/**
- * The content:// style URI for this table joined with {@link Presence}
- * data where applicable.
- *
- * @hide
- */
- public static final Uri CONTENT_WITH_PRESENCE_URI = Uri.withAppendedPath(AUTHORITY_URI,
- "data_with_presence");
-
- /**
* The MIME type of {@link #CONTENT_URI} providing a directory of data.
*/
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/data";
/**
+ * If {@link #FOR_EXPORT_ONLY} is explicitly set to "1", returned Cursor toward
+ * Data.CONTENT_URI contains only exportable data.
+ *
+ * This flag is useful (currently) only for vCard exporter in Contacts app, which
+ * needs to exclude "un-exportable" data from available data to export, while
+ * Contacts app itself has priviledge to access all data including "un-expotable"
+ * ones and providers return all of them regardless of the callers' intention.
+ * <P>Type: INTEGER</p>
+ *
+ * @hide Maybe available only in Eclair and not really ready for public use.
+ * TODO: remove, or implement this feature completely. As of now (Eclair),
+ * we only use this flag in queryEntities(), not query().
+ */
+ public static final String FOR_EXPORT_ONLY = "for_export_only";
+
+ /**
* Build a {@link android.provider.ContactsContract.Contacts#CONTENT_LOOKUP_URI}
* style {@link Uri} for the parent {@link android.provider.ContactsContract.Contacts}
* entry of the given {@link Data} entry.
@@ -841,8 +914,8 @@
}
/**
- * Additional data mixed in with {@link Im.CommonPresenceColumns} to link
- * back to specific {@link ContactsContract.Contacts#_ID} entries.
+ * Additional data mixed in with {@link StatusColumns} to link
+ * back to specific {@link ContactsContract.Data#_ID} entries.
*/
private interface PresenceColumns {
@@ -881,23 +954,22 @@
public static final String IM_ACCOUNT = "im_account";
}
- public static final class Presence implements PresenceColumns, Im.CommonPresenceColumns {
+ /**
+ * A status update is linked to a {@link Data} row and captures the user's latest status
+ * update via the corresponding source, e.g. "Having lunch" via "Google Talk".
+ */
+ // TODO make final as soon as Presence is removed
+ public static /*final*/ class StatusUpdates implements StatusColumns, PresenceColumns {
/**
* This utility class cannot be instantiated
*/
- private Presence() {}
+ private StatusUpdates() {}
/**
* The content:// style URI for this table
*/
- public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "presence");
-
- /**
- * The unique ID for a presence row.
- * <P>Type: INTEGER (long)</P>
- */
- public static final String _ID = "presence_id";
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "status_updates");
/**
* Gets the resource ID for the proper presence icon.
@@ -936,22 +1008,20 @@
/**
* The MIME type of {@link #CONTENT_URI} providing a directory of
- * presence details.
+ * status update details.
*/
- public static final String CONTENT_TYPE = "vnd.android.cursor.dir/im-presence";
+ public static final String CONTENT_TYPE = "vnd.android.cursor.dir/status-update";
/**
* The MIME type of a {@link #CONTENT_URI} subdirectory of a single
- * presence detail.
+ * status update detail.
*/
- public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/im-presence";
+ public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/status-update";
+ }
- /**
- * The time when the presence custom status was inserted/updated.
- * <p>Type: TEXT</p>
- * @hide TODO unhide
- */
- public static final String PRESENCE_CUSTOM_STATUS_TIMESTAMP = "status_timestamp";
+ @Deprecated
+ public static final class Presence extends StatusUpdates {
+
}
/**
@@ -1588,6 +1658,12 @@
public static final String PHONETIC_NAME = DATA8;
/**
+ * The office location of this organization.
+ * <P>Type: TEXT</P>
+ */
+ public static final String OFFICE_LOCATION = DATA9;
+
+ /**
* Return the string resource that best describes the given
* {@link #TYPE}. Will always return a valid resource.
*/
diff --git a/core/java/android/provider/Im.java b/core/java/android/provider/Im.java
index d5cc2207..025d5c2 100644
--- a/core/java/android/provider/Im.java
+++ b/core/java/android/provider/Im.java
@@ -540,7 +540,7 @@
* The content:// style URL for contacts who have an open chat session
*/
public static final Uri CONTENT_URI_CHAT_CONTACTS =
- Uri.parse("content://com.google.android.providers.talk/contacts/chatting");
+ Uri.parse("content://com.google.android.providers.talk/contacts_chatting");
/**
* The content:// style URL for contacts who have been blocked
@@ -896,12 +896,21 @@
String BODY = "body";
/**
- * The date this message is sent or received
+ * The date this message is sent or received. This represents the display date for
+ * the message.
* <P>Type: INTEGER</P>
*/
String DATE = "date";
/**
+ * The real date for this message. While 'date' can be modified by the client
+ * to account for server time skew, the real_date is the original timestamp set
+ * by the server for incoming messages.
+ * <P>Type: INTEGER</P>
+ */
+ String REAL_DATE = "real_date";
+
+ /**
* Message Type, see {@link MessageType}
* <P>Type: INTEGER</P>
*/
diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java
index 106e833..7fabfc8 100644
--- a/core/java/android/provider/MediaStore.java
+++ b/core/java/android/provider/MediaStore.java
@@ -240,6 +240,26 @@
private static final String[] PROJECTION = new String[] {_ID, MediaColumns.DATA};
/**
+ * This method cancels the thumbnail request so clients waiting for getThumbnail will be
+ * interrupted and return immediately. Only the original process which made the getThumbnail
+ * requests can cancel their own requests.
+ *
+ * @param cr ContentResolver
+ * @param origId original image or video id
+ * @param baseUri the base URI of requested thumbnails
+ */
+ static void cancelThumbnailRequest(ContentResolver cr, long origId, Uri baseUri) {
+ Uri cancelUri = baseUri.buildUpon().appendQueryParameter("cancel", "1")
+ .appendQueryParameter("orig_id", String.valueOf(origId)).build();
+ Cursor c = null;
+ try {
+ c = cr.query(cancelUri, PROJECTION, null, null, null);
+ }
+ finally {
+ if (c != null) c.close();
+ }
+ }
+ /**
* This method ensure thumbnails associated with origId are generated and decode the byte
* stream from database (MICRO_KIND) or file (MINI_KIND).
*
@@ -257,6 +277,7 @@
BitmapFactory.Options options, Uri baseUri, boolean isVideo) {
Bitmap bitmap = null;
String filePath = null;
+ // Log.v(TAG, "getThumbnail: origId="+origId+", kind="+kind+", isVideo="+isVideo);
// some optimization for MICRO_KIND: if the magic is non-zero, we don't bother
// querying MediaProvider and simply return thumbnail.
if (kind == MICRO_KIND) {
@@ -635,6 +656,18 @@
}
/**
+ * This method cancels the thumbnail request so clients waiting for getThumbnail will be
+ * interrupted and return immediately. Only the original process which made the getThumbnail
+ * requests can cancel their own requests.
+ *
+ * @param cr ContentResolver
+ * @param origId original image id
+ */
+ public static void cancelThumbnailRequest(ContentResolver cr, long origId) {
+ InternalThumbnails.cancelThumbnailRequest(cr, origId, EXTERNAL_CONTENT_URI);
+ }
+
+ /**
* This method checks if the thumbnails of the specified image (origId) has been created.
* It will be blocked until the thumbnails are generated.
*
@@ -1552,6 +1585,18 @@
*/
public static class Thumbnails implements BaseColumns {
/**
+ * This method cancels the thumbnail request so clients waiting for getThumbnail will be
+ * interrupted and return immediately. Only the original process which made the getThumbnail
+ * requests can cancel their own requests.
+ *
+ * @param cr ContentResolver
+ * @param origId original video id
+ */
+ public static void cancelThumbnailRequest(ContentResolver cr, long origId) {
+ InternalThumbnails.cancelThumbnailRequest(cr, origId, EXTERNAL_CONTENT_URI);
+ }
+
+ /**
* This method checks if the thumbnails of the specified image (origId) has been created.
* It will be blocked until the thumbnails are generated.
*
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index e3fc72d..f27902d 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -1416,6 +1416,7 @@
DIM_SCREEN,
SCREEN_OFF_TIMEOUT,
SCREEN_BRIGHTNESS,
+ SCREEN_BRIGHTNESS_MODE,
VIBRATE_ON,
NOTIFICATIONS_USE_RING_VOLUME,
MODE_RINGER,
@@ -2404,7 +2405,6 @@
public static final String[] SETTINGS_TO_BACKUP = {
ADB_ENABLED,
ALLOW_MOCK_LOCATION,
- INSTALL_NON_MARKET_APPS,
PARENTAL_CONTROL_ENABLED,
PARENTAL_CONTROL_REDIRECT_URL,
USB_MASS_STORAGE_ENABLED,
@@ -3191,6 +3191,13 @@
"vending_pd_resend_frequency_ms";
/**
+ * Time before an asset in the 'DOWNLOADING' state is considered ready
+ * for an install kick on the client.
+ */
+ public static final String VENDING_DOWNLOADING_KICK_TIMEOUT_MS =
+ "vending_downloading_kick_ms";
+
+ /**
* Size of buffer in bytes for Vending to use when reading cache files.
*/
public static final String VENDING_DISK_INPUT_BUFFER_BYTES =
diff --git a/core/java/android/server/BluetoothA2dpService.java b/core/java/android/server/BluetoothA2dpService.java
index be8c777..0fc2e7e 100644
--- a/core/java/android/server/BluetoothA2dpService.java
+++ b/core/java/android/server/BluetoothA2dpService.java
@@ -27,7 +27,7 @@
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothUuid;
import android.bluetooth.IBluetoothA2dp;
-import android.bluetooth.ParcelUuid;
+import android.os.ParcelUuid;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java
index f3bc3a6..037e9d3 100644
--- a/core/java/android/server/BluetoothEventLoop.java
+++ b/core/java/android/server/BluetoothEventLoop.java
@@ -21,7 +21,7 @@
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothUuid;
-import android.bluetooth.ParcelUuid;
+import android.os.ParcelUuid;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java
index de14b5b..4e926a6 100644
--- a/core/java/android/server/BluetoothService.java
+++ b/core/java/android/server/BluetoothService.java
@@ -30,7 +30,7 @@
import android.bluetooth.BluetoothHeadset;
import android.bluetooth.BluetoothUuid;
import android.bluetooth.IBluetooth;
-import android.bluetooth.ParcelUuid;
+import android.os.ParcelUuid;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
@@ -78,6 +78,7 @@
private static final int MESSAGE_REGISTER_SDP_RECORDS = 1;
private static final int MESSAGE_FINISH_DISABLE = 2;
private static final int MESSAGE_UUID_INTENT = 3;
+ private static final int MESSAGE_DISCOVERABLE_TIMEOUT = 4;
// The timeout used to sent the UUIDs Intent
// This timeout should be greater than the page timeout
@@ -308,6 +309,15 @@
if (address != null)
sendUuidIntent(address);
break;
+ case MESSAGE_DISCOVERABLE_TIMEOUT:
+ int mode = msg.arg1;
+ if (isEnabled()) {
+ // TODO: Switch back to the previous scan mode
+ // This is ok for now, because we only use
+ // CONNECTABLE and CONNECTABLE_DISCOVERABLE
+ setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE, -1);
+ }
+ break;
}
}
};
@@ -679,23 +689,30 @@
return setPropertyInteger("DiscoverableTimeout", timeout);
}
- public synchronized boolean setScanMode(int mode) {
+ public synchronized boolean setScanMode(int mode, int duration) {
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS,
"Need WRITE_SECURE_SETTINGS permission");
boolean pairable = false;
boolean discoverable = false;
+
switch (mode) {
case BluetoothAdapter.SCAN_MODE_NONE:
+ mHandler.removeMessages(MESSAGE_DISCOVERABLE_TIMEOUT);
pairable = false;
discoverable = false;
break;
case BluetoothAdapter.SCAN_MODE_CONNECTABLE:
+ mHandler.removeMessages(MESSAGE_DISCOVERABLE_TIMEOUT);
pairable = true;
discoverable = false;
break;
case BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE:
+ mHandler.removeMessages(MESSAGE_DISCOVERABLE_TIMEOUT);
pairable = true;
discoverable = true;
+ Message msg = mHandler.obtainMessage(MESSAGE_DISCOVERABLE_TIMEOUT);
+ mHandler.sendMessageDelayed(msg, duration * 1000);
+ if (DBG) Log.d(TAG, "BT Discoverable for " + duration + " seconds");
break;
default:
Log.w(TAG, "Requested invalid scan mode " + mode);
diff --git a/core/java/android/text/method/Touch.java b/core/java/android/text/method/Touch.java
index dfc16f5..6995107 100644
--- a/core/java/android/text/method/Touch.java
+++ b/core/java/android/text/method/Touch.java
@@ -72,6 +72,24 @@
}
/**
+ * @hide
+ * Returns the maximum scroll value in x.
+ */
+ public static int getMaxScrollX(TextView widget, Layout layout, int y) {
+ int top = layout.getLineForVertical(y);
+ int bottom = layout.getLineForVertical(y + widget.getHeight()
+ - widget.getTotalPaddingTop() -widget.getTotalPaddingBottom());
+ int left = Integer.MAX_VALUE;
+ int right = 0;
+ for (int i = top; i <= bottom; i++) {
+ left = (int) Math.min(left, layout.getLineLeft(i));
+ right = (int) Math.max(right, layout.getLineRight(i));
+ }
+ return right - left - widget.getWidth() - widget.getTotalPaddingLeft()
+ - widget.getTotalPaddingRight();
+ }
+
+ /**
* Handles touch events for dragging. You may want to do other actions
* like moving the cursor on touch as well.
*/
diff --git a/core/java/android/view/HapticFeedbackConstants.java b/core/java/android/view/HapticFeedbackConstants.java
index f936f65..e1f2823 100644
--- a/core/java/android/view/HapticFeedbackConstants.java
+++ b/core/java/android/view/HapticFeedbackConstants.java
@@ -36,6 +36,18 @@
public static final int VIRTUAL_KEY = 1;
/**
+ * This is a private constant. Feel free to renumber as desired.
+ * @hide
+ */
+ public static final int SAFE_MODE_DISABLED = 10000;
+
+ /**
+ * This is a private constant. Feel free to renumber as desired.
+ * @hide
+ */
+ public static final int SAFE_MODE_ENABLED = 10001;
+
+ /**
* Flag for {@link View#performHapticFeedback(int, int)
* View.performHapticFeedback(int, int)}: Ignore the setting in the
* view for whether to perform haptic feedback, do it always.
diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java
index b2f0c60..ca907af 100644
--- a/core/java/android/view/MotionEvent.java
+++ b/core/java/android/view/MotionEvent.java
@@ -1104,13 +1104,13 @@
final int NS = mNumSamples;
final int NI = NP*NS;
final int ND = NI * NUM_SAMPLE_DATA;
- if (data.length <= ND) {
+ if (data.length < (ND+(NP*NUM_SAMPLE_DATA))) {
final int NEW_ND = ND + (NP * (BASE_AVAIL_SAMPLES * NUM_SAMPLE_DATA));
float[] newData = new float[NEW_ND];
System.arraycopy(data, 0, newData, 0, ND);
mDataSamples = data = newData;
}
- if (times.length <= NS) {
+ if (times.length < (NS+1)) {
final int NEW_NS = NS + BASE_AVAIL_SAMPLES;
long[] newHistoryTimes = new long[NEW_NS];
System.arraycopy(times, 0, newHistoryTimes, 0, NS);
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 642f0fa..048f857 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -24,6 +24,7 @@
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
+import android.graphics.Interpolator;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
@@ -58,6 +59,7 @@
import android.view.accessibility.AccessibilityEventSource;
import android.view.accessibility.AccessibilityManager;
import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputMethodManager;
@@ -514,7 +516,8 @@
* The framework provides basic support for views that wish to internally
* scroll their content. This includes keeping track of the X and Y scroll
* offset as well as mechanisms for drawing scrollbars. See
- * {@link #scrollBy(int, int)}, {@link #scrollTo(int, int)} for more details.
+ * {@link #scrollBy(int, int)}, {@link #scrollTo(int, int)}, and
+ * {@link #awakenScrollBars()} for more details.
* </p>
*
* <a name="Tags"></a>
@@ -571,6 +574,8 @@
* @attr ref android.R.styleable#View_scrollbarSize
* @attr ref android.R.styleable#View_scrollbarStyle
* @attr ref android.R.styleable#View_scrollbars
+ * @attr ref android.R.styleable#View_scrollbarDefaultDelayBeforeFade
+ * @attr ref android.R.styleable#View_scrollbarFadeDuration
* @attr ref android.R.styleable#View_scrollbarTrackHorizontal
* @attr ref android.R.styleable#View_scrollbarThumbHorizontal
* @attr ref android.R.styleable#View_scrollbarThumbVertical
@@ -2214,12 +2219,28 @@
protected void initializeScrollbars(TypedArray a) {
initScrollCache();
- if (mScrollCache.scrollBar == null) {
- mScrollCache.scrollBar = new ScrollBarDrawable();
- }
-
final ScrollabilityCache scrollabilityCache = mScrollCache;
+
+ if (scrollabilityCache.scrollBar == null) {
+ scrollabilityCache.scrollBar = new ScrollBarDrawable();
+ }
+
+ final boolean fadeScrollbars = a.getBoolean(R.styleable.View_fadeScrollbars, false);
+ if (!fadeScrollbars) {
+ scrollabilityCache.state = ScrollabilityCache.ON;
+ }
+ scrollabilityCache.fadeScrollBars = fadeScrollbars;
+
+
+ scrollabilityCache.scrollBarFadeDuration = a.getInt(
+ R.styleable.View_scrollbarFadeDuration, ViewConfiguration
+ .getScrollBarFadeDuration());
+ scrollabilityCache.scrollBarDefaultDelayBeforeFade = a.getInt(
+ R.styleable.View_scrollbarDefaultDelayBeforeFade,
+ ViewConfiguration.getScrollDefaultDelay());
+
+
scrollabilityCache.scrollBarSize = a.getDimensionPixelSize(
com.android.internal.R.styleable.View_scrollbarSize,
ViewConfiguration.get(mContext).getScaledScrollBarSize());
@@ -2263,7 +2284,7 @@
*/
private void initScrollCache() {
if (mScrollCache == null) {
- mScrollCache = new ScrollabilityCache(ViewConfiguration.get(mContext));
+ mScrollCache = new ScrollabilityCache(ViewConfiguration.get(mContext), this);
}
}
@@ -4671,7 +4692,9 @@
mScrollX = x;
mScrollY = y;
onScrollChanged(mScrollX, mScrollY, oldX, oldY);
- invalidate();
+ if (!awakenScrollBars()) {
+ invalidate();
+ }
}
}
@@ -4687,6 +4710,160 @@
}
/**
+ * <p>Trigger the scrollbars to draw. When invoked this method starts an
+ * animation to fade the scrollbars out after a default delay. If a subclass
+ * provides animated scrolling, the start delay should equal the duration
+ * of the scrolling animation.</p>
+ *
+ * <p>The animation starts only if at least one of the scrollbars is
+ * enabled, as specified by {@link #isHorizontalScrollBarEnabled()} and
+ * {@link #isVerticalScrollBarEnabled()}. When the animation is started,
+ * this method returns true, and false otherwise. If the animation is
+ * started, this method calls {@link #invalidate()}; in that case the
+ * caller should not call {@link #invalidate()}.</p>
+ *
+ * <p>This method should be invoked every time a subclass directly updates
+ * the scroll parameters.</p>
+ *
+ * <p>This method is automatically invoked by {@link #scrollBy(int, int)}
+ * and {@link #scrollTo(int, int)}.</p>
+ *
+ * @return true if the animation is played, false otherwise
+ *
+ * @see #awakenScrollBars(int)
+ * @see #scrollBy(int, int)
+ * @see #scrollTo(int, int)
+ * @see #isHorizontalScrollBarEnabled()
+ * @see #isVerticalScrollBarEnabled()
+ * @see #setHorizontalScrollBarEnabled(boolean)
+ * @see #setVerticalScrollBarEnabled(boolean)
+ */
+ protected boolean awakenScrollBars() {
+ return mScrollCache != null &&
+ awakenScrollBars(mScrollCache.scrollBarDefaultDelayBeforeFade, true);
+ }
+
+ /**
+ * <p>
+ * Trigger the scrollbars to draw. When invoked this method starts an
+ * animation to fade the scrollbars out after a fixed delay. If a subclass
+ * provides animated scrolling, the start delay should equal the duration of
+ * the scrolling animation.
+ * </p>
+ *
+ * <p>
+ * The animation starts only if at least one of the scrollbars is enabled,
+ * as specified by {@link #isHorizontalScrollBarEnabled()} and
+ * {@link #isVerticalScrollBarEnabled()}. When the animation is started,
+ * this method returns true, and false otherwise. If the animation is
+ * started, this method calls {@link #invalidate()}; in that case the caller
+ * should not call {@link #invalidate()}.
+ * </p>
+ *
+ * <p>
+ * This method should be invoked everytime a subclass directly updates the
+ * scroll parameters.
+ * </p>
+ *
+ * @param startDelay the delay, in milliseconds, after which the animation
+ * should start; when the delay is 0, the animation starts
+ * immediately
+ * @return true if the animation is played, false otherwise
+ *
+ * @see #scrollBy(int, int)
+ * @see #scrollTo(int, int)
+ * @see #isHorizontalScrollBarEnabled()
+ * @see #isVerticalScrollBarEnabled()
+ * @see #setHorizontalScrollBarEnabled(boolean)
+ * @see #setVerticalScrollBarEnabled(boolean)
+ */
+ protected boolean awakenScrollBars(int startDelay) {
+ return awakenScrollBars(startDelay, true);
+ }
+
+ /**
+ * <p>
+ * Trigger the scrollbars to draw. When invoked this method starts an
+ * animation to fade the scrollbars out after a fixed delay. If a subclass
+ * provides animated scrolling, the start delay should equal the duration of
+ * the scrolling animation.
+ * </p>
+ *
+ * <p>
+ * The animation starts only if at least one of the scrollbars is enabled,
+ * as specified by {@link #isHorizontalScrollBarEnabled()} and
+ * {@link #isVerticalScrollBarEnabled()}. When the animation is started,
+ * this method returns true, and false otherwise. If the animation is
+ * started, this method calls {@link #invalidate()} if the invalidate parameter
+ * is set to true; in that case the caller
+ * should not call {@link #invalidate()}.
+ * </p>
+ *
+ * <p>
+ * This method should be invoked everytime a subclass directly updates the
+ * scroll parameters.
+ * </p>
+ *
+ * @param startDelay the delay, in milliseconds, after which the animation
+ * should start; when the delay is 0, the animation starts
+ * immediately
+ *
+ * @param invalidate Wheter this method should call invalidate
+ *
+ * @return true if the animation is played, false otherwise
+ *
+ * @see #scrollBy(int, int)
+ * @see #scrollTo(int, int)
+ * @see #isHorizontalScrollBarEnabled()
+ * @see #isVerticalScrollBarEnabled()
+ * @see #setHorizontalScrollBarEnabled(boolean)
+ * @see #setVerticalScrollBarEnabled(boolean)
+ */
+ protected boolean awakenScrollBars(int startDelay, boolean invalidate) {
+ final ScrollabilityCache scrollCache = mScrollCache;
+
+ if (scrollCache == null || !scrollCache.fadeScrollBars) {
+ return false;
+ }
+
+ if (scrollCache.scrollBar == null) {
+ scrollCache.scrollBar = new ScrollBarDrawable();
+ }
+
+ if (isHorizontalScrollBarEnabled() || isVerticalScrollBarEnabled()) {
+
+ if (invalidate) {
+ // Invalidate to show the scrollbars
+ invalidate();
+ }
+
+ if (scrollCache.state == ScrollabilityCache.OFF) {
+ // FIXME: this is copied from WindowManagerService.
+ // We should get this value from the system when it
+ // is possible to do so.
+ final int KEY_REPEAT_FIRST_DELAY = 750;
+ startDelay = Math.max(KEY_REPEAT_FIRST_DELAY, startDelay);
+ }
+
+ // Tell mScrollCache when we should start fading. This may
+ // extend the fade start time if one was already scheduled
+ long fadeStartTime = AnimationUtils.currentAnimationTimeMillis() + startDelay;
+ scrollCache.fadeStartTime = fadeStartTime;
+ scrollCache.state = ScrollabilityCache.ON;
+
+ // Schedule our fader to run, unscheduling any old ones first
+ if (mAttachInfo != null) {
+ mAttachInfo.mHandler.removeCallbacks(scrollCache);
+ mAttachInfo.mHandler.postAtTime(scrollCache, fadeStartTime);
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
* Mark the the area defined by dirty as needing to be drawn. If the view is
* visible, {@link #onDraw} will be called at some point in the future.
* This must be called from a UI thread. To call from a non-UI thread, call
@@ -5177,7 +5354,34 @@
private void recomputePadding() {
setPadding(mPaddingLeft, mPaddingTop, mUserPaddingRight, mUserPaddingBottom);
}
-
+
+ /**
+ * Define whether scrollbars will fade when the view is not scrolling.
+ *
+ * @param fadeScrollbars wheter to enable fading
+ *
+ */
+ public void setScrollbarFadingEnabled(boolean fadeScrollbars) {
+ initScrollCache();
+ final ScrollabilityCache scrollabilityCache = mScrollCache;
+ scrollabilityCache.fadeScrollBars = fadeScrollbars;
+ if (fadeScrollbars) {
+ scrollabilityCache.state = ScrollabilityCache.OFF;
+ } else {
+ scrollabilityCache.state = ScrollabilityCache.ON;
+ }
+ }
+
+ /**
+ *
+ * Returns true if scrollbars will fade when this view is not scrolling
+ *
+ * @return true if scrollbar fading is enabled
+ */
+ public boolean isScrollbarFadingEnabled() {
+ return mScrollCache != null && mScrollCache.fadeScrollBars;
+ }
+
/**
* <p>Specify the style of the scrollbars. The scrollbars can be overlaid or
* inset. When inset, they add to the padding of the view. And the scrollbars
@@ -5344,11 +5548,49 @@
* scrollbars are painted only if they have been awakened first.</p>
*
* @param canvas the canvas on which to draw the scrollbars
+ *
+ * @see #awakenScrollBars(int)
*/
private void onDrawScrollBars(Canvas canvas) {
// scrollbars are drawn only when the animation is running
final ScrollabilityCache cache = mScrollCache;
if (cache != null) {
+
+ int state = cache.state;
+
+ if (state == ScrollabilityCache.OFF) {
+ return;
+ }
+
+ boolean invalidate = false;
+
+ if (state == ScrollabilityCache.FADING) {
+ // We're fading -- get our fade interpolation
+ if (cache.interpolatorValues == null) {
+ cache.interpolatorValues = new float[1];
+ }
+
+ float[] values = cache.interpolatorValues;
+
+ // Stops the animation if we're done
+ if (cache.scrollBarInterpolator.timeToValues(values) ==
+ Interpolator.Result.FREEZE_END) {
+ cache.state = ScrollabilityCache.OFF;
+ } else {
+ cache.scrollBar.setAlpha(Math.round(values[0]));
+ }
+
+ // This will make the scroll bars inval themselves after
+ // drawing. We only want this when we're fading so that
+ // we prevent excessive redraws
+ invalidate = true;
+ } else {
+ // We're just on -- but we may have been fading before so
+ // reset alpha
+ cache.scrollBar.setAlpha(255);
+ }
+
+
final int viewFlags = mViewFlags;
final boolean drawHorizontalScrollBar =
@@ -5371,19 +5613,22 @@
final int scrollY = mScrollY;
final int inside = (viewFlags & SCROLLBARS_OUTSIDE_MASK) == 0 ? ~0 : 0;
+ int left, top, right, bottom;
+
if (drawHorizontalScrollBar) {
- scrollBar.setParameters(
- computeHorizontalScrollRange(),
+ scrollBar.setParameters(computeHorizontalScrollRange(),
computeHorizontalScrollOffset(),
computeHorizontalScrollExtent(), false);
- final int top = scrollY + height - size - (mUserPaddingBottom & inside);
final int verticalScrollBarGap = drawVerticalScrollBar ?
- getVerticalScrollbarWidth() : 0;
- onDrawHorizontalScrollBar(canvas, scrollBar,
- scrollX + (mPaddingLeft & inside),
- top,
- scrollX + width - (mUserPaddingRight & inside) - verticalScrollBarGap,
- top + size);
+ getVerticalScrollbarWidth() : 0;
+ top = scrollY + height - size - (mUserPaddingBottom & inside);
+ left = scrollX + (mPaddingLeft & inside);
+ right = scrollX + width - (mUserPaddingRight & inside) - verticalScrollBarGap;
+ bottom = top + size;
+ onDrawHorizontalScrollBar(canvas, scrollBar, left, top, right, bottom);
+ if (invalidate) {
+ invalidate(left, top, right, bottom);
+ }
}
if (drawVerticalScrollBar) {
@@ -5391,12 +5636,14 @@
computeVerticalScrollOffset(),
computeVerticalScrollExtent(), true);
// TODO: Deal with RTL languages to position scrollbar on left
- final int left = scrollX + width - size - (mUserPaddingRight & inside);
- onDrawVerticalScrollBar(canvas, scrollBar,
- left,
- scrollY + (mPaddingTop & inside),
- left + size,
- scrollY + height - (mUserPaddingBottom & inside));
+ left = scrollX + width - size - (mUserPaddingRight & inside);
+ top = scrollY + (mPaddingTop & inside);
+ right = left + size;
+ bottom = scrollY + height - (mUserPaddingBottom & inside);
+ onDrawVerticalScrollBar(canvas, scrollBar, left, top, right, bottom);
+ if (invalidate) {
+ invalidate(left, top, right, bottom);
+ }
}
}
}
@@ -5424,7 +5671,7 @@
* @see #computeHorizontalScrollExtent()
* @see #computeHorizontalScrollOffset()
* @see android.widget.ScrollBarDrawable
- * @hide
+ * @hide
*/
protected void onDrawHorizontalScrollBar(Canvas canvas,
Drawable scrollBar,
@@ -8731,21 +8978,62 @@
* is supported. This avoids keeping too many unused fields in most
* instances of View.</p>
*/
- private static class ScrollabilityCache {
+ private static class ScrollabilityCache implements Runnable {
+
+ /**
+ * Scrollbars are not visible
+ */
+ public static final int OFF = 0;
+
+ /**
+ * Scrollbars are visible
+ */
+ public static final int ON = 1;
+
+ /**
+ * Scrollbars are fading away
+ */
+ public static final int FADING = 2;
+
+ public boolean fadeScrollBars;
+
public int fadingEdgeLength;
+ public int scrollBarDefaultDelayBeforeFade;
+ public int scrollBarFadeDuration;
public int scrollBarSize;
public ScrollBarDrawable scrollBar;
+ public float[] interpolatorValues;
+ public View host;
public final Paint paint;
public final Matrix matrix;
public Shader shader;
+ public final Interpolator scrollBarInterpolator = new Interpolator(1, 2);
+
+ private final float[] mOpaque = {255.0f};
+ private final float[] mTransparent = {0.0f};
+
+ /**
+ * When fading should start. This time moves into the future every time
+ * a new scroll happens. Measured based on SystemClock.uptimeMillis()
+ */
+ public long fadeStartTime;
+
+
+ /**
+ * The current state of the scrollbars: ON, OFF, or FADING
+ */
+ public int state = OFF;
+
private int mLastColor;
- public ScrollabilityCache(ViewConfiguration configuration) {
+ public ScrollabilityCache(ViewConfiguration configuration, View host) {
fadingEdgeLength = configuration.getScaledFadingEdgeLength();
scrollBarSize = configuration.getScaledScrollBarSize();
+ scrollBarDefaultDelayBeforeFade = configuration.getScrollDefaultDelay();
+ scrollBarFadeDuration = configuration.getScrollBarFadeDuration();
paint = new Paint();
matrix = new Matrix();
@@ -8755,6 +9043,7 @@
paint.setShader(shader);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
+ this.host = host;
}
public void setFadeColor(int color) {
@@ -8770,5 +9059,32 @@
paint.setXfermode(null);
}
}
+
+ public void run() {
+ long now = AnimationUtils.currentAnimationTimeMillis();
+ if (now >= fadeStartTime) {
+
+ // the animation fades the scrollbars out by changing
+ // the opacity (alpha) from fully opaque to fully
+ // transparent
+ int nextFrame = (int) now;
+ int framesCount = 0;
+
+ Interpolator interpolator = scrollBarInterpolator;
+
+ // Start opaque
+ interpolator.setKeyFrame(framesCount++, nextFrame, mOpaque);
+
+ // End transparent
+ nextFrame += scrollBarFadeDuration;
+ interpolator.setKeyFrame(framesCount, nextFrame, mTransparent);
+
+ state = FADING;
+
+ // Kick off the fade animation
+ host.invalidate();
+ }
+ }
+
}
}
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 3776463..993048f 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -31,6 +31,16 @@
private static final int SCROLL_BAR_SIZE = 10;
/**
+ * Duration of the fade when scrollbars fade away in milliseconds
+ */
+ private static final int SCROLL_BAR_FADE_DURATION = 250;
+
+ /**
+ * Default delay before the scrollbars fade in milliseconds
+ */
+ private static final int SCROLL_BAR_DEFAULT_DELAY = 300;
+
+ /**
* Defines the length of the fading edges in pixels
*/
private static final int FADING_EDGE_LENGTH = 12;
@@ -221,6 +231,20 @@
}
/**
+ * @return Duration of the fade when scrollbars fade away in milliseconds
+ */
+ public static int getScrollBarFadeDuration() {
+ return SCROLL_BAR_FADE_DURATION;
+ }
+
+ /**
+ * @return Default delay before the scrollbars fade in milliseconds
+ */
+ public static int getScrollDefaultDelay() {
+ return SCROLL_BAR_DEFAULT_DELAY;
+ }
+
+ /**
* @return the length of the fading edges in pixels
*
* @deprecated Use {@link #getScaledFadingEdgeLength()} instead.
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index 398abf8..dba2e04 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -1841,7 +1841,7 @@
}
} break;
case DIE:
- dispatchDetachedFromWindow();
+ doDie();
break;
case DISPATCH_KEY_FROM_IME: {
if (LOCAL_LOGV) Log.v(
@@ -2520,6 +2520,14 @@
}
public void die(boolean immediate) {
+ if (immediate) {
+ doDie();
+ } else {
+ sendEmptyMessage(DIE);
+ }
+ }
+
+ void doDie() {
checkThread();
if (Config.LOGV) Log.v("ViewRoot", "DIE in " + this + " of " + mSurface);
synchronized (this) {
@@ -2543,11 +2551,7 @@
}
if (mAdded) {
mAdded = false;
- if (immediate) {
- dispatchDetachedFromWindow();
- } else if (mView != null) {
- sendEmptyMessage(DIE);
- }
+ dispatchDetachedFromWindow();
}
}
}
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index b3125b2..78999fa 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -813,7 +813,7 @@
boolean displayEnabled);
/**
- * Called when the system is mostly done booting to dentermine whether
+ * Called when the system is mostly done booting to determine whether
* the system should go into safe mode.
*/
public boolean detectSafeMode();
diff --git a/core/java/android/webkit/CallbackProxy.java b/core/java/android/webkit/CallbackProxy.java
index 37efdb0..8d55247 100644
--- a/core/java/android/webkit/CallbackProxy.java
+++ b/core/java/android/webkit/CallbackProxy.java
@@ -106,6 +106,7 @@
private static final int GEOLOCATION_PERMISSIONS_SHOW_PROMPT = 130;
private static final int GEOLOCATION_PERMISSIONS_HIDE_PROMPT = 131;
private static final int RECEIVED_TOUCH_ICON_URL = 132;
+ private static final int GET_VISITED_HISTORY = 133;
// Message triggered by the client to resume execution
private static final int NOTIFY = 200;
@@ -655,6 +656,12 @@
int lineNumber = msg.getData().getInt("lineNumber");
mWebChromeClient.addMessageToConsole(message, lineNumber, sourceID);
break;
+
+ case GET_VISITED_HISTORY:
+ if (mWebChromeClient != null) {
+ mWebChromeClient.getVisitedHistory((ValueCallback<String[]>)msg.obj);
+ }
+ break;
}
}
@@ -1329,4 +1336,16 @@
}
return result.getResult();
}
+
+ /**
+ * @hide pending API council approval
+ */
+ public void getVisitedHistory(ValueCallback<String[]> callback) {
+ if (mWebChromeClient == null) {
+ return;
+ }
+ Message msg = obtainMessage(GET_VISITED_HISTORY);
+ msg.obj = callback;
+ sendMessage(msg);
+ }
}
diff --git a/core/java/android/webkit/GeolocationPermissions.java b/core/java/android/webkit/GeolocationPermissions.java
index c0cac01..483e9e9 100755
--- a/core/java/android/webkit/GeolocationPermissions.java
+++ b/core/java/android/webkit/GeolocationPermissions.java
@@ -28,7 +28,6 @@
/**
* Implements the Java side of GeolocationPermissions. Simply marshalls calls
* from the UI thread to the WebKit thread.
- * @hide
*/
public final class GeolocationPermissions {
/**
@@ -72,6 +71,7 @@
/**
* Gets the singleton instance of the class.
+ * @hide
*/
public static GeolocationPermissions getInstance() {
if (sInstance == null) {
@@ -82,6 +82,7 @@
/**
* Creates the UI message handler. Must be called on the UI thread.
+ * @hide
*/
public void createUIHandler() {
if (mUIHandler == null) {
@@ -110,6 +111,7 @@
/**
* Creates the message handler. Must be called on the WebKit thread.
+ * @hide
*/
public void createHandler() {
if (mHandler == null) {
@@ -186,6 +188,7 @@
* WebCore::SecurityOrigin::toString(). As long as all 'HTML 5 modules'
* (Database, Geolocation etc) do so, it's safe to match up origins for the
* purposes of displaying UI.
+ * @hide
*/
public void getOrigins(ValueCallback<Set> callback) {
if (callback != null) {
@@ -209,6 +212,7 @@
/**
* Gets the permission state for the specified origin.
+ * @hide
*/
public void getAllowed(String origin, ValueCallback<Boolean> callback) {
if (callback == null) {
@@ -241,6 +245,7 @@
* Clears the permission state for the specified origin. This method may be
* called before the WebKit thread has intialized the message handler.
* Messages will be queued until this time.
+ * @hide
*/
public void clear(String origin) {
// Called on the UI thread.
@@ -261,6 +266,7 @@
* Allows the specified origin. This method may be called before the WebKit
* thread has intialized the message handler. Messages will be queued until
* this time.
+ * @hide
*/
public void allow(String origin) {
// Called on the UI thread.
@@ -279,6 +285,7 @@
/**
* Clears the permission state for all origins.
+ * @hide
*/
public void clearAll() {
// Called on the UI thread.
diff --git a/core/java/android/webkit/GoogleLocationSettingManager.java b/core/java/android/webkit/GoogleLocationSettingManager.java
index 1b6e77c..508df3b 100644
--- a/core/java/android/webkit/GoogleLocationSettingManager.java
+++ b/core/java/android/webkit/GoogleLocationSettingManager.java
@@ -200,7 +200,11 @@
@Override
public void onChange(boolean selfChange) {
- maybeApplySetting(mContext);
+ // This may come after the call to doNotObserve() above,
+ // so mContext may be null.
+ if (mContext != null) {
+ maybeApplySetting(mContext);
+ }
}
}
}
diff --git a/core/java/android/webkit/MimeTypeMap.java b/core/java/android/webkit/MimeTypeMap.java
index a55dbc8..fffba1b 100644
--- a/core/java/android/webkit/MimeTypeMap.java
+++ b/core/java/android/webkit/MimeTypeMap.java
@@ -214,6 +214,34 @@
"application/vnd.oasis.opendocument.text-template", "ott");
sMimeTypeMap.loadEntry(
"application/vnd.oasis.opendocument.text-web", "oth");
+ sMimeTypeMap.loadEntry("application/msword", "doc");
+ sMimeTypeMap.loadEntry("application/msword", "dot");
+ sMimeTypeMap.loadEntry(
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+ "docx");
+ sMimeTypeMap.loadEntry(
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
+ "dotx");
+ sMimeTypeMap.loadEntry("application/vnd.ms-excel", "xls");
+ sMimeTypeMap.loadEntry("application/vnd.ms-excel", "xlt");
+ sMimeTypeMap.loadEntry(
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
+ "xlsx");
+ sMimeTypeMap.loadEntry(
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
+ "xltx");
+ sMimeTypeMap.loadEntry("application/vnd.ms-powerpoint", "ppt");
+ sMimeTypeMap.loadEntry("application/vnd.ms-powerpoint", "pot");
+ sMimeTypeMap.loadEntry("application/vnd.ms-powerpoint", "pps");
+ sMimeTypeMap.loadEntry(
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation",
+ "pptx");
+ sMimeTypeMap.loadEntry(
+ "application/vnd.openxmlformats-officedocument.presentationml.template",
+ "potx");
+ sMimeTypeMap.loadEntry(
+ "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
+ "ppsx");
sMimeTypeMap.loadEntry("application/vnd.rim.cod", "cod");
sMimeTypeMap.loadEntry("application/vnd.smaf", "mmf");
sMimeTypeMap.loadEntry("application/vnd.stardivision.calc", "sdc");
@@ -411,12 +439,13 @@
sMimeTypeMap.loadEntry("text/plain", "asc");
sMimeTypeMap.loadEntry("text/plain", "text");
sMimeTypeMap.loadEntry("text/plain", "diff");
- sMimeTypeMap.loadEntry("text/plain", "pot");
+ sMimeTypeMap.loadEntry("text/plain", "po"); // reserve "pot" for vnd.ms-powerpoint
sMimeTypeMap.loadEntry("text/richtext", "rtx");
sMimeTypeMap.loadEntry("text/rtf", "rtf");
sMimeTypeMap.loadEntry("text/texmacs", "ts");
sMimeTypeMap.loadEntry("text/text", "phps");
sMimeTypeMap.loadEntry("text/tab-separated-values", "tsv");
+ sMimeTypeMap.loadEntry("text/xml", "xml");
sMimeTypeMap.loadEntry("text/x-bibtex", "bib");
sMimeTypeMap.loadEntry("text/x-boo", "boo");
sMimeTypeMap.loadEntry("text/x-c++hdr", "h++");
diff --git a/core/java/android/webkit/WebChromeClient.java b/core/java/android/webkit/WebChromeClient.java
index 1ae1d85..7f5b862 100644
--- a/core/java/android/webkit/WebChromeClient.java
+++ b/core/java/android/webkit/WebChromeClient.java
@@ -240,14 +240,12 @@
/**
* Instructs the client to show a prompt to ask the user to set the
* Geolocation permission state for the specified origin.
- * @hide pending API council approval.
*/
public void onGeolocationPermissionsShowPrompt(String origin,
GeolocationPermissions.Callback callback) {}
/**
* Instructs the client to hide the Geolocation permissions prompt.
- * @hide pending API council approval.
*/
public void onGeolocationPermissionsHidePrompt() {}
@@ -297,4 +295,11 @@
public View getVideoLoadingProgressView() {
return null;
}
+
+ /** Obtains a list of all visited history items, used for link coloring
+ * @hide pending API Council approval
+ */
+ public void getVisitedHistory(ValueCallback<String[]> callback) {
+ }
+
}
diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java
index 0cfcb95..4fedec9 100644
--- a/core/java/android/webkit/WebSettings.java
+++ b/core/java/android/webkit/WebSettings.java
@@ -1005,7 +1005,6 @@
* @param databasePath String path to the directory where the Geolocation
* permissions database should be saved. May be the empty string but
* should never be null.
- * @hide pending api council approval
*/
public synchronized void setGeolocationDatabasePath(String databasePath) {
if (databasePath != null && !databasePath.equals(mDatabasePath)) {
@@ -1122,7 +1121,6 @@
/**
* Sets whether Geolocation is enabled.
* @param flag Whether Geolocation should be enabled.
- * @hide pending api council approval
*/
public synchronized void setGeolocationEnabled(boolean flag) {
if (mGeolocationEnabled != flag) {
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index d24a5ab..f479124 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -276,25 +276,6 @@
}
/**
- * Create a fake touch up event at (x,y) with respect to this WebTextView.
- * This is used by WebView to act as though a touch event which happened
- * before we placed the WebTextView actually hit it, so that it can place
- * the cursor accordingly.
- */
- /* package */ void fakeTouchEvent(float x, float y) {
- // We need to ensure that there is a Layout, since the Layout is used
- // in determining where to place the cursor.
- if (getLayout() == null) {
- measure(mWidthSpec, mHeightSpec);
- }
- // Create a fake touch up, which is used to place the cursor.
- MotionEvent ev = MotionEvent.obtain(0, 0, MotionEvent.ACTION_UP,
- x, y, 0);
- onTouchEvent(ev);
- ev.recycle();
- }
-
- /**
* Determine whether this WebTextView currently represents the node
* represented by ptr.
* @param ptr Pointer to a node to compare to.
@@ -457,7 +438,14 @@
int smallerSlop = slop/2;
if (dx > smallerSlop || dy > smallerSlop) {
if (mWebView != null) {
- mWebView.scrollFocusedTextInput(mScrollX, mScrollY);
+ float maxScrollX = (float) Touch.getMaxScrollX(this,
+ getLayout(), mScrollY);
+ if (DebugFlags.WEB_TEXT_VIEW) {
+ Log.v(LOGTAG, "onTouchEvent x=" + mScrollX + " y="
+ + mScrollY + " maxX=" + maxScrollX);
+ }
+ mWebView.scrollFocusedTextInput(maxScrollX > 0 ?
+ mScrollX / maxScrollX : 0, mScrollY);
}
mScrolled = true;
return true;
@@ -813,4 +801,14 @@
/* package */ void updateCachedTextfield() {
mWebView.updateCachedTextfield(getText().toString());
}
+
+ @Override
+ public boolean requestRectangleOnScreen(Rect rectangle) {
+ // don't scroll while in zoom animation. When it is done, we will adjust
+ // the WebTextView if it is in editing mode.
+ if (!mWebView.inAnimateZoom()) {
+ return super.requestRectangleOnScreen(rectangle);
+ }
+ return false;
+ }
}
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 3ce1815..68a9a92 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1111,6 +1111,12 @@
ArrayList<byte[]> history = new ArrayList<byte[]>(size);
for (int i = 0; i < size; i++) {
WebHistoryItem item = list.getItemAtIndex(i);
+ if (null == item) {
+ // FIXME: this shouldn't happen
+ // need to determine how item got set to null
+ Log.w(LOGTAG, "saveState: Unexpected null history item.");
+ return null;
+ }
byte[] data = item.getFlattenedData();
if (data == null) {
// It would be very odd to not have any data for a given history
@@ -1917,12 +1923,15 @@
int oldY = mScrollY;
mScrollX = pinLocX(mScrollX);
mScrollY = pinLocY(mScrollY);
- // android.util.Log.d("skia", "recordNewContentSize -
- // abortAnimation");
- abortAnimation(); // just in case
if (oldX != mScrollX || oldY != mScrollY) {
sendOurVisibleRect();
}
+ if (!mScroller.isFinished()) {
+ // We are in the middle of a scroll. Repin the final scroll
+ // position.
+ mScroller.setFinalX(pinLocX(mScroller.getFinalX()));
+ mScroller.setFinalY(pinLocY(mScroller.getFinalY()));
+ }
}
}
contentSizeChanged(updateLayout);
@@ -2480,6 +2489,7 @@
// Log.d(LOGTAG, "startScroll: " + dx + " " + dy);
mScroller.startScroll(mScrollX, mScrollY, dx, dy,
animationDuration > 0 ? animationDuration : computeDuration(dx, dy));
+ awakenScrollBars(mScroller.getDuration());
invalidate();
} else {
abortAnimation(); // just in case
@@ -2813,6 +2823,10 @@
}
}
+ boolean inAnimateZoom() {
+ return mZoomScale != 0;
+ }
+
/**
* Need to adjust the WebTextView after a change in zoom, since mActualScale
* has changed. This is especially important for password fields, which are
@@ -2999,17 +3013,6 @@
if (mWebTextView == null) return;
imm.showSoftInput(mWebTextView, 0);
- // Now we need to fake a touch event to place the cursor where the
- // user touched.
- AbsoluteLayout.LayoutParams lp = (AbsoluteLayout.LayoutParams)
- mWebTextView.getLayoutParams();
- if (lp != null) {
- // Take the last touch and adjust for the location of the
- // WebTextView.
- float x = mLastTouchX + (float) (mScrollX - lp.x);
- float y = mLastTouchY + (float) (mScrollY - lp.y);
- mWebTextView.fakeTouchEvent(x, y);
- }
if (mInZoomOverview) {
// if in zoom overview mode, call doDoubleTap() to bring it back
// to normal mode so that user can enter text.
@@ -3587,9 +3590,13 @@
// update mMinZoomScale if the minimum zoom scale is not fixed
if (!mMinZoomScaleFixed) {
- mMinZoomScale = (float) getViewWidth()
+ // when change from narrow screen to wide screen, the new viewWidth
+ // can be wider than the old content width. We limit the minimum
+ // scale to 1.0f. The proper minimum scale will be calculated when
+ // the new picture shows up.
+ mMinZoomScale = Math.min(1.0f, (float) getViewWidth()
/ (mDrawHistory ? mHistoryPicture.getWidth()
- : mZoomOverviewWidth);
+ : mZoomOverviewWidth));
}
// we always force, in case our height changed, in which case we still
@@ -3685,6 +3692,7 @@
switch (action) {
case MotionEvent.ACTION_DOWN: {
+ mPreventDrag = PREVENT_DRAG_NO;
if (!mScroller.isFinished()) {
// stop the current scroll animation, but if this is
// the start of a fling, allow it to add to the current
@@ -3892,19 +3900,15 @@
mTouchMode = TOUCH_DONE_MODE;
doDoubleTap();
break;
- case TOUCH_SHORTPRESS_START_MODE:
- case TOUCH_SHORTPRESS_MODE:
- mPrivateHandler.removeMessages(SWITCH_TO_SHORTPRESS);
- mPrivateHandler.removeMessages(SWITCH_TO_LONGPRESS);
- mTouchMode = TOUCH_DONE_MODE;
- doShortPress();
- break;
case TOUCH_SELECT_MODE:
commitCopy();
mTouchSelection = false;
break;
case TOUCH_INIT_MODE: // tap
+ case TOUCH_SHORTPRESS_START_MODE:
+ case TOUCH_SHORTPRESS_MODE:
mPrivateHandler.removeMessages(SWITCH_TO_SHORTPRESS);
+ mPrivateHandler.removeMessages(SWITCH_TO_LONGPRESS);
if ((deltaX * deltaX + deltaY * deltaY) > mTouchSlopSquare) {
Log.w(LOGTAG, "Miss a drag as we are waiting for" +
" WebCore's response for touch down.");
@@ -3924,10 +3928,15 @@
mPreventDrag = PREVENT_DRAG_NO;
}
if (mPreventDrag == PREVENT_DRAG_NO) {
- mPrivateHandler.sendMessageDelayed(
- mPrivateHandler.obtainMessage(
- RELEASE_SINGLE_TAP),
- ViewConfiguration.getDoubleTapTimeout());
+ if (mTouchMode == TOUCH_INIT_MODE) {
+ mPrivateHandler.sendMessageDelayed(
+ mPrivateHandler.obtainMessage(
+ RELEASE_SINGLE_TAP),
+ ViewConfiguration.getDoubleTapTimeout());
+ } else {
+ mTouchMode = TOUCH_DONE_MODE;
+ doShortPress();
+ }
}
break;
}
@@ -4320,6 +4329,7 @@
// resume the webcore update.
final int time = mScroller.getDuration();
mPrivateHandler.sendEmptyMessageDelayed(RESUME_WEBCORE_UPDATE, time);
+ awakenScrollBars(time);
invalidate();
}
@@ -4490,18 +4500,19 @@
/**
* Scroll the focused text field/area to match the WebTextView
- * @param x New x position of the WebTextView in view coordinates
+ * @param xPercent New x position of the WebTextView from 0 to 1.
* @param y New y position of the WebTextView in view coordinates
*/
- /*package*/ void scrollFocusedTextInput(int x, int y) {
+ /*package*/ void scrollFocusedTextInput(float xPercent, int y) {
if (!inEditingMode() || mWebViewCore == null) {
return;
}
- mWebViewCore.sendMessage(EventHub.SCROLL_TEXT_INPUT, viewToContentX(x),
+ mWebViewCore.sendMessage(EventHub.SCROLL_TEXT_INPUT,
// Since this position is relative to the top of the text input
// field, we do not need to take the title bar's height into
// consideration.
- viewToContentDimension(y));
+ viewToContentDimension(y),
+ new Float(xPercent));
}
/**
@@ -4832,6 +4843,10 @@
> INVAL_RECT_MSG_ID ? Integer.toString(msg.what)
: HandlerDebugString[msg.what - REMEMBER_PASSWORD]);
}
+ if (mWebViewCore == null) {
+ // after WebView's destroy() is called, skip handling messages.
+ return;
+ }
switch (msg.what) {
case REMEMBER_PASSWORD: {
mDatabase.setUsernamePassword(
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 53024d6..86685fb 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -311,10 +311,13 @@
});
}
- protected String[] populateVisitedLinks() {
- // FIXME: getVisitedHistory needs permission and host may not have.
-// return Browser.getVisitedHistory(mContext.getContentResolver());
- return new String[0];
+ protected void populateVisitedLinks() {
+ ValueCallback callback = new ValueCallback<String[]>() {
+ public void onReceiveValue(String[] value) {
+ sendMessage(EventHub.POPULATE_VISITED_LINKS, (Object)value);
+ }
+ };
+ mCallbackProxy.getVisitedHistory(callback);
}
/**
@@ -531,6 +534,11 @@
*/
private native void nativeGeolocationPermissionsProvide(String origin, boolean allow, boolean remember);
+ /**
+ * Provide WebCore with the previously visted links from the history database
+ */
+ private native void nativeProvideVisitedHistory(String[] history);
+
// EventHub for processing messages
private final EventHub mEventHub;
// WebCore thread handler
@@ -811,6 +819,8 @@
// Geolocation
static final int GEOLOCATION_PERMISSIONS_PROVIDE = 180;
+ static final int POPULATE_VISITED_LINKS = 181;
+
// private message ids
private static final int DESTROY = 200;
@@ -872,7 +882,8 @@
break;
case SCROLL_TEXT_INPUT:
- nativeScrollFocusedTextInput(msg.arg1, msg.arg2);
+ nativeScrollFocusedTextInput(
+ ((Float) msg.obj).floatValue(), msg.arg1);
break;
case LOAD_URL:
@@ -1233,6 +1244,10 @@
((Message) msg.obj).sendToTarget();
}
break;
+
+ case POPULATE_VISITED_LINKS:
+ nativeProvideVisitedHistory((String[])msg.obj);
+ break;
}
}
};
@@ -1980,6 +1995,13 @@
data.mTextWrapWidth = data.mWidth;
data.mScale = -1.0f;
data.mIgnoreHeight = false;
+ // send VIEW_SIZE_CHANGED to the front of the queue so that we can
+ // avoid pushing the wrong picture to the WebView side. If there is
+ // a VIEW_SIZE_CHANGED in the queue, probably from WebView side,
+ // ignore it as we have a new size. If we leave VIEW_SIZE_CHANGED
+ // in the queue, as mLastHeightSent has been updated here, we may
+ // miss the requestLayout in WebView side after the new picture.
+ mEventHub.removeMessages(EventHub.VIEW_SIZE_CHANGED);
mEventHub.sendMessageAtFrontOfQueue(Message.obtain(null,
EventHub.VIEW_SIZE_CHANGED, data));
} else if (mSettings.getUseWideViewPort()) {
@@ -2001,6 +2023,9 @@
data.mTextWrapWidth = Math.round(webViewWidth
/ mRestoreState.mTextWrapScale);
data.mIgnoreHeight = false;
+ // send VIEW_SIZE_CHANGED to the front of the queue so that we
+ // can avoid pushing the wrong picture to the WebView side.
+ mEventHub.removeMessages(EventHub.VIEW_SIZE_CHANGED);
mEventHub.sendMessageAtFrontOfQueue(Message.obtain(null,
EventHub.VIEW_SIZE_CHANGED, data));
}
@@ -2066,9 +2091,9 @@
private native void nativeUpdateFrameCacheIfLoading();
/**
- * Scroll the focused textfield to (x, y) in document space
+ * Scroll the focused textfield to (xPercent, y) in document space
*/
- private native void nativeScrollFocusedTextInput(int x, int y);
+ private native void nativeScrollFocusedTextInput(float xPercent, int y);
// these must be in document space (i.e. not scaled/zoomed).
private native void nativeSetScrollOffset(int gen, int dx, int dy);
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index b242b58..165794a 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -2444,7 +2444,9 @@
if (spaceAbove >= absIncrementalDeltaY && spaceBelow >= absIncrementalDeltaY) {
hideSelector();
offsetChildrenTopAndBottom(incrementalDeltaY);
- invalidate();
+ if (!awakenScrollBars()) {
+ invalidate();
+ }
mMotionViewNewTop = mMotionViewOriginalTop + deltaY;
} else {
final int firstPosition = mFirstPosition;
@@ -2527,6 +2529,7 @@
mBlockLayoutRequests = false;
invokeOnItemScrollListener();
+ awakenScrollBars();
}
}
diff --git a/core/java/android/widget/FasttrackBadgeWidget.java b/core/java/android/widget/FasttrackBadgeWidget.java
index 8c8e054..ba8539f 100644
--- a/core/java/android/widget/FasttrackBadgeWidget.java
+++ b/core/java/android/widget/FasttrackBadgeWidget.java
@@ -33,6 +33,7 @@
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
+import com.android.internal.R;
/**
* Widget used to show an image with the standard fasttrack badge
@@ -48,6 +49,7 @@
private int mMode;
private QueryHandler mQueryHandler;
private Drawable mBadgeBackground;
+ private Drawable mNoBadgeBackground;
protected String[] mExcludeMimes = null;
@@ -119,7 +121,10 @@
private void onContactUriChanged() {
if (mContactUri == null && mContactEmail == null && mContactPhone == null) {
- setBackgroundDrawable(null);
+ if (mNoBadgeBackground == null) {
+ mNoBadgeBackground = getResources().getDrawable(R.drawable.fasttrack_nobadge);
+ }
+ setBackgroundDrawable(mNoBadgeBackground);
} else {
setBackgroundDrawable(mBadgeBackground);
}
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java
index 33e83c3..ffe9908 100644
--- a/core/java/android/widget/GridView.java
+++ b/core/java/android/widget/GridView.java
@@ -220,6 +220,8 @@
selectedView = temp;
}
+ // mReferenceView will change with each call to makeRow()
+ // do not cache in a local variable outside of this loop
nextTop = mReferenceView.getBottom() + mVerticalSpacing;
pos += mNumColumns;
@@ -233,7 +235,8 @@
final int horizontalSpacing = mHorizontalSpacing;
int last;
- int nextLeft = mListPadding.left + ((mStretchMode == STRETCH_SPACING_UNIFORM) ? horizontalSpacing : 0);
+ int nextLeft = mListPadding.left +
+ ((mStretchMode == STRETCH_SPACING_UNIFORM) ? horizontalSpacing : 0);
if (!mStackFromBottom) {
last = Math.min(startPos + mNumColumns, mItemCount);
@@ -252,16 +255,14 @@
final boolean inClick = touchModeDrawsInPressedState();
final int selectedPosition = mSelectedPosition;
- mReferenceView = null;
-
+ View child = null;
for (int pos = startPos; pos < last; pos++) {
// is this the selected item?
boolean selected = pos == selectedPosition;
// does the list view have focus or contain focus
final int where = flow ? -1 : pos - startPos;
- final View child = makeAndAddView(pos, y, flow, nextLeft, selected, where);
- mReferenceView = child;
+ child = makeAndAddView(pos, y, flow, nextLeft, selected, where);
nextLeft += columnWidth;
if (pos < last - 1) {
@@ -273,6 +274,8 @@
}
}
+ mReferenceView = child;
+
if (selectedView != null) {
mReferenceViewInSelectedRow = mReferenceView;
}
@@ -465,6 +468,11 @@
mFirstPosition = motionRowStart;
final View referenceView = mReferenceView;
+ // We didn't have anything to layout, bail out
+ if (referenceView == null) {
+ return null;
+ }
+
final int verticalSpacing = mVerticalSpacing;
View above;
@@ -1150,7 +1158,7 @@
mSelectedTop = sel.getTop();
} else if (mTouchMode > TOUCH_MODE_DOWN && mTouchMode < TOUCH_MODE_SCROLL) {
View child = getChildAt(mMotionPosition - mFirstPosition);
- positionSelector(child);
+ if (child != null) positionSelector(child);
} else {
mSelectedTop = 0;
mSelectorRect.setEmpty();
@@ -1340,8 +1348,23 @@
*/
@Override
void setSelectionInt(int position) {
+ int previousSelectedPosition = mNextSelectedPosition;
+
setNextSelectedPositionInt(position);
layoutChildren();
+
+ final int next = mStackFromBottom ? mItemCount - 1 - mNextSelectedPosition :
+ mNextSelectedPosition;
+ final int previous = mStackFromBottom ? mItemCount - 1
+ - previousSelectedPosition : previousSelectedPosition;
+
+ final int nextRow = next / mNumColumns;
+ final int previousRow = previous / mNumColumns;
+
+ if (nextRow != previousRow) {
+ awakenScrollBars();
+ }
+
}
@Override
@@ -1471,6 +1494,7 @@
if (nextPage >= 0) {
setSelectionInt(nextPage);
invokeOnItemScrollListener();
+ awakenScrollBars();
return true;
}
@@ -1497,6 +1521,10 @@
invokeOnItemScrollListener();
moved = true;
}
+
+ if (moved) {
+ awakenScrollBars();
+ }
return moved;
}
@@ -1563,6 +1591,10 @@
invokeOnItemScrollListener();
}
+ if (moved) {
+ awakenScrollBars();
+ }
+
return moved;
}
diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java
index 46e514c..52f56a7 100644
--- a/core/java/android/widget/HorizontalScrollView.java
+++ b/core/java/android/widget/HorizontalScrollView.java
@@ -829,6 +829,7 @@
long duration = AnimationUtils.currentAnimationTimeMillis() - mLastScroll;
if (duration > ANIMATED_SCROLL_GAP) {
mScroller.startScroll(mScrollX, mScrollY, dx, dy);
+ awakenScrollBars(mScroller.getDuration());
invalidate();
} else {
if (!mScroller.isFinished()) {
@@ -1172,6 +1173,7 @@
mScrollViewMovedFocus = false;
}
+ awakenScrollBars(mScroller.getDuration());
invalidate();
}
}
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java
index 41c9267..7c8151e 100644
--- a/core/java/android/widget/ListView.java
+++ b/core/java/android/widget/ListView.java
@@ -1567,7 +1567,7 @@
} else {
if (mTouchMode > TOUCH_MODE_DOWN && mTouchMode < TOUCH_MODE_SCROLL) {
View child = getChildAt(mMotionPosition - mFirstPosition);
- positionSelector(child);
+ if (child != null) positionSelector(child);
} else {
mSelectedTop = 0;
mSelectorRect.setEmpty();
@@ -1818,13 +1818,29 @@
/**
* Makes the item at the supplied position selected.
- *
+ *
* @param position the position of the item to select
*/
@Override
void setSelectionInt(int position) {
setNextSelectedPositionInt(position);
+ boolean awakeScrollbars = false;
+
+ final int selectedPosition = mSelectedPosition;
+
+ if (selectedPosition >= 0) {
+ if (position == selectedPosition - 1) {
+ awakeScrollbars = true;
+ } else if (position == selectedPosition + 1) {
+ awakeScrollbars = true;
+ }
+ }
+
layoutChildren();
+
+ if (awakeScrollbars) {
+ awakenScrollBars();
+ }
}
/**
@@ -2084,7 +2100,9 @@
setSelectionInt(position);
invokeOnItemScrollListener();
- invalidate();
+ if (!awakenScrollBars()) {
+ invalidate();
+ }
return true;
}
@@ -2125,7 +2143,8 @@
}
}
- if (moved) {
+ if (moved && !awakenScrollBars()) {
+ awakenScrollBars();
invalidate();
}
@@ -2270,7 +2289,9 @@
positionSelector(selectedView);
mSelectedTop = selectedView.getTop();
}
- invalidate();
+ if (!awakenScrollBars()) {
+ invalidate();
+ }
invokeOnItemScrollListener();
return true;
}
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 8ef65db..6771711 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -143,7 +143,7 @@
Intent.FLAG_ACTIVITY_NEW_TASK,
Intent.FLAG_ACTIVITY_NEW_TASK, 0);
} catch (IntentSender.SendIntentException e) {
- throw new ActionException(e.toString());
+ android.util.Log.e(LOG_TAG, "Cannot send pending intent: ", e);
}
}
};
diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java
index 31c7814..24d97a5 100644
--- a/core/java/android/widget/ScrollView.java
+++ b/core/java/android/widget/ScrollView.java
@@ -832,6 +832,7 @@
long duration = AnimationUtils.currentAnimationTimeMillis() - mLastScroll;
if (duration > ANIMATED_SCROLL_GAP) {
mScroller.startScroll(mScrollX, mScrollY, dx, dy);
+ awakenScrollBars(mScroller.getDuration());
invalidate();
} else {
if (!mScroller.isFinished()) {
@@ -1175,6 +1176,7 @@
mScrollViewMovedFocus = false;
}
+ awakenScrollBars(mScroller.getDuration());
invalidate();
}
}
diff --git a/core/java/android/widget/TabHost.java b/core/java/android/widget/TabHost.java
index ee3b91e..31920e7 100644
--- a/core/java/android/widget/TabHost.java
+++ b/core/java/android/widget/TabHost.java
@@ -20,6 +20,7 @@
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
+import android.os.Build;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -28,11 +29,12 @@
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.Window;
-import com.android.internal.R;
import java.util.ArrayList;
import java.util.List;
+import com.android.internal.R;
+
/**
* Container for a tabbed window view. This object holds two children: a set of tab labels that the
* user clicks to select a specific tab, and a FrameLayout object that displays the contents of that
@@ -497,17 +499,22 @@
}
public View createIndicatorView() {
+ final Context context = getContext();
LayoutInflater inflater =
- (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View tabIndicator = inflater.inflate(R.layout.tab_indicator,
mTabWidget, // tab widget is the parent
false); // no inflate params
- // TODO: Move this to xml when bug 2068024 is resolved.
- tabIndicator.getBackground().setDither(true);
final TextView tv = (TextView) tabIndicator.findViewById(R.id.title);
tv.setText(mLabel);
+ if (context.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.DONUT) {
+ // Donut apps get old color scheme
+ tabIndicator.setBackgroundResource(R.drawable.tab_indicator_v4);
+ tv.setTextColor(context.getResources().getColorStateList(R.color.tab_indicator_text_v4));
+ }
+
return tabIndicator;
}
}
@@ -526,13 +533,12 @@
}
public View createIndicatorView() {
+ final Context context = getContext();
LayoutInflater inflater =
- (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View tabIndicator = inflater.inflate(R.layout.tab_indicator,
mTabWidget, // tab widget is the parent
false); // no inflate params
- // TODO: Move this to xml when bug 2068024 is resolved.
- tabIndicator.getBackground().setDither(true);
final TextView tv = (TextView) tabIndicator.findViewById(R.id.title);
tv.setText(mLabel);
@@ -540,6 +546,12 @@
final ImageView iconView = (ImageView) tabIndicator.findViewById(R.id.icon);
iconView.setImageDrawable(mIcon);
+ if (context.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.DONUT) {
+ // Donut apps get old color scheme
+ tabIndicator.setBackgroundResource(R.drawable.tab_indicator_v4);
+ tv.setTextColor(context.getResources().getColorStateList(R.color.tab_indicator_text_v4));
+ }
+
return tabIndicator;
}
}
diff --git a/core/java/android/widget/TabWidget.java b/core/java/android/widget/TabWidget.java
index 889f37f..2ba6268 100644
--- a/core/java/android/widget/TabWidget.java
+++ b/core/java/android/widget/TabWidget.java
@@ -16,11 +16,15 @@
package android.widget;
+import com.android.internal.R;
+
import android.content.Context;
+import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
+import android.os.Build;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
@@ -94,10 +98,24 @@
setOrientation(LinearLayout.HORIZONTAL);
mGroupFlags |= FLAG_USE_CHILD_DRAWING_ORDER;
- mBottomLeftStrip = mContext.getResources().getDrawable(
- com.android.internal.R.drawable.tab_bottom_left);
- mBottomRightStrip = mContext.getResources().getDrawable(
- com.android.internal.R.drawable.tab_bottom_right);
+ final Context context = mContext;
+ final Resources resources = context.getResources();
+
+ if (context.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.DONUT) {
+ // Donut apps get old color scheme
+ mBottomLeftStrip = resources.getDrawable(
+ com.android.internal.R.drawable.tab_bottom_left_v4);
+ mBottomRightStrip = resources.getDrawable(
+ com.android.internal.R.drawable.tab_bottom_right_v4);
+ } else {
+ // Use modern color scheme for Eclair and beyond
+ mBottomLeftStrip = resources.getDrawable(
+ com.android.internal.R.drawable.tab_bottom_left);
+ mBottomRightStrip = resources.getDrawable(
+ com.android.internal.R.drawable.tab_bottom_right);
+ }
+
+
// Deal with focus, as we don't want the focus to go by default
// to a tab other than the current tab
setFocusable(true);
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 3c61c1c..bf3d26e 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -328,11 +328,16 @@
mTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.density = getResources().getDisplayMetrics().density;
+ mTextPaint.setCompatibilityScaling(
+ getResources().getCompatibilityInfo().applicationScale);
+
// If we get the paint from the skin, we should set it to left, since
// the layout always wants it to be left.
// mTextPaint.setTextAlign(Paint.Align.LEFT);
mHighlightPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ mHighlightPaint.setCompatibilityScaling(
+ getResources().getCompatibilityInfo().applicationScale);
mMovement = getDefaultMovementMethod();
mTransformation = null;
@@ -2884,6 +2889,9 @@
setTransformationMethod(PasswordTransformationMethod.getInstance());
setTypefaceByIndex(MONOSPACE, 0);
} else if (isVisiblePassword) {
+ if (mTransformation == PasswordTransformationMethod.getInstance()) {
+ forceUpdate = true;
+ }
setTypefaceByIndex(MONOSPACE, 0);
} else if (wasPassword || wasVisiblePassword) {
// not in password mode, clean up typeface and transformation
@@ -5572,6 +5580,7 @@
if (duration > ANIMATED_SCROLL_GAP) {
mScroller.startScroll(mScrollX, mScrollY, dx, dy);
+ awakenScrollBars(mScroller.getDuration());
invalidate();
} else {
if (!mScroller.isFinished()) {
diff --git a/core/java/com/android/internal/widget/ContactHeaderWidget.java b/core/java/com/android/internal/widget/ContactHeaderWidget.java
index 4f77aa2..0d25728 100644
--- a/core/java/com/android/internal/widget/ContactHeaderWidget.java
+++ b/core/java/com/android/internal/widget/ContactHeaderWidget.java
@@ -16,29 +16,34 @@
package com.android.internal.widget;
+import com.android.internal.R;
+
import android.Manifest;
import android.content.AsyncQueryHandler;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
-import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Resources;
+import android.content.res.Resources.NotFoundException;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.graphics.Rect;
import android.net.Uri;
import android.os.SystemClock;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.Intents;
import android.provider.ContactsContract.PhoneLookup;
-import android.provider.ContactsContract.Presence;
import android.provider.ContactsContract.RawContacts;
+import android.provider.ContactsContract.StatusUpdates;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.SocialContract.Activities;
+import android.text.TextUtils;
+import android.text.format.DateUtils;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
@@ -47,8 +52,6 @@
import android.widget.ImageView;
import android.widget.TextView;
-import com.android.internal.R;
-
/**
* Header used across system for displaying a title bar with contact info. You
* can bind specific values on the header, or use helper methods like
@@ -57,8 +60,7 @@
* The parent must request the {@link Manifest.permission#READ_CONTACTS}
* permission to access contact data.
*/
-public class ContactHeaderWidget extends FrameLayout implements View.OnClickListener,
- View.OnLongClickListener {
+public class ContactHeaderWidget extends FrameLayout implements View.OnClickListener {
private static final String TAG = "ContactHeaderWidget";
@@ -69,6 +71,7 @@
private FasttrackBadgeWidget mPhotoView;
private ImageView mPresenceView;
private TextView mStatusView;
+ private TextView mStatusAttributionView;
private int mNoPhotoResource;
private QueryHandler mQueryHandler;
@@ -82,37 +85,40 @@
* Interface for callbacks invoked when the user interacts with a header.
*/
public interface ContactHeaderListener {
- public void onPhotoLongClick(View view);
- public void onDisplayNameLongClick(View view);
+ public void onPhotoClick(View view);
+ public void onDisplayNameClick(View view);
}
private ContactHeaderListener mListener;
- //Projection used for the summary info in the header.
- protected static final String[] HEADER_PROJECTION = new String[] {
- Contacts.DISPLAY_NAME,
- Contacts.STARRED,
- Contacts.PHOTO_ID,
- Contacts.PRESENCE_STATUS,
- Contacts._ID,
- Contacts.LOOKUP_KEY,
- };
- protected static final int HEADER_DISPLAY_NAME_COLUMN_INDEX = 0;
- //TODO: We need to figure out how we're going to get the phonetic name.
- //static final int HEADER_PHONETIC_NAME_COLUMN_INDEX
- protected static final int HEADER_STARRED_COLUMN_INDEX = 1;
- protected static final int HEADER_PHOTO_ID_COLUMN_INDEX = 2;
- protected static final int HEADER_PRESENCE_STATUS_COLUMN_INDEX = 3;
- protected static final int HEADER_CONTACT_ID_COLUMN_INDEX = 4;
- protected static final int HEADER_LOOKUP_KEY_COLUMN_INDEX = 5;
- //Projection used for finding the most recent social status.
- protected static final String[] SOCIAL_PROJECTION = new String[] {
- Activities.TITLE,
- Activities.PUBLISHED,
- };
- protected static final int SOCIAL_TITLE_COLUMN_INDEX = 0;
- protected static final int SOCIAL_PUBLISHED_COLUMN_INDEX = 1;
+ private interface ContactQuery {
+ //Projection used for the summary info in the header.
+ String[] COLUMNS = new String[] {
+ Contacts._ID,
+ Contacts.LOOKUP_KEY,
+ Contacts.PHOTO_ID,
+ Contacts.DISPLAY_NAME,
+ Contacts.STARRED,
+ Contacts.CONTACT_PRESENCE,
+ Contacts.CONTACT_STATUS,
+ Contacts.CONTACT_STATUS_TIMESTAMP,
+ Contacts.CONTACT_STATUS_RES_PACKAGE,
+ Contacts.CONTACT_STATUS_LABEL,
+ };
+ int _ID = 0;
+ int LOOKUP_KEY = 1;
+ int PHOTO_ID = 2;
+ int DISPLAY_NAME = 3;
+ //TODO: We need to figure out how we're going to get the phonetic name.
+ //static final int HEADER_PHONETIC_NAME_COLUMN_INDEX
+ int STARRED = 4;
+ int CONTACT_PRESENCE_STATUS = 5;
+ int CONTACT_STATUS = 6;
+ int CONTACT_STATUS_TIMESTAMP = 7;
+ int CONTACT_STATUS_RES_PACKAGE = 8;
+ int CONTACT_STATUS_LABEL = 9;
+ }
//Projection used for looking up contact id from phone number
protected static final String[] PHONE_LOOKUP_PROJECTION = new String[] {
@@ -136,10 +142,8 @@
protected static final int CONTACT_LOOKUP_ID_COLUMN_INDEX = 0;
private static final int TOKEN_CONTACT_INFO = 0;
- private static final int TOKEN_SOCIAL = 1;
- private static final int TOKEN_PHONE_LOOKUP = 2;
- private static final int TOKEN_EMAIL_LOOKUP = 3;
- private static final int TOKEN_LOOKUP_CONTACT_FOR_SOCIAL_QUERY = 4;
+ private static final int TOKEN_PHONE_LOOKUP = 1;
+ private static final int TOKEN_EMAIL_LOOKUP = 2;
public ContactHeaderWidget(Context context) {
this(context, null);
@@ -159,7 +163,6 @@
inflater.inflate(R.layout.contact_header, this);
mDisplayNameView = (TextView) findViewById(R.id.name);
- mDisplayNameView.setOnLongClickListener(this);
mAggregateBadge = findViewById(R.id.aggregate_badge);
mAggregateBadge.setVisibility(View.GONE);
@@ -169,12 +172,11 @@
mStarredView.setOnClickListener(this);
mPhotoView = (FasttrackBadgeWidget) findViewById(R.id.photo);
- mPhotoView.setOnLongClickListener(this);
mPresenceView = (ImageView) findViewById(R.id.presence);
mStatusView = (TextView)findViewById(R.id.status);
- setSocialSnippet(null);
+ mStatusAttributionView = (TextView)findViewById(R.id.status_date);
// Set the photo with a random "no contact" image
long now = SystemClock.elapsedRealtime();
@@ -193,6 +195,11 @@
mQueryHandler = new QueryHandler(mContentResolver);
}
+ public void enableClickListeners() {
+ mDisplayNameView.setOnClickListener(this);
+ mPhotoView.setOnClickListener(this);
+ }
+
/**
* Set the given {@link ContactHeaderListener} to handle header events.
*/
@@ -200,28 +207,15 @@
mListener = listener;
}
- /** {@inheritDoc} */
- public boolean onLongClick(View v) {
- switch (v.getId()) {
- case R.id.photo:
- performPhotoLongClick();
- return true;
- case R.id.name:
- performDisplayNameLongClick();
- return true;
- }
- return false;
- }
-
- private void performPhotoLongClick() {
+ private void performPhotoClick() {
if (mListener != null) {
- mListener.onPhotoLongClick(mPhotoView);
+ mListener.onPhotoClick(mPhotoView);
}
}
- private void performDisplayNameLongClick() {
+ private void performDisplayNameClick() {
if (mListener != null) {
- mListener.onDisplayNameLongClick(mDisplayNameView);
+ mListener.onDisplayNameClick(mDisplayNameView);
}
}
@@ -240,11 +234,6 @@
invalidate();
break;
}
- case TOKEN_SOCIAL: {
- bindSocial(cursor);
- invalidate();
- break;
- }
case TOKEN_PHONE_LOOKUP: {
if (cursor != null && cursor.moveToFirst()) {
long contactId = cursor.getLong(PHONE_LOOKUP_CONTACT_ID_COLUMN_INDEX);
@@ -271,13 +260,6 @@
}
break;
}
- case TOKEN_LOOKUP_CONTACT_FOR_SOCIAL_QUERY: {
- if (cursor != null && cursor.moveToFirst()) {
- long contactId = cursor.getLong(CONTACT_LOOKUP_ID_COLUMN_INDEX);
- startSocialQuery(ContentUris.withAppendedId(
- Activities.CONTENT_CONTACT_STATUS_URI, contactId));
- }
- }
}
} finally {
if (cursor != null) {
@@ -313,7 +295,7 @@
* Manually set the presence.
*/
public void setPresence(int presence) {
- mPresenceView.setImageResource(Presence.getPresenceIconResourceId(presence));
+ mPresenceView.setImageResource(StatusUpdates.getPresenceIconResourceId(presence));
}
/**
@@ -371,6 +353,7 @@
*/
public void setExcludeMimes(String[] excludeMimes) {
mExcludeMimes = excludeMimes;
+ mPhotoView.setExcludeMimes(excludeMimes);
}
/**
@@ -381,11 +364,6 @@
*/
public void bindFromContactLookupUri(Uri contactLookupUri) {
mContactUri = contactLookupUri;
-
- // Query for the contactId so we can do the social query.
- mQueryHandler.startQuery(TOKEN_LOOKUP_CONTACT_FOR_SOCIAL_QUERY, null, contactLookupUri,
- CONTACT_LOOKUP_PROJECTION, null, null, null);
-
startContactQuery(contactLookupUri);
}
@@ -400,8 +378,6 @@
long contactId = ContentUris.parseId(contactUri);
startContactQuery(contactUri);
- startSocialQuery(ContentUris.withAppendedId(
- Activities.CONTENT_CONTACT_STATUS_URI, contactId));
}
/**
@@ -432,13 +408,8 @@
PHONE_LOOKUP_PROJECTION, null, null, null);
}
- private void startSocialQuery(Uri contactSocial) {
- mQueryHandler.startQuery(TOKEN_SOCIAL, null, contactSocial, SOCIAL_PROJECTION, null, null,
- null);
- }
-
private void startContactQuery(Uri contactUri) {
- mQueryHandler.startQuery(TOKEN_CONTACT_INFO, null, contactUri, HEADER_PROJECTION,
+ mQueryHandler.startQuery(TOKEN_CONTACT_INFO, null, contactUri, ContactQuery.COLUMNS,
null, null, null);
}
@@ -449,17 +420,17 @@
if (c == null || !c.moveToFirst()) return;
// TODO: Bring back phonetic name
- final String displayName = c.getString(HEADER_DISPLAY_NAME_COLUMN_INDEX);
- final long contactId = c.getLong(HEADER_CONTACT_ID_COLUMN_INDEX);
- final String lookupKey = c.getString(HEADER_LOOKUP_KEY_COLUMN_INDEX);
+ final String displayName = c.getString(ContactQuery.DISPLAY_NAME);
+ final long contactId = c.getLong(ContactQuery._ID);
+ final String lookupKey = c.getString(ContactQuery.LOOKUP_KEY);
final String phoneticName = null;
this.setDisplayName(displayName, null);
- final boolean starred = c.getInt(HEADER_STARRED_COLUMN_INDEX) != 0;
+ final boolean starred = c.getInt(ContactQuery.STARRED) != 0;
mStarredView.setChecked(starred);
//Set the photo
- Bitmap photoBitmap = loadContactPhoto(c.getLong(HEADER_PHOTO_ID_COLUMN_INDEX), null);
+ Bitmap photoBitmap = loadContactPhoto(c.getLong(ContactQuery.PHOTO_ID), null);
if (photoBitmap == null) {
photoBitmap = loadPlaceholderPhoto(null);
}
@@ -467,43 +438,109 @@
mPhotoView.assignContactUri(Contacts.getLookupUri(contactId, lookupKey));
//Set the presence status
- int presence = c.getInt(HEADER_PRESENCE_STATUS_COLUMN_INDEX);
- mPresenceView.setImageResource(Presence.getPresenceIconResourceId(presence));
- }
+ if (!c.isNull(ContactQuery.CONTACT_PRESENCE_STATUS)) {
+ int presence = c.getInt(ContactQuery.CONTACT_PRESENCE_STATUS);
+ mPresenceView.setImageResource(StatusUpdates.getPresenceIconResourceId(presence));
+ mPresenceView.setVisibility(View.VISIBLE);
+ } else {
+ mPresenceView.setVisibility(View.GONE);
+ }
- /**
- * Bind the social data provided by the given {@link Cursor}.
- */
- protected void bindSocial(Cursor c) {
- if (c == null || !c.moveToFirst()) return;
- final String status = c.getString(SOCIAL_TITLE_COLUMN_INDEX);
- this.setSocialSnippet(status);
+ //Set the status update
+ String status = c.getString(ContactQuery.CONTACT_STATUS);
+ if (!TextUtils.isEmpty(status)) {
+ mStatusView.setText(status);
+ mStatusView.setVisibility(View.VISIBLE);
+
+ CharSequence timestamp = null;
+
+ if (!c.isNull(ContactQuery.CONTACT_STATUS_TIMESTAMP)) {
+ long date = c.getLong(ContactQuery.CONTACT_STATUS_TIMESTAMP);
+
+ // Set the date/time field by mixing relative and absolute
+ // times.
+ int flags = DateUtils.FORMAT_ABBREV_RELATIVE;
+
+ timestamp = DateUtils.getRelativeTimeSpanString(date,
+ System.currentTimeMillis(), DateUtils.MINUTE_IN_MILLIS, flags);
+ }
+
+ String label = null;
+
+ if (!c.isNull(ContactQuery.CONTACT_STATUS_LABEL)) {
+ String resPackage = c.getString(ContactQuery.CONTACT_STATUS_RES_PACKAGE);
+ int labelResource = c.getInt(ContactQuery.CONTACT_STATUS_LABEL);
+ Resources resources;
+ if (TextUtils.isEmpty(resPackage)) {
+ resources = getResources();
+ } else {
+ PackageManager pm = getContext().getPackageManager();
+ try {
+ resources = pm.getResourcesForApplication(resPackage);
+ } catch (NameNotFoundException e) {
+ Log.w(TAG, "Contact status update resource package not found: "
+ + resPackage);
+ resources = null;
+ }
+ }
+
+ if (resources != null) {
+ try {
+ label = resources.getString(labelResource);
+ } catch (NotFoundException e) {
+ Log.w(TAG, "Contact status update resource not found: " + resPackage + "@"
+ + labelResource);
+ }
+ }
+ }
+
+ CharSequence attribution;
+ if (timestamp != null && label != null) {
+ attribution = getContext().getString(
+ R.string.contact_status_update_attribution_with_date,
+ timestamp, label);
+ } else if (timestamp == null && label != null) {
+ attribution = getContext().getString(
+ R.string.contact_status_update_attribution,
+ label);
+ } else if (timestamp != null) {
+ attribution = timestamp;
+ } else {
+ attribution = null;
+ }
+ if (attribution != null) {
+ mStatusAttributionView.setText(attribution);
+ mStatusAttributionView.setVisibility(View.VISIBLE);
+ } else {
+ mStatusAttributionView.setVisibility(View.GONE);
+ }
+ } else {
+ mStatusView.setVisibility(View.GONE);
+ mStatusAttributionView.setVisibility(View.GONE);
+ }
}
public void onClick(View view) {
- // Make sure there is a contact
- if (mContactUri == null) {
- return;
+ switch (view.getId()) {
+ case R.id.star: {
+ // Toggle "starred" state
+ // Make sure there is a contact
+ if (mContactUri != null) {
+ final ContentValues values = new ContentValues(1);
+ values.put(Contacts.STARRED, mStarredView.isChecked());
+ mContentResolver.update(mContactUri, values, null, null);
+ }
+ break;
+ }
+ case R.id.photo: {
+ performPhotoClick();
+ break;
+ }
+ case R.id.name: {
+ performDisplayNameClick();
+ break;
+ }
}
-
- if (view.getId() == R.id.star) {
- // Toggle "starred" state
- final ContentValues values = new ContentValues(1);
- values.put(Contacts.STARRED, mStarredView.isChecked());
- mContentResolver.update(mContactUri, values, null, null);
- }
- }
-
- private Rect getTargetRect(View anchor) {
- final int[] location = new int[2];
- anchor.getLocationOnScreen(location);
-
- final Rect rect = new Rect();
- rect.left = location[0];
- rect.top = location[1];
- rect.right = rect.left + anchor.getWidth();
- rect.bottom = rect.top + anchor.getHeight();
- return rect;
}
private Bitmap loadContactPhoto(long photoId, BitmapFactory.Options options) {
diff --git a/core/java/com/android/internal/widget/LockPatternView.java b/core/java/com/android/internal/widget/LockPatternView.java
index cfcf111..6adce6d 100644
--- a/core/java/com/android/internal/widget/LockPatternView.java
+++ b/core/java/com/android/internal/widget/LockPatternView.java
@@ -20,6 +20,7 @@
import com.android.internal.R;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
@@ -34,6 +35,7 @@
import android.os.SystemClock;
import android.os.Vibrator;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
@@ -49,7 +51,7 @@
*/
public class LockPatternView extends View {
// Vibrator pattern for creating a tactile bump
- private static final long[] VIBE_PATTERN = {0, 1, 40, 41};
+ private static final long[] DEFAULT_VIBE_PATTERN = {0, 1, 40, 41};
private static final boolean PROFILE_DRAWING = false;
private boolean mDrawingProfilingStarted = false;
@@ -118,6 +120,8 @@
private Vibrator vibe; // Vibrator for creating tactile feedback
+ private long[] mVibePattern;
+
/**
* Represents a cell in the 3 X 3 matrix of the unlock pattern view.
*/
@@ -213,6 +217,12 @@
void onPatternCleared();
/**
+ * The user extended the pattern currently being drawn by one cell.
+ * @param pattern The pattern with newly added cell.
+ */
+ void onPatternCellAdded(List<Cell> pattern);
+
+ /**
* A pattern was detected from the user.
* @param pattern The pattern.
*/
@@ -250,6 +260,27 @@
// we assume all bitmaps have the same size
mBitmapWidth = mBitmapBtnDefault.getWidth();
mBitmapHeight = mBitmapBtnDefault.getHeight();
+
+ // allow vibration pattern to be customized
+ mVibePattern = loadVibratePattern(com.android.internal.R.array.config_virtualKeyVibePattern);
+ }
+
+ private long[] loadVibratePattern(int id) {
+ int[] pattern = null;
+ try {
+ pattern = getResources().getIntArray(id);
+ } catch (Resources.NotFoundException e) {
+ Log.e("LockPatternView", "Vibrate pattern missing, using default", e);
+ }
+ if (pattern == null) {
+ return DEFAULT_VIBE_PATTERN;
+ }
+
+ long[] tmpPattern = new long[pattern.length];
+ for (int i = 0; i < pattern.length; i++) {
+ tmpPattern[i] = pattern[i];
+ }
+ return tmpPattern;
}
private Bitmap getBitmapFor(int resId) {
@@ -437,7 +468,7 @@
}
addCellToPattern(cell);
if (mTactileFeedbackEnabled){
- vibe.vibrate(VIBE_PATTERN, -1); // Generate tactile feedback
+ vibe.vibrate(mVibePattern, -1); // Generate tactile feedback
}
return cell;
}
@@ -447,6 +478,9 @@
private void addCellToPattern(Cell newCell) {
mPatternDrawLookup[newCell.getRow()][newCell.getColumn()] = true;
mPattern.add(newCell);
+ if (mOnPatternListener != null) {
+ mOnPatternListener.onPatternCellAdded(mPattern);
+ }
}
// helper method to find which cell a point maps to
diff --git a/core/java/com/google/android/mms/pdu/PduComposer.java b/core/java/com/google/android/mms/pdu/PduComposer.java
index 2aa5e48..8940945 100644
--- a/core/java/com/google/android/mms/pdu/PduComposer.java
+++ b/core/java/com/google/android/mms/pdu/PduComposer.java
@@ -850,8 +850,7 @@
PositionMarker ctStart = mStack.mark();
// This contentTypeIdentifier should be used for type of attachment...
- String contentType = new String(
- mPduHeader.getTextString(PduHeaders.CONTENT_TYPE));
+ String contentType = new String(mPduHeader.getTextString(PduHeaders.CONTENT_TYPE));
Integer contentTypeIdentifier = mContentTypeMap.get(contentType);
if (contentTypeIdentifier == null) {
// content type is mandatory
@@ -862,7 +861,7 @@
// content-type parameter: start
PduBody body = ((SendReq) mPdu).getBody();
- if (null == body) {
+ if (null == body || body.getPartsNum() == 0) {
// empty message
appendUintvarInteger(0);
mStack.pop();
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp
index 6b7f045..780badc 100644
--- a/core/jni/android/graphics/Paint.cpp
+++ b/core/jni/android/graphics/Paint.cpp
@@ -569,11 +569,11 @@
{"descent","()F", (void*) SkPaintGlue::descent},
{"getFontMetrics", "(Landroid/graphics/Paint$FontMetrics;)F", (void*)SkPaintGlue::getFontMetrics},
{"getFontMetricsInt", "(Landroid/graphics/Paint$FontMetricsInt;)I", (void*)SkPaintGlue::getFontMetricsInt},
- {"measureText","([CII)F", (void*) SkPaintGlue::measureText_CII},
- {"measureText","(Ljava/lang/String;)F", (void*) SkPaintGlue::measureText_String},
- {"measureText","(Ljava/lang/String;II)F", (void*) SkPaintGlue::measureText_StringII},
- {"breakText","([CIIF[F)I", (void*) SkPaintGlue::breakTextC},
- {"breakText","(Ljava/lang/String;ZF[F)I", (void*) SkPaintGlue::breakTextS},
+ {"native_measureText","([CII)F", (void*) SkPaintGlue::measureText_CII},
+ {"native_measureText","(Ljava/lang/String;)F", (void*) SkPaintGlue::measureText_String},
+ {"native_measureText","(Ljava/lang/String;II)F", (void*) SkPaintGlue::measureText_StringII},
+ {"native_breakText","([CIIF[F)I", (void*) SkPaintGlue::breakTextC},
+ {"native_breakText","(Ljava/lang/String;ZF[F)I", (void*) SkPaintGlue::breakTextS},
{"native_getTextWidths","(I[CII[F)I", (void*) SkPaintGlue::getTextWidths___CII_F},
{"native_getTextWidths","(ILjava/lang/String;II[F)I", (void*) SkPaintGlue::getTextWidths__StringII_F},
{"native_getTextPath","(I[CIIFFI)V", (void*) SkPaintGlue::getTextPath___CIIFFPath},
diff --git a/core/jni/android_bluetooth_BluetoothSocket.cpp b/core/jni/android_bluetooth_BluetoothSocket.cpp
index 70d74d52..2532eff 100644
--- a/core/jni/android_bluetooth_BluetoothSocket.cpp
+++ b/core/jni/android_bluetooth_BluetoothSocket.cpp
@@ -402,7 +402,6 @@
return -1;
}
-/** jb must not be null. offset and offset+length must be within array */
static jint readNative(JNIEnv *env, jobject obj, jbyteArray jb, jint offset,
jint length) {
#ifdef HAVE_BLUETOOTH
@@ -410,10 +409,20 @@
int ret;
jbyte *b;
+ int sz;
struct asocket *s = get_socketData(env, obj);
if (!s)
return -1;
+ if (jb == NULL) {
+ jniThrowIOException(env, EINVAL);
+ return -1;
+ }
+ sz = env->GetArrayLength(jb);
+ if (offset < 0 || length < 0 || offset + length > sz) {
+ jniThrowIOException(env, EINVAL);
+ return -1;
+ }
b = env->GetByteArrayElements(jb, NULL);
if (b == NULL) {
@@ -436,7 +445,6 @@
return -1;
}
-/** jb must not be null. offset and offset+length must be within array */
static jint writeNative(JNIEnv *env, jobject obj, jbyteArray jb, jint offset,
jint length) {
#ifdef HAVE_BLUETOOTH
@@ -444,10 +452,20 @@
int ret;
jbyte *b;
+ int sz;
struct asocket *s = get_socketData(env, obj);
if (!s)
return -1;
+ if (jb == NULL) {
+ jniThrowIOException(env, EINVAL);
+ return -1;
+ }
+ sz = env->GetArrayLength(jb);
+ if (offset < 0 || length < 0 || offset + length > sz) {
+ jniThrowIOException(env, EINVAL);
+ return -1;
+ }
b = env->GetByteArrayElements(jb, NULL);
if (b == NULL) {
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 9cf5324..47807c4 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -342,11 +342,8 @@
<!-- ================================== -->
<eat-comment />
- <!-- Permissions for direct access to Google accounts.
- Note that while right now this is only used for Google accounts,
- we expect in the future to have a more general account management
- facility so this is specified as a general platform permission
- group for accessing accounts. -->
+ <!-- Permissions for direct access to the accounts managed
+ by the Account Manager. -->
<permission-group android:name="android.permission-group.ACCOUNTS"
android:label="@string/permgrouplab_accounts"
android:description="@string/permgroupdesc_accounts" />
@@ -1123,10 +1120,11 @@
android:protectionLevel="signature" />
<!-- Allows applications to set a live wallpaper.
- @hide -->
+ @hide XXX Change to signature once the picker is moved to its
+ own apk as Ghod Intended. -->
<permission android:name="android.permission.SET_WALLPAPER_COMPONENT"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="signature" />
+ android:protectionLevel="signatureOrSystem" />
<application android:process="system"
android:persistent="true"
diff --git a/core/res/res/color/tab_indicator_text_v4.xml b/core/res/res/color/tab_indicator_text_v4.xml
new file mode 100644
index 0000000..4f4e394
--- /dev/null
+++ b/core/res/res/color/tab_indicator_text_v4.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_selected="true" android:color="#808080"/>
+ <item android:color="#FFFFFF"/> <!-- not selected -->
+</selector>
diff --git a/core/res/res/drawable-hdpi/contact_header_bg.9.png b/core/res/res/drawable-hdpi/contact_header_bg.9.png
new file mode 100755
index 0000000..981b2e9
--- /dev/null
+++ b/core/res/res/drawable-hdpi/contact_header_bg.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_contact_picture_2.png b/core/res/res/drawable-hdpi/ic_contact_picture_2.png
new file mode 100755
index 0000000..5e65276
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_contact_picture_2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_contact_picture_3.png b/core/res/res/drawable-hdpi/ic_contact_picture_3.png
new file mode 100755
index 0000000..a8ec1e1
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_contact_picture_3.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_alarm.png b/core/res/res/drawable-hdpi/stat_notify_alarm.png
old mode 100644
new mode 100755
index adac8a9..89daee1
--- a/core/res/res/drawable-hdpi/stat_notify_alarm.png
+++ b/core/res/res/drawable-hdpi/stat_notify_alarm.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_call_mute.png b/core/res/res/drawable-hdpi/stat_notify_call_mute.png
old mode 100644
new mode 100755
index a43139b..b86d2ca
--- a/core/res/res/drawable-hdpi/stat_notify_call_mute.png
+++ b/core/res/res/drawable-hdpi/stat_notify_call_mute.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_chat.png b/core/res/res/drawable-hdpi/stat_notify_chat.png
old mode 100644
new mode 100755
index 7b837b3..dbe18ab
--- a/core/res/res/drawable-hdpi/stat_notify_chat.png
+++ b/core/res/res/drawable-hdpi/stat_notify_chat.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_disk_full.png b/core/res/res/drawable-hdpi/stat_notify_disk_full.png
old mode 100644
new mode 100755
index 2163fa7..6ceeda8
--- a/core/res/res/drawable-hdpi/stat_notify_disk_full.png
+++ b/core/res/res/drawable-hdpi/stat_notify_disk_full.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_missed_call.png b/core/res/res/drawable-hdpi/stat_notify_missed_call.png
old mode 100644
new mode 100755
index a313360..192574d4e
--- a/core/res/res/drawable-hdpi/stat_notify_missed_call.png
+++ b/core/res/res/drawable-hdpi/stat_notify_missed_call.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_more.png b/core/res/res/drawable-hdpi/stat_notify_more.png
old mode 100644
new mode 100755
index bbbd59b..1c7f9db
--- a/core/res/res/drawable-hdpi/stat_notify_more.png
+++ b/core/res/res/drawable-hdpi/stat_notify_more.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_sdcard.png b/core/res/res/drawable-hdpi/stat_notify_sdcard.png
old mode 100644
new mode 100755
index 0161419..320d63d
--- a/core/res/res/drawable-hdpi/stat_notify_sdcard.png
+++ b/core/res/res/drawable-hdpi/stat_notify_sdcard.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_sdcard_usb.png b/core/res/res/drawable-hdpi/stat_notify_sdcard_usb.png
old mode 100644
new mode 100755
index 23b2f0a..1b49692
--- a/core/res/res/drawable-hdpi/stat_notify_sdcard_usb.png
+++ b/core/res/res/drawable-hdpi/stat_notify_sdcard_usb.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_sim_toolkit.png b/core/res/res/drawable-hdpi/stat_notify_sim_toolkit.png
old mode 100644
new mode 100755
index 401fbb0..3b14c26
--- a/core/res/res/drawable-hdpi/stat_notify_sim_toolkit.png
+++ b/core/res/res/drawable-hdpi/stat_notify_sim_toolkit.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_sync.png b/core/res/res/drawable-hdpi/stat_notify_sync.png
old mode 100644
new mode 100755
index dacfc3a..6f9cf84
--- a/core/res/res/drawable-hdpi/stat_notify_sync.png
+++ b/core/res/res/drawable-hdpi/stat_notify_sync.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_sync_anim0.png b/core/res/res/drawable-hdpi/stat_notify_sync_anim0.png
old mode 100644
new mode 100755
index 00e2ebb..6f9cf84
--- a/core/res/res/drawable-hdpi/stat_notify_sync_anim0.png
+++ b/core/res/res/drawable-hdpi/stat_notify_sync_anim0.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_sync_error.png b/core/res/res/drawable-hdpi/stat_notify_sync_error.png
old mode 100644
new mode 100755
index 3083b44..6e3b545
--- a/core/res/res/drawable-hdpi/stat_notify_sync_error.png
+++ b/core/res/res/drawable-hdpi/stat_notify_sync_error.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_voicemail.png b/core/res/res/drawable-hdpi/stat_notify_voicemail.png
old mode 100644
new mode 100755
index 7f62e94..70b2411
--- a/core/res/res/drawable-hdpi/stat_notify_voicemail.png
+++ b/core/res/res/drawable-hdpi/stat_notify_voicemail.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_wifi_in_range.png b/core/res/res/drawable-hdpi/stat_notify_wifi_in_range.png
old mode 100644
new mode 100755
index 712e071..e9405dd
--- a/core/res/res/drawable-hdpi/stat_notify_wifi_in_range.png
+++ b/core/res/res/drawable-hdpi/stat_notify_wifi_in_range.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_data_connected_h.png b/core/res/res/drawable-hdpi/stat_sys_data_connected_h.png
new file mode 100755
index 0000000..24e07ab
--- /dev/null
+++ b/core/res/res/drawable-hdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_data_in_h.png b/core/res/res/drawable-hdpi/stat_sys_data_in_h.png
new file mode 100755
index 0000000..f2f6daa
--- /dev/null
+++ b/core/res/res/drawable-hdpi/stat_sys_data_in_h.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_data_inandout_h.png b/core/res/res/drawable-hdpi/stat_sys_data_inandout_h.png
new file mode 100755
index 0000000..5d6ef05
--- /dev/null
+++ b/core/res/res/drawable-hdpi/stat_sys_data_inandout_h.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_data_out_h.png b/core/res/res/drawable-hdpi/stat_sys_data_out_h.png
new file mode 100755
index 0000000..5e3122d6
--- /dev/null
+++ b/core/res/res/drawable-hdpi/stat_sys_data_out_h.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_data_usb.png b/core/res/res/drawable-hdpi/stat_sys_data_usb.png
old mode 100644
new mode 100755
index 7a83544..4c14c07
--- a/core/res/res/drawable-hdpi/stat_sys_data_usb.png
+++ b/core/res/res/drawable-hdpi/stat_sys_data_usb.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_download_anim0.png b/core/res/res/drawable-hdpi/stat_sys_download_anim0.png
old mode 100644
new mode 100755
index a907d79..d9c9e4c
--- a/core/res/res/drawable-hdpi/stat_sys_download_anim0.png
+++ b/core/res/res/drawable-hdpi/stat_sys_download_anim0.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_download_anim1.png b/core/res/res/drawable-hdpi/stat_sys_download_anim1.png
old mode 100644
new mode 100755
index e9f42ad..4f47db0
--- a/core/res/res/drawable-hdpi/stat_sys_download_anim1.png
+++ b/core/res/res/drawable-hdpi/stat_sys_download_anim1.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_download_anim2.png b/core/res/res/drawable-hdpi/stat_sys_download_anim2.png
old mode 100644
new mode 100755
index d1682e0..e50d3c3
--- a/core/res/res/drawable-hdpi/stat_sys_download_anim2.png
+++ b/core/res/res/drawable-hdpi/stat_sys_download_anim2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_download_anim3.png b/core/res/res/drawable-hdpi/stat_sys_download_anim3.png
old mode 100644
new mode 100755
index 70e757b..6c1029c
--- a/core/res/res/drawable-hdpi/stat_sys_download_anim3.png
+++ b/core/res/res/drawable-hdpi/stat_sys_download_anim3.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_download_anim4.png b/core/res/res/drawable-hdpi/stat_sys_download_anim4.png
old mode 100644
new mode 100755
index 3b2d7d1..693f085
--- a/core/res/res/drawable-hdpi/stat_sys_download_anim4.png
+++ b/core/res/res/drawable-hdpi/stat_sys_download_anim4.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_download_anim5.png b/core/res/res/drawable-hdpi/stat_sys_download_anim5.png
old mode 100644
new mode 100755
index ced2bb2..eabe0ef
--- a/core/res/res/drawable-hdpi/stat_sys_download_anim5.png
+++ b/core/res/res/drawable-hdpi/stat_sys_download_anim5.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_upload_anim0.png b/core/res/res/drawable-hdpi/stat_sys_upload_anim0.png
old mode 100644
new mode 100755
index 4b7e942..d72afbe
--- a/core/res/res/drawable-hdpi/stat_sys_upload_anim0.png
+++ b/core/res/res/drawable-hdpi/stat_sys_upload_anim0.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_upload_anim1.png b/core/res/res/drawable-hdpi/stat_sys_upload_anim1.png
old mode 100644
new mode 100755
index a416350..5de2873
--- a/core/res/res/drawable-hdpi/stat_sys_upload_anim1.png
+++ b/core/res/res/drawable-hdpi/stat_sys_upload_anim1.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_upload_anim2.png b/core/res/res/drawable-hdpi/stat_sys_upload_anim2.png
old mode 100644
new mode 100755
index 8d199dd..dd0b49f
--- a/core/res/res/drawable-hdpi/stat_sys_upload_anim2.png
+++ b/core/res/res/drawable-hdpi/stat_sys_upload_anim2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_upload_anim3.png b/core/res/res/drawable-hdpi/stat_sys_upload_anim3.png
old mode 100644
new mode 100755
index dfef071..8ac29b3
--- a/core/res/res/drawable-hdpi/stat_sys_upload_anim3.png
+++ b/core/res/res/drawable-hdpi/stat_sys_upload_anim3.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_upload_anim4.png b/core/res/res/drawable-hdpi/stat_sys_upload_anim4.png
old mode 100644
new mode 100755
index abe56f1..26c3e714
--- a/core/res/res/drawable-hdpi/stat_sys_upload_anim4.png
+++ b/core/res/res/drawable-hdpi/stat_sys_upload_anim4.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_upload_anim5.png b/core/res/res/drawable-hdpi/stat_sys_upload_anim5.png
old mode 100644
new mode 100755
index 1e917c1..431ac6b
--- a/core/res/res/drawable-hdpi/stat_sys_upload_anim5.png
+++ b/core/res/res/drawable-hdpi/stat_sys_upload_anim5.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/statusbar_background.9.png b/core/res/res/drawable-hdpi/statusbar_background.9.png
new file mode 100644
index 0000000..dcca695
--- /dev/null
+++ b/core/res/res/drawable-hdpi/statusbar_background.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/statusbar_background.png b/core/res/res/drawable-hdpi/statusbar_background.png
deleted file mode 100644
index c2b3a5e..0000000
--- a/core/res/res/drawable-hdpi/statusbar_background.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_def_app_icon.png b/core/res/res/drawable-hdpi/sym_def_app_icon.png
index 4b5384f..075d908 100644
--- a/core/res/res/drawable-hdpi/sym_def_app_icon.png
+++ b/core/res/res/drawable-hdpi/sym_def_app_icon.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_selected.9.png b/core/res/res/drawable-hdpi/tab_selected.9.png
index 29d45a17..f036b9a 100644
--- a/core/res/res/drawable-hdpi/tab_selected.9.png
+++ b/core/res/res/drawable-hdpi/tab_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_selected_bar_left_v4.9.png b/core/res/res/drawable-hdpi/tab_selected_bar_left_v4.9.png
new file mode 100644
index 0000000..e7a07255
--- /dev/null
+++ b/core/res/res/drawable-hdpi/tab_selected_bar_left_v4.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_selected_bar_right_v4.9.png b/core/res/res/drawable-hdpi/tab_selected_bar_right_v4.9.png
new file mode 100644
index 0000000..e7a07255
--- /dev/null
+++ b/core/res/res/drawable-hdpi/tab_selected_bar_right_v4.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_selected_v4.9.png b/core/res/res/drawable-hdpi/tab_selected_v4.9.png
new file mode 100644
index 0000000..50fcb52
--- /dev/null
+++ b/core/res/res/drawable-hdpi/tab_selected_v4.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_unselected.9.png b/core/res/res/drawable-hdpi/tab_unselected.9.png
index f5781ab..c3a1f30 100644
--- a/core/res/res/drawable-hdpi/tab_unselected.9.png
+++ b/core/res/res/drawable-hdpi/tab_unselected.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_unselected_v4.9.png b/core/res/res/drawable-hdpi/tab_unselected_v4.9.png
new file mode 100644
index 0000000..c56254c
--- /dev/null
+++ b/core/res/res/drawable-hdpi/tab_unselected_v4.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/title_bar_medium.9.png b/core/res/res/drawable-hdpi/title_bar_medium.9.png
new file mode 100644
index 0000000..311a54a
--- /dev/null
+++ b/core/res/res/drawable-hdpi/title_bar_medium.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/title_bar_medium.png b/core/res/res/drawable-hdpi/title_bar_medium.png
deleted file mode 100644
index c13dd26..0000000
--- a/core/res/res/drawable-hdpi/title_bar_medium.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/title_bar_portrait.9.png b/core/res/res/drawable-hdpi/title_bar_portrait.9.png
index 161432f..70f7cc2 100644
--- a/core/res/res/drawable-hdpi/title_bar_portrait.9.png
+++ b/core/res/res/drawable-hdpi/title_bar_portrait.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/title_bar_shadow.9.png b/core/res/res/drawable-hdpi/title_bar_shadow.9.png
index e67f457..e6dab63 100644
--- a/core/res/res/drawable-hdpi/title_bar_shadow.9.png
+++ b/core/res/res/drawable-hdpi/title_bar_shadow.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/title_bar_tall.9.png b/core/res/res/drawable-hdpi/title_bar_tall.9.png
new file mode 100644
index 0000000..5c1a69f
--- /dev/null
+++ b/core/res/res/drawable-hdpi/title_bar_tall.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/title_bar_tall.png b/core/res/res/drawable-hdpi/title_bar_tall.png
deleted file mode 100644
index f177440..0000000
--- a/core/res/res/drawable-hdpi/title_bar_tall.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-land-hdpi/bottombar_565.png b/core/res/res/drawable-land-hdpi/bottombar_565.png
new file mode 100755
index 0000000..9df56ca
--- /dev/null
+++ b/core/res/res/drawable-land-hdpi/bottombar_565.png
Binary files differ
diff --git a/core/res/res/drawable-land-hdpi/statusbar_background.png b/core/res/res/drawable-land-hdpi/statusbar_background.png
deleted file mode 100644
index 4a955c5..0000000
--- a/core/res/res/drawable-land-hdpi/statusbar_background.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-land-hdpi/title_bar_tall.png b/core/res/res/drawable-land-hdpi/title_bar_tall.png
deleted file mode 100644
index 96b5ffe..0000000
--- a/core/res/res/drawable-land-hdpi/title_bar_tall.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-land/bottombar_565.png b/core/res/res/drawable-land-mdpi/bottombar_565.png
similarity index 100%
rename from core/res/res/drawable-land/bottombar_565.png
rename to core/res/res/drawable-land-mdpi/bottombar_565.png
Binary files differ
diff --git a/core/res/res/drawable-land-mdpi/statusbar_background.png b/core/res/res/drawable-land-mdpi/statusbar_background.png
deleted file mode 100644
index ef61e52..0000000
--- a/core/res/res/drawable-land-mdpi/statusbar_background.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-land-mdpi/title_bar_tall.png b/core/res/res/drawable-land-mdpi/title_bar_tall.png
deleted file mode 100644
index 16290fb..0000000
--- a/core/res/res/drawable-land-mdpi/title_bar_tall.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/contact_header_bg.9.png b/core/res/res/drawable-mdpi/contact_header_bg.9.png
similarity index 100%
rename from core/res/res/drawable/contact_header_bg.9.png
rename to core/res/res/drawable-mdpi/contact_header_bg.9.png
Binary files differ
diff --git a/core/res/res/drawable/ic_contact_picture_2.png b/core/res/res/drawable-mdpi/ic_contact_picture_2.png
similarity index 100%
rename from core/res/res/drawable/ic_contact_picture_2.png
rename to core/res/res/drawable-mdpi/ic_contact_picture_2.png
Binary files differ
diff --git a/core/res/res/drawable/ic_contact_picture_3.png b/core/res/res/drawable-mdpi/ic_contact_picture_3.png
similarity index 100%
rename from core/res/res/drawable/ic_contact_picture_3.png
rename to core/res/res/drawable-mdpi/ic_contact_picture_3.png
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_connected_h.png b/core/res/res/drawable-mdpi/stat_sys_data_connected_h.png
similarity index 100%
rename from core/res/res/drawable/stat_sys_data_connected_h.png
rename to core/res/res/drawable-mdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_in_h.png b/core/res/res/drawable-mdpi/stat_sys_data_in_h.png
similarity index 100%
rename from core/res/res/drawable/stat_sys_data_in_h.png
rename to core/res/res/drawable-mdpi/stat_sys_data_in_h.png
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_inandout_h.png b/core/res/res/drawable-mdpi/stat_sys_data_inandout_h.png
similarity index 100%
rename from core/res/res/drawable/stat_sys_data_inandout_h.png
rename to core/res/res/drawable-mdpi/stat_sys_data_inandout_h.png
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_out_h.png b/core/res/res/drawable-mdpi/stat_sys_data_out_h.png
similarity index 100%
rename from core/res/res/drawable/stat_sys_data_out_h.png
rename to core/res/res/drawable-mdpi/stat_sys_data_out_h.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/statusbar_background.9.png b/core/res/res/drawable-mdpi/statusbar_background.9.png
new file mode 100644
index 0000000..eb7c1a4
--- /dev/null
+++ b/core/res/res/drawable-mdpi/statusbar_background.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/statusbar_background.png b/core/res/res/drawable-mdpi/statusbar_background.png
deleted file mode 100644
index 204d76a..0000000
--- a/core/res/res/drawable-mdpi/statusbar_background.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_selected_bar_left_v4.9.png b/core/res/res/drawable-mdpi/tab_selected_bar_left_v4.9.png
new file mode 100644
index 0000000..d14c02b
--- /dev/null
+++ b/core/res/res/drawable-mdpi/tab_selected_bar_left_v4.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_selected_bar_right_v4.9.png b/core/res/res/drawable-mdpi/tab_selected_bar_right_v4.9.png
new file mode 100644
index 0000000..d14c02b
--- /dev/null
+++ b/core/res/res/drawable-mdpi/tab_selected_bar_right_v4.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_selected_v4.9.png b/core/res/res/drawable-mdpi/tab_selected_v4.9.png
new file mode 100644
index 0000000..52cc34e
--- /dev/null
+++ b/core/res/res/drawable-mdpi/tab_selected_v4.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_unselected_v4.9.png b/core/res/res/drawable-mdpi/tab_unselected_v4.9.png
new file mode 100644
index 0000000..7d0859a
--- /dev/null
+++ b/core/res/res/drawable-mdpi/tab_unselected_v4.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/title_bar_medium.9.png b/core/res/res/drawable-mdpi/title_bar_medium.9.png
new file mode 100644
index 0000000..2d41d02
--- /dev/null
+++ b/core/res/res/drawable-mdpi/title_bar_medium.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/title_bar_medium.png b/core/res/res/drawable-mdpi/title_bar_medium.png
deleted file mode 100644
index 9d01f79..0000000
--- a/core/res/res/drawable-mdpi/title_bar_medium.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/title_bar_portrait.9.png b/core/res/res/drawable-mdpi/title_bar_portrait.9.png
index 482d82e..13b18d8 100644
--- a/core/res/res/drawable-mdpi/title_bar_portrait.9.png
+++ b/core/res/res/drawable-mdpi/title_bar_portrait.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/title_bar_shadow.9.png b/core/res/res/drawable-mdpi/title_bar_shadow.9.png
index 08723665..dbcefee 100644
--- a/core/res/res/drawable-mdpi/title_bar_shadow.9.png
+++ b/core/res/res/drawable-mdpi/title_bar_shadow.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/title_bar_tall.9.png b/core/res/res/drawable-mdpi/title_bar_tall.9.png
new file mode 100644
index 0000000..5a050c4
--- /dev/null
+++ b/core/res/res/drawable-mdpi/title_bar_tall.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/title_bar_tall.png b/core/res/res/drawable-mdpi/title_bar_tall.png
deleted file mode 100644
index cd565dc..0000000
--- a/core/res/res/drawable-mdpi/title_bar_tall.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/fasttrack_nobadge.xml b/core/res/res/drawable/fasttrack_nobadge.xml
new file mode 100644
index 0000000..538e165
--- /dev/null
+++ b/core/res/res/drawable/fasttrack_nobadge.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* bubble_with_chats.xml
+**
+** Copyright 2009, Google Inc.
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true" android:drawable="@drawable/fasttrack_nobadge_pressed" />
+ <item android:state_selected="true" android:drawable="@drawable/fasttrack_nobadge_highlight" />
+ <item android:state_focused="true" android:drawable="@drawable/fasttrack_nobadge_highlight" />
+ <item android:state_enabled="false" android:drawable="@drawable/fasttrack_nobadge_normal" />
+ <item android:drawable="@drawable/fasttrack_nobadge_normal" />
+</selector>
diff --git a/core/res/res/drawable/fasttrack_nobadge_highlight.9.png b/core/res/res/drawable/fasttrack_nobadge_highlight.9.png
new file mode 100644
index 0000000..f0f50b3
--- /dev/null
+++ b/core/res/res/drawable/fasttrack_nobadge_highlight.9.png
Binary files differ
diff --git a/core/res/res/drawable/fasttrack_nobadge_normal.9.png b/core/res/res/drawable/fasttrack_nobadge_normal.9.png
new file mode 100644
index 0000000..01cc9dc
--- /dev/null
+++ b/core/res/res/drawable/fasttrack_nobadge_normal.9.png
Binary files differ
diff --git a/core/res/res/drawable/fasttrack_nobadge_pressed.9.png b/core/res/res/drawable/fasttrack_nobadge_pressed.9.png
new file mode 100644
index 0000000..6e22c87
--- /dev/null
+++ b/core/res/res/drawable/fasttrack_nobadge_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable/tab_bottom_left_v4.xml b/core/res/res/drawable/tab_bottom_left_v4.xml
new file mode 100644
index 0000000..0aee288
--- /dev/null
+++ b/core/res/res/drawable/tab_bottom_left_v4.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true" android:drawable="@drawable/tab_press_bar_left"/>
+ <item android:state_focused="false" android:drawable="@drawable/tab_selected_bar_left_v4"/>
+ <item android:state_focused="true" android:drawable="@drawable/tab_focus_bar_left"/>
+</selector>
diff --git a/core/res/res/drawable/tab_bottom_right_v4.xml b/core/res/res/drawable/tab_bottom_right_v4.xml
new file mode 100644
index 0000000..64227dd
--- /dev/null
+++ b/core/res/res/drawable/tab_bottom_right_v4.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true" android:drawable="@drawable/tab_press_bar_right"/>
+ <item android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/tab_selected_bar_right_v4"/>
+ <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/tab_focus_bar_right"/>
+</selector>
diff --git a/core/res/res/drawable/tab_indicator_v4.xml b/core/res/res/drawable/tab_indicator_v4.xml
new file mode 100644
index 0000000..b1e3c9c
--- /dev/null
+++ b/core/res/res/drawable/tab_indicator_v4.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- Non focused states -->
+ <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_v4" />
+ <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_v4" />
+
+ <!-- Focused states -->
+ <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
+ <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
+
+ <!-- Pressed -->
+ <item android:state_pressed="true" android:drawable="@drawable/tab_press" />
+</selector>
diff --git a/core/res/res/layout-ja/contact_header_name.xml b/core/res/res/layout-ja/contact_header_name.xml
index faf1b87..7c0f63e 100644
--- a/core/res/res/layout-ja/contact_header_name.xml
+++ b/core/res/res/layout-ja/contact_header_name.xml
@@ -29,6 +29,8 @@
android:ellipsize="end"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
+ android:shadowColor="#BB000000"
+ android:shadowRadius="2.75"
/>
<TextView android:id="@+id/phonetic_name"
diff --git a/core/res/res/layout/contact_header.xml b/core/res/res/layout/contact_header.xml
index 2802278..2dbc311 100644
--- a/core/res/res/layout/contact_header.xml
+++ b/core/res/res/layout/contact_header.xml
@@ -34,7 +34,6 @@
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
-
android:orientation="vertical"
android:layout_gravity="center_vertical" >
@@ -61,9 +60,19 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:maxLines="2"
- android:ellipsize="end"/>
+ android:maxLines="1"
+ android:ellipsize="end"
+ android:layout_marginTop="-4dip"
+ />
+ <TextView android:id="@+id/status_date"
+ android:layout_width="fill_parent"
+ android:layout_height="0dip"
+ android:layout_weight="1"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textSize="12sp"
+ android:layout_marginTop="-2dip"
+ />
</LinearLayout>
<ImageView
diff --git a/core/res/res/layout/contact_header_name.xml b/core/res/res/layout/contact_header_name.xml
index a763c22..4a53252 100644
--- a/core/res/res/layout/contact_header_name.xml
+++ b/core/res/res/layout/contact_header_name.xml
@@ -24,4 +24,6 @@
android:singleLine="true"
android:ellipsize="end"
android:layout_gravity="center_vertical"
+ android:shadowColor="#BB000000"
+ android:shadowRadius="2.75"
/>
diff --git a/core/res/res/layout/screen_progress.xml b/core/res/res/layout/screen_progress.xml
index e3347e4..477cadb 100644
--- a/core/res/res/layout/screen_progress.xml
+++ b/core/res/res/layout/screen_progress.xml
@@ -20,58 +20,55 @@
This is the basic layout for a screen, with all of its features enabled.
-->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:fitsSystemWindows="true"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
>
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
+ <RelativeLayout android:id="@android:id/title_container"
+ style="?android:attr/windowTitleBackgroundStyle"
+ android:layout_width="fill_parent"
+ android:layout_height="?android:attr/windowTitleSize"
>
- <RelativeLayout android:id="@android:id/title_container"
- style="?android:attr/windowTitleBackgroundStyle"
- android:layout_width="fill_parent"
- android:layout_height="?android:attr/windowTitleSize"
- >
- <ProgressBar android:id="@+android:id/progress_circular"
- style="?android:attr/progressBarStyleSmallTitle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="5dip"
- android:layout_alignParentRight="true"
- android:layout_centerVertical="true"
- android:visibility="gone"
- android:max="10000"
- />
- <ProgressBar android:id="@+android:id/progress_horizontal"
- style="?android:attr/progressBarStyleHorizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="2dip"
- android:layout_alignParentLeft="true"
- android:layout_toLeftOf="@android:id/progress_circular"
- android:layout_centerVertical="true"
- android:visibility="gone"
- android:max="10000"
- />
- <TextView android:id="@android:id/title"
- style="?android:attr/windowTitleStyle"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_alignParentLeft="true"
- android:layout_toLeftOf="@android:id/progress_circular"
- android:background="@null"
- android:fadingEdge="horizontal"
- android:gravity="center_vertical"
- android:scrollHorizontally="true"
- />
- </RelativeLayout>
- <FrameLayout android:id="@android:id/content"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:foregroundGravity="fill_horizontal|top"
- android:foreground="?android:attr/windowContentOverlay"
+ <ProgressBar android:id="@+android:id/progress_circular"
+ style="?android:attr/progressBarStyleSmallTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="5dip"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:visibility="gone"
+ android:max="10000"
/>
- </LinearLayout>
-</FrameLayout>
+ <ProgressBar android:id="@+android:id/progress_horizontal"
+ style="?android:attr/progressBarStyleHorizontal"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="2dip"
+ android:layout_alignParentLeft="true"
+ android:layout_toLeftOf="@android:id/progress_circular"
+ android:layout_centerVertical="true"
+ android:visibility="gone"
+ android:max="10000"
+ />
+ <TextView android:id="@android:id/title"
+ style="?android:attr/windowTitleStyle"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:layout_alignParentLeft="true"
+ android:layout_toLeftOf="@android:id/progress_circular"
+ android:background="@null"
+ android:fadingEdge="horizontal"
+ android:gravity="center_vertical"
+ android:scrollHorizontally="true"
+ />
+ </RelativeLayout>
+ <FrameLayout android:id="@android:id/content"
+ android:layout_width="fill_parent"
+ android:layout_height="0dip"
+ android:layout_weight="1"
+ android:foregroundGravity="fill_horizontal|top"
+ android:foreground="?android:attr/windowContentOverlay"
+ />
+</LinearLayout>
diff --git a/core/res/res/layout/select_dialog_item.xml b/core/res/res/layout/select_dialog_item.xml
index f1840ba..60a74a4 100644
--- a/core/res/res/layout/select_dialog_item.xml
+++ b/core/res/res/layout/select_dialog_item.xml
@@ -29,7 +29,7 @@
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
- android:textColor="@android:color/bright_foreground_light"
+ android:textColor="@android:color/primary_text_light_disable_only"
android:gravity="center_vertical"
android:paddingLeft="14dip"
android:paddingRight="15dip"
diff --git a/core/res/res/layout/select_dialog_multichoice.xml b/core/res/res/layout/select_dialog_multichoice.xml
index 3bd1a48..55fc39b 100644
--- a/core/res/res/layout/select_dialog_multichoice.xml
+++ b/core/res/res/layout/select_dialog_multichoice.xml
@@ -19,7 +19,8 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:textAppearance="?android:attr/textAppearanceLargeInverse"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:textColor="@android:color/primary_text_light_disable_only"
android:gravity="center_vertical"
android:paddingLeft="12dip"
android:paddingRight="7dip"
diff --git a/core/res/res/layout/select_dialog_singlechoice.xml b/core/res/res/layout/select_dialog_singlechoice.xml
index 3e07f23..220af64 100644
--- a/core/res/res/layout/select_dialog_singlechoice.xml
+++ b/core/res/res/layout/select_dialog_singlechoice.xml
@@ -20,7 +20,7 @@
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
- android:textColor="@android:color/bright_foreground_light"
+ android:textColor="@android:color/primary_text_light_disable_only"
android:gravity="center_vertical"
android:paddingLeft="12dip"
android:paddingRight="7dip"
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index f5b8ab6..f1ef6df 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -28,6 +28,11 @@
<attr name="colorForegroundInverse" format="color" />
<!-- Color that matches (as closely as possible) the window background. -->
<attr name="colorBackground" format="color" />
+ <!-- This is a hint for a solid color that can be used for caching
+ rendered views. This will be the color of the background when
+ there is a solid background color; it will be null when the
+ background is a texture or translucent. -->
+ <attr name="colorBackgroundCacheHint" format="color" />
<!-- Default disabled alpha for widgets that set enabled/disabled alpha programmatically. -->
<attr name="disabledAlpha" format="float" />
<!-- Default background dim amount when a menu, dialog, or something similar pops up. -->
@@ -1162,6 +1167,12 @@
set, else it will be false. -->
<attr name="isScrollContainer" format="boolean" />
+ <!-- Defines whether to fade out scrollbars when they are not in use. -->
+ <attr name="fadeScrollbars" format="boolean" />
+ <!-- Defines the delay in milliseconds that a scrollbar takes to fade out. -->
+ <attr name="scrollbarFadeDuration" format="integer" />
+ <!-- Defines the delay in milliseconds that a scrollbar waits before fade out. -->
+ <attr name="scrollbarDefaultDelayBeforeFade" format="integer" />
<!-- Sets the width of vertical scrollbars and height of horizontal scrollbars. -->
<attr name="scrollbarSize" format="dimension" />
<!-- Defines the horizontal scrollbar thumb drawable. -->
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index 15841a8..f570e934 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -4,22 +4,22 @@
**
** Copyright 2006, The Android Open Source Project
**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
**
-** http://www.apache.org/licenses/LICENSE-2.0
+** http://www.apache.org/licenses/LICENSE-2.0
**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<resources>
<drawable name="screen_background_light">#ffffffff</drawable>
- <drawable name="screen_background_dark">#ff000000</drawable>
+ <drawable name="screen_background_dark">#ff1a1a1a</drawable>
<drawable name="status_bar_closed_default_background">#ff000000</drawable>
<drawable name="status_bar_opened_default_background">#ff000000</drawable>
<drawable name="search_bar_default_color">#ff000000</drawable>
@@ -36,7 +36,7 @@
<color name="white">#ffffffff</color>
<color name="black">#ff000000</color>
<color name="transparent">#00000000</color>
- <color name="background_dark">#ff000000</color>
+ <color name="background_dark">#ff1a1a1a</color>
<color name="bright_foreground_dark">#ffffffff</color>
<color name="bright_foreground_dark_disabled">#80ffffff</color>
<color name="bright_foreground_dark_inverse">#ff000000</color>
@@ -65,12 +65,12 @@
<drawable name="menu_full_frame">@drawable/menu_background_fill_parent_width</drawable>
<drawable name="editbox_dropdown_dark_frame">@drawable/editbox_dropdown_background_dark</drawable>
<drawable name="editbox_dropdown_light_frame">@drawable/editbox_dropdown_background</drawable>
-
+
<drawable name="input_method_fullscreen_background">#fff9f9f9</drawable>
-
+
<!-- For date picker widget -->
<drawable name="selected_day_background">#ff0092f4</drawable>
-
+
<!-- For settings framework -->
<color name="lighter_gray">#ddd</color>
<color name="darker_gray">#aaa</color>
@@ -78,7 +78,7 @@
<!-- For security permissions -->
<color name="perms_dangerous_grp_color">#dd6826</color>
<color name="perms_dangerous_perm_color">#dd6826</color>
-
+
<!-- For search-related UIs -->
<color name="search_url_text_normal">#7fa87f</color>
<color name="search_url_text_selected">@android:color/black</color>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index cf0dfd7..9f4af83 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -124,6 +124,33 @@
<item>30</item>
</integer-array>
+ <!-- Vibrator pattern for feedback about booting with safe mode disabled -->
+ <integer-array name="config_safeModeDisabledVibePattern">
+ <item>0</item>
+ <item>1</item>
+ <item>20</item>
+ <item>21</item>
+ </integer-array>
+
+ <!-- Vibrator pattern for feedback about booting with safe mode disabled -->
+ <integer-array name="config_safeModeEnabledVibePattern">
+ <item>0</item>
+ <item>1</item>
+ <item>20</item>
+ <item>21</item>
+ <item>500</item>
+ <item>600</item>
+ </integer-array>
+
<bool name="config_use_strict_phone_number_comparation">false</bool>
+ <!-- Display low battery warning when battery level dips to this value -->
+ <integer name="config_lowBatteryWarningLevel">15</integer>
+
+ <!-- Close low battery warning when battery level reaches this value -->
+ <integer name="config_lowBatteryCloseWarningLevel">20</integer>
+
+ <!-- Allow the menu hard key to be disabled in LockScreen on some devices -->
+ <bool name="config_disableMenuKeyInLockScreen">false</bool>
+
</resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 257e0f2..999e6ed 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1172,7 +1172,11 @@
<public type="attr" name="thumbnail" />
<public type="attr" name="detachWallpaper" />
<public type="attr" name="finishOnCloseSystemDialogs" />
-
+ <public type="attr" name="scrollbarFadeDuration" />
+ <public type="attr" name="scrollbarDefaultDelayBeforeFade" />
+ <public type="attr" name="fadeScrollbars" />
+ <public type="attr" name="colorBackgroundCacheHint" />
+
<public type="style" name="Theme.Wallpaper" />
<public type="style" name="Theme.Wallpaper.NoTitleBar" />
<public type="style" name="Theme.Wallpaper.NoTitleBar.Fullscreen" />
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index eb15183..7191a46 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -337,9 +337,9 @@
various network features.</string>
<!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permgrouplab_accounts">Your Google accounts</string>
+ <string name="permgrouplab_accounts">Your accounts</string>
<!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permgroupdesc_accounts">Access the available Google accounts.</string>
+ <string name="permgroupdesc_accounts">Access the available accounts.</string>
<!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permgrouplab_hardwareControls">Hardware controls</string>
@@ -1299,6 +1299,12 @@
<string name="orgTypeOther">Other</string>
<!-- Custom organization type -->
<string name="orgTypeCustom">Custom</string>
+
+ <!-- Attbution of a contact status update, when the time of update is unknown -->
+ <string name="contact_status_update_attribution">Via <xliff:g id="source" example="Google Talk">%1$s</xliff:g></string>
+
+ <!-- Attbution of a contact status update, when the time of update is known -->
+ <string name="contact_status_update_attribution_with_date"><xliff:g id="date" example="3 hours ago">%1$s</xliff:g> via <xliff:g id="source" example="Google Talk">%2$s</xliff:g></string>
<!-- Instructions telling the user to enter their pin to unlock the keyguard.
Displayed in one line in a large font. -->
@@ -1460,8 +1466,8 @@
<string name="battery_low_subtitle">The battery is getting low:</string>
<!-- A message that appears when the battery level is getting low in a dialog. This is appened to the subtitle of the low battery alert. -->
- <string name="battery_low_percent_format">less than <xliff:g id="number">%d%%</xliff:g>
- remaining.</string>
+ <string name="battery_low_percent_format"><xliff:g id="number">%d%%</xliff:g>
+ or less remaining.</string>
<!-- When the battery is low, this is the label of the button to go to the
power usage activity to find out what drained the battery. -->
@@ -2083,4 +2089,8 @@
<!-- Do Not Translate: Alternate eri.xml -->
<string name="alternate_eri_file">/data/eri.xml</string>
+ <string name="pptp_vpn_description">Point-to-Point Tunneling Protocol</string>
+ <string name="l2tp_vpn_description">Layer 2 Tunneling Protocol</string>
+ <string name="l2tp_ipsec_psk_vpn_description">Pre-shared key based L2TP/IPSec VPN</string>
+ <string name="l2tp_ipsec_crt_vpn_description">Certificate based L2TP/IPSec VPN</string>
</resources>
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index 47c68ad..e071e99 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -459,12 +459,13 @@
<style name="Widget.ListView" parent="Widget.AbsListView">
<item name="android:listSelector">@android:drawable/list_selector_background</item>
- <item name="android:cacheColorHint">?android:attr/colorBackground</item>
+ <item name="android:cacheColorHint">?android:attr/colorBackgroundCacheHint</item>
<item name="android:divider">@android:drawable/divider_horizontal_dark_opaque</item>
</style>
<style name="Widget.ListView.White" parent="Widget.AbsListView">
<item name="android:listSelector">@android:drawable/list_selector_background</item>
+ <item name="android:cacheColorHint">?android:attr/colorBackgroundCacheHint</item>
<item name="android:divider">@android:drawable/divider_horizontal_bright_opaque</item>
</style>
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index c0ca21b..119f174 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -30,6 +30,7 @@
<item name="colorForeground">@android:color/bright_foreground_dark</item>
<item name="colorForegroundInverse">@android:color/bright_foreground_dark_inverse</item>
<item name="colorBackground">@android:color/background_dark</item>
+ <item name="colorBackgroundCacheHint">?android:attr/colorBackground</item>
<item name="disabledAlpha">0.5</item>
<item name="backgroundDimAmount">0.6</item>
@@ -126,6 +127,8 @@
<item name="panelTextAppearance">?android:attr/textAppearanceInverse</item>
<!-- Scrollbar attributes -->
+ <item name="scrollbarFadeDuration">250</item>
+ <item name="scrollbarDefaultDelayBeforeFade">300</item>
<item name="scrollbarSize">10dip</item>
<item name="scrollbarThumbHorizontal">@android:drawable/scrollbar_handle_horizontal</item>
<item name="scrollbarThumbVertical">@android:drawable/scrollbar_handle_vertical</item>
@@ -287,6 +290,7 @@
wallpaper appear behind them. -->
<style name="Theme.Wallpaper">
<item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowShowWallpaper">true</item>
</style>
@@ -306,6 +310,7 @@
top of a dark background. -->
<style name="Theme.WallpaperSettings">
<item name="android:windowBackground">@android:drawable/screen_background_dark_transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
@@ -314,6 +319,7 @@
top of a light background. -->
<style name="Theme.Light.WallpaperSettings">
<item name="android:windowBackground">@android:drawable/screen_background_light_transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
@@ -333,6 +339,7 @@
flag and appropriate animations for your windows. -->
<style name="Theme.Translucent">
<item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<!-- Note that we use the base animation style here (that is no
animations) because we really have no idea how this kind of
@@ -377,6 +384,8 @@
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
+
<item name="textAppearance">@android:style/TextAppearance</item>
<item name="textAppearanceInverse">@android:style/TextAppearance.Inverse</item>
@@ -420,6 +429,7 @@
background, and turns off dimming behind the window. -->
<style name="Theme.Panel">
<item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsFloating">true</item>
@@ -434,6 +444,7 @@
background, and turns off dimming behind the window. -->
<style name="Theme.Light.Panel">
<item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsFloating">true</item>
diff --git a/data/etc/android.hardware.touchscreen.multitouch.xml b/data/etc/android.hardware.touchscreen.multitouch.xml
new file mode 100644
index 0000000..3d2399a
--- /dev/null
+++ b/data/etc/android.hardware.touchscreen.multitouch.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- This is the standard set of features for a touchscreen that supports
+ multitouch. -->
+<permissions>
+ <feature name="android.hardware.touchscreen.multitouch" />
+</permissions>
diff --git a/data/etc/required_hardware.xml b/data/etc/required_hardware.xml
index 896a148..05e7f8a 100644
--- a/data/etc/required_hardware.xml
+++ b/data/etc/required_hardware.xml
@@ -22,4 +22,5 @@
<feature name="android.hardware.sensor.accelerometer" />
<feature name="android.hardware.bluetooth" />
<feature name="android.hardware.wifi" />
+ <feature name="android.hardware.touchscreen" />
</permissions>
diff --git a/docs/html/sdk/ndk/1.6_r1/index.jd b/docs/html/sdk/ndk/1.6_r1/index.jd
new file mode 100644
index 0000000..e066f95
--- /dev/null
+++ b/docs/html/sdk/ndk/1.6_r1/index.jd
@@ -0,0 +1,360 @@
+ndk=true
+ndk.version=1.6
+ndk.rel.id=1
+ndk.date=September 2009
+
+ndk.win_download=android-ndk-1.6_r1-windows.zip
+ndk.win_bytes=25896444
+ndk.win_checksum=a213c9592f24c61620755c6c43f85210
+
+ndk.mac_download=android-ndk-1.6_r1-darwin-x86.zip
+ndk.mac_bytes=20611080
+ndk.mac_checksum=93c5b8b92a1f7b1cdadf267cab8ec403
+
+ndk.linux_download=android-ndk-1.6_r1-linux-x86.zip
+ndk.linux_bytes=19421662
+ndk.linux_checksum=464d3dc02739b82917e6f0591e17edd1
+
+page.title=Android 1.6 NDK, Release 1
+@jd:body
+
+<h2 id="overview">What is the Android NDK?</h2>
+
+<p>The Android NDK provides tools that allow Android application developers
+to embed components that make use of native code in their Android applications.
+</p>
+
+<p>Android applications run in the Dalvik virtual machine. The NDK allows
+developers to implement parts of their applications using native-code languages
+such as C and C++. This can provide benefits to certain classes of applications,
+in the form of reuse of existing code and in some cases increased speed.</p>
+
+<p>The NDK provides:</p>
+
+<ul>
+<li>A set of tools and build files used to generate native code libraries from C
+and C++ sources</li>
+<li>A way to embed the corresponding native libraries into application package
+files (.apks) that can be deployed on Android devices</li>
+<li>A set of native system headers and libraries that will be supported in all
+future versions of the Android platform, starting from Android 1.5 </li>
+<li>Documentation, samples, and tutorials</li>
+</ul>
+
+<p>This release of the NDK supports the ARMv5TE machine instruction set
+and provides stable headers for libc (the C library), libm (the Math library),
+OpenGL ES 1.1 (3D graphics library), the JNI interface, and other libraries.</p>
+
+<p>The NDK will not benefit most applications. As a developer, you will need
+to balance its benefits against its drawbacks; notably, using native code does
+not result in an automatic performance increase, but does always increase
+application complexity. Typical good candidates for the NDK are self-contained,
+CPU-intensive operations that don't allocate much memory, such as signal processing,
+physics simulation, and so on. Simply re-coding a method to run in C usually does
+not result in a large performance increase. The NDK can, however, can be
+an effective way to reuse a large corpus of existing C/C++ code.</p>
+
+<p>Please note that the NDK <em>does not</em> enable you to develop native-only
+applications. Android's primary runtime remains the Dalvik virtual machine.</p>
+
+<h2 id="contents">Contents of the NDK</h2>
+
+<h4>Development tools</h4>
+
+<p>The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that
+can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin)
+platforms.</p>
+
+<p>It provides a set of system headers for stable native APIs that are
+guaranteed to be supported in all later releases of the platform:</p>
+
+<ul>
+<li>libc (C library) headers</li>
+<li>libm (math library) headers</li>
+<li>JNI interface headers</li>
+<li>libz (Zlib compression) headers</li>
+<li>liblog (Android logging) header</li>
+<li>OpenGL ES 1.1 (3D graphics library) headers</li>
+<li>A Minimal set of headers for C++ support</li>
+</ul>
+
+<p>The NDK also provides a build system that lets you work efficiently with your
+sources, without having to handle the toolchain/platform/CPU/ABI details. You
+create very short build files to describe which sources to compile and which
+Android application will use them — the build system compiles the sources
+and places the shared libraries directly in your application project. </p>
+
+<p class="caution"><strong>Important:</strong> With the exception of the
+libraries listed above, native system libraries in the Android platform are
+<em>not</em> stable and may change in future platform versions.
+Your applications should <em>only</em> make use of the stable native system
+libraries provided in this NDK. </p>
+
+<h4>Documentation</h4>
+
+<p>The NDK package includes a set of documentation that describes the
+capabilities of the NDK and how to use it to create shared libraries for your
+Android applications. In this release, the documentation is provided only in the
+downloadable NDK package. You can find the documentation in the
+<code><ndk>/docs/</code> directory. Included are these files:</p>
+
+<ul>
+<li>INSTALL.TXT — describes how to install the NDK and configure it for
+your host system</li>
+<li>OVERVIEW.TXT — provides an overview of the NDK capabilities and
+usage</li>
+<li>ANDROID-MK.TXT — describes the use of the Android.mk file, which
+defines the native sources you want to compile</li>
+<li>APPLICATION-MK.TXT — describes the use of the Application.mk file,
+which describes the native sources required by your Android application</li>
+<li>HOWTO.TXT — information about common tasks associated with NDK
+development.</li>
+<li>SYSTEM-ISSUES.TXT — known issues in the Android system images
+that you should be aware of, if you are developing using the NDK. </li>
+<li>STABLE-APIS.TXT — a complete list of the stable APIs exposed
+by headers in the NDK.</li>
+<li>CHANGES.TXT — a complete list of changes to the NDK across all
+releases.</li>
+</ul>
+
+<p>Additionally, the package includes detailed information about the "bionic"
+C library provided with the Android platform that you should be aware of, if you
+are developing using the NDK. You can find the documentation in the
+<code><ndk>/docs/system/libc/</code> directory:</p>
+
+<ul>
+<li>OVERVIEW.TXT — provides an overview of the "bionic" C library and the
+features it offers.</li>
+</ul>
+
+<h4>Sample applications</h4>
+
+<p>The NDK includes three sample Android applications that illustrate how to use
+native code in your Android applications:</p>
+
+<ul>
+<li><code>hello-jni</code> — A simple application that loads a string from
+a native method implemented in a shared library and then displays it in the
+application UI. </li>
+<li><code>two-libs</code> — A simple application that loads a shared
+library dynamically and calls a native method provided by the library. In this
+case, the method is implemented in a static library that is imported by the
+shared library. </li>
+<li><code>san-angeles</code> — A simple application that renders 3D
+graphics through the native OpenGL ES APIs, while managing activity lifecycle
+with a {@link android.opengl.GLSurfaceView GLSurfaceView} object. </li>
+</ul>
+
+<p>For more information, see <a href="#samples">Using the Sample
+Applications</a>.</p>
+
+<h2 id="requirements">System and Software Requirements</h2>
+
+<p>The sections below describe the system and software requirements for using
+the Android NDK, as well as platform compatibility considerations that affect
+appplications using libraries produced with the NDK. </p>
+
+<h4>The Android SDK</h4>
+<ul>
+ <li>A complete Android SDK installation (including all dependencies) is
+required.</li>
+ <li>Android 1.5 SDK or later version is required.</li>
+</ul>
+
+<h4>Supported operating systems</h4>
+<ul>
+ <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
+ <li>Mac OS X 10.4.8 or later (x86 only)</li>
+ <li>Linux (32- or 64-bit, tested on Linux Ubuntu Dapper Drake)</li>
+</ul>
+
+<h4>Required development tools</h4>
+<ul>
+ <li>For all development platforms, GNU Make 3.81 or later is required. Earlier
+versions of GNU Make might work but have not been tested.</li>
+ <li>For Windows, a recent release of <a
+href="http://www.cygwin.com">Cygwin</a> is required. </li>
+</ul>
+
+<h4>Android platform compatibility</h4>
+<ul>
+ <li>The native libraries created by the Android NDK can only be used on
+devices running the Android 1.5 platform version or later. This is due to
+toolchain and ABI related changes that make the native libraries incompatible
+with 1.0 and 1.1 system images.</li>
+ <li>For this reason, you should use native libraries produced with the NDK in
+applications that are deployable to devices running the Android 1.5 platform
+version or later.
+ <li>To ensure compatibility, an application using a native library
+produced with the NDK <em>must</em> declare a <code><uses-library></code>
+element in its manifest file, with an <code>android:minSdkVersion</code> attribute
+value of "3" or higher. For example:
+
+<pre><manifest>
+ ...
+ <uses-sdk android:minSdkVersion="3" />
+ ...
+</manifest></pre>
+
+<p>Additionally, if you use this NDK to create a native library that uses the
+OpenGL ES APIs, the application containing the library can be deployed only to
+devices running Android 1.6 or later. To ensure compatibility in this case,
+the application <em>must</em> declare an <code>android:minSdkVersion</code>
+attribute value of "4" or higher. </p>
+
+<p>For more information about API Level and its relationship to Android
+platform versions, see <a href="{@docRoot}guide/appendix/api-levels.html">
+Android API Levels</a>.</p></li>
+</ul>
+
+<h2 id="installing">Installing the NDK</h2>
+
+<p>Installing the NDK on your development computer is straightforward and
+involves extracting the NDK from its download package and running a host-setup
+script. </p>
+
+<p>Before you get started make sure that you have downloaded the latest <a
+href="{@docRoot}sdk/index.html">Android SDK</a> and upgraded your applications
+and environment as needed. The NDK will not work with older versions of the
+Android SDK. Also, take a moment to review the <a href="#requirements">System
+and Software Requirements</a> for the NDK, if you haven't already. </p>
+
+<p>To install the NDK, follow these steps:</p>
+
+<ol>
+<li>From the table at the top of this page, select the NDK package that is
+appropriate for your development computer and download the package.</li>
+<li>Uncompress the NDK download package using tools available on your computer.
+When uncompressed, the NDK files are contained in a directory called
+<code>android-ndk-<version></code>. You can rename the NDK directory if
+necessary and you can move it to any location on your computer. This
+documentation refers to the NDK directory as <code><ndk></code>. </li>
+<li>Open a terminal, change to the NDK directory, and run the host-setup script.
+The script sets up your environment and generates a host configuration file used
+later, when building your shared libraries. The path to the host-setup script
+is:
+
+<p><code><ndk>/build/host-setup.sh</code></p>
+
+<p>If the script completes successfully, it prints a "Host setup complete."
+message. If it fails, it prints instructions that you can follow to correct any
+problems. </p>
+</li>
+</ol>
+
+<p>Once you have run the host-setup script, you are ready start working with the
+NDK. </p>
+
+<h2 id="gettingstarted">Getting Started with the NDK</h2>
+
+<p>Once you've installed the NDK successfully, take a few minutes to read the
+documentation included in the NDK. You can find the documentation in the
+<code><ndk>/docs/</code> directory. In particular, please read the
+OVERVIEW.TXT document completely, so that you understand the intent of the NDK
+and how to use it.</p>
+
+<p>If you used a previous version of the NDK, take a moment to review the
+list of NDK changes in the CHANGES.TXT document. </p>
+
+<p>Here's the general outline of how you work with the NDK tools:</p>
+
+<ol>
+<li>Place your native sources under
+<code><project>/jni/...</code></li>
+<li>Create <code><project>/jni/Android.mk</code> to
+describe your native sources to the NDK build system</li>
+<li>Create <code><ndk>/apps/<my_app>/Application.mk</code> to
+describe your Android application and native sources it needs to the NDK build
+system. This file sets up the link between an Android SDK application project
+and any number of shared libraries defined in the
+<code><project>/jni/</code> folder and it specifies the path to the
+application project that will receive the shared library built from the
+sources.</li>
+<li>Build your native code by running this make command from the top-level NDK
+directory:
+
+<p><code>$ make APP=<my_app></code></p>
+
+<p>The build tools copy the stripped, shared libraries needed by your
+application to the proper location in the application's project directory.</p>
+</li>
+
+<li>Finally, compile your application using the SDK tools in the usual way. The
+SDK build tools will package the shared libraries in the application's
+deployable .apk file. </p></li>
+
+</ol>
+
+<p>For complete information on all of the steps listed above, please see the
+documentation included with the NDK package. </p>
+
+
+<h2 id="samples">Using the Sample Applications</h2>
+
+<p>The NDK includes three sample applications that illustrate how to use native
+code in your Android applications:</p>
+
+<ul>
+<li><code>hello-jni</code> — A simple application that loads a string from
+a native method implemented in a shared library and then displays it in the
+application UI. </li>
+<li><code>two-libs</code> — A simple application that loads a shared
+library dynamically and calls a native method provided by the library. In this
+case, the method is implemented in a static library imported by the shared
+library. </li>
+<li><code>san-angeles</code> — A simple application that renders 3D
+graphics through the native OpenGL ES APIs, while managing activity lifecycle
+with a {@link android.opengl.GLSurfaceView GLSurfaceView} object. </li>
+</ul>
+
+<p>For each sample, the NDK includes an Android application project, as well as
+the corresponding C source code and the necessary Android.mk and Application.mk
+files. The application projects are provided in
+<code><ndk>/apps/<app_name>/project/</code> and the C source for
+each application is provided in
+<code><ndk>/apps/<app_name>/project/jni/</code>.</p>
+
+<p>Once you have installed the NDK, you can build the shared libraries from the
+NDK by using these commands from the root of the NDK directory:</p>
+<ul>
+<li><code>$ make APP=hello-jni</code> — compiles
+<code><ndk>/apps/hello-jni/project/jni/hello-jni.c</code> and outputs a
+shared library to
+<code><ndk>/apps/hello-jni/project/libs/armeabi/libhello-jni.so</code>.
+</li>
+<li><code>$ make APP=two-libs</code> — compiles
+<code><ndk>/apps/two-libs/project/jni/second.c</code> and
+<code>first.c</code> and outputs a shared library to
+<code><ndk>/apps/two-libs/project/libs/armeabi/libtwolib-second.so</code>.
+</li>
+</ul>
+
+<p>Next, build the sample Android applications that use the shared
+libraries:</p>
+
+<ul>
+<li>If you are developing in Eclipse with ADT, use the New Project Wizard to
+create a new Android project for each sample, using the "Import from Existing
+Source" option and importing the source from
+<code><ndk>/apps/<app_name>/project/</code>. Then, set up an AVD, if
+necessary, and build/run the application in the emulator. For more information
+about creating a new Android project in Eclipse, see <a
+href="{@docRoot}guide/developing/eclipse-adt.html">Developing in
+Eclipse</a>.</li>
+<li>If you are developing with Ant, use the <code>android</code> tool to create
+the build file for each of the sample projects at
+<code><ndk>/apps/<app_name>/project/</code>. Then set up an AVD, if
+necessary, build your project in the usual way, and run it in the emulator.
+For more information, see <a
+href="{@docRoot}guide/developing/other-ide.html">Developing in Other
+IDEs</a>.</li>
+</ul>
+
+<h2>Discussion Forum and Mailing List</h2>
+
+<p>If you have questions about the NDK or would like to read or contribute to
+discussions about it, please visit the <a
+href="http://groups.google.com/group/android-ndk">android-ndk</a> group and
+mailing list.</p>
+
+
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index b8116aa..143a38d 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -82,7 +82,7 @@
<li>
<h2>Native Development Tools</h2>
<ul>
- <li><a href="<?cs var:toroot ?>sdk/ndk/1.5_r1/index.html">Android 1.5 NDK, r1</a></li>
+ <li><a href="<?cs var:toroot ?>sdk/ndk/1.6_r1/index.html">Android 1.6 NDK, r1</a></li>
</ul>
</li>
<li>
diff --git a/docs/html/sdk/terms.jd b/docs/html/sdk/terms.jd
index ffc574a..614a438 100644
--- a/docs/html/sdk/terms.jd
+++ b/docs/html/sdk/terms.jd
@@ -1,6 +1,4 @@
page.title=Terms and Conditions
-sdk.version=1.6
-sdk.preview=true
hide_license_footer=true
@jd:body
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index 862e827..3e3f87b 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -36,6 +36,10 @@
private Typeface mTypeface;
private Xfermode mXfermode;
+ private boolean mHasCompatScaling;
+ private float mCompatScaling;
+ private float mInvCompatScaling;
+
private static final Style[] sStyleArray = {
Style.FILL, Style.STROKE, Style.FILL_AND_STROKE
};
@@ -189,6 +193,7 @@
public Paint(int flags) {
mNativePaint = native_init();
setFlags(flags | DEFAULT_PAINT_FLAGS);
+ mCompatScaling = mInvCompatScaling = 1;
}
/**
@@ -200,12 +205,17 @@
*/
public Paint(Paint paint) {
mNativePaint = native_initWithPaint(paint.mNativePaint);
+ mHasCompatScaling = paint.mHasCompatScaling;
+ mCompatScaling = paint.mCompatScaling;
+ mInvCompatScaling = paint.mInvCompatScaling;
}
/** Restores the paint to its default settings. */
public void reset() {
native_reset(mNativePaint);
setFlags(DEFAULT_PAINT_FLAGS);
+ mHasCompatScaling = false;
+ mCompatScaling = mInvCompatScaling = 1;
}
/**
@@ -225,9 +235,24 @@
mShader = src.mShader;
mTypeface = src.mTypeface;
mXfermode = src.mXfermode;
+ mHasCompatScaling = src.mHasCompatScaling;
+ mCompatScaling = src.mCompatScaling;
+ mInvCompatScaling = src.mInvCompatScaling;
}
}
+ /** @hide */
+ public void setCompatibilityScaling(float factor) {
+ if (factor == 1.0) {
+ mHasCompatScaling = false;
+ mCompatScaling = mInvCompatScaling = 1.0f;
+ } else {
+ mHasCompatScaling = true;
+ mCompatScaling = factor;
+ mInvCompatScaling = 1.0f/factor;
+ }
+ }
+
/**
* Return the paint's flags. Use the Flag enum to test flag values.
*
@@ -972,8 +997,17 @@
* @param count THe number of characters to measure, beginning with start
* @return The width of the text
*/
- public native float measureText(char[] text, int index, int count);
+ public float measureText(char[] text, int index, int count) {
+ if (!mHasCompatScaling) return native_measureText(text, index, count);
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ float w = native_measureText(text, index, count);
+ setTextSize(oldSize);
+ return w*mInvCompatScaling;
+ }
+ private native float native_measureText(char[] text, int index, int count);
+
/**
* Return the width of the text.
*
@@ -982,16 +1016,34 @@
* @param end 1 beyond the index of the last character to measure
* @return The width of the text
*/
- public native float measureText(String text, int start, int end);
+ public float measureText(String text, int start, int end) {
+ if (!mHasCompatScaling) return native_measureText(text, start, end);
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ float w = native_measureText(text, start, end);
+ setTextSize(oldSize);
+ return w*mInvCompatScaling;
+ }
+ private native float native_measureText(String text, int start, int end);
+
/**
* Return the width of the text.
*
* @param text The text to measure
* @return The width of the text
*/
- public native float measureText(String text);
+ public float measureText(String text) {
+ if (!mHasCompatScaling) return native_measureText(text);
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ float w = native_measureText(text);
+ setTextSize(oldSize);
+ return w*mInvCompatScaling;
+ }
+ private native float native_measureText(String text);
+
/**
* Return the width of the text.
*
@@ -1013,10 +1065,10 @@
}
char[] buf = TemporaryBuffer.obtain(end - start);
- TextUtils.getChars(text, start, end, buf, 0);
- float result = measureText(buf, 0, end - start);
+ TextUtils.getChars(text, start, end, buf, 0);
+ float result = measureText(buf, 0, end - start);
TemporaryBuffer.recycle(buf);
- return result;
+ return result;
}
/**
@@ -1036,8 +1088,22 @@
* @return The number of chars that were measured. Will always be <=
* abs(count).
*/
- public native int breakText(char[] text, int index, int count,
- float maxWidth, float[] measuredWidth);
+ public int breakText(char[] text, int index, int count,
+ float maxWidth, float[] measuredWidth) {
+ if (!mHasCompatScaling) {
+ return native_breakText(text, index, count, maxWidth, measuredWidth);
+ }
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ int res = native_breakText(text, index, count, maxWidth*mCompatScaling,
+ measuredWidth);
+ setTextSize(oldSize);
+ if (measuredWidth != null) measuredWidth[0] *= mInvCompatScaling;
+ return res;
+ }
+
+ private native int native_breakText(char[] text, int index, int count,
+ float maxWidth, float[] measuredWidth);
/**
* Measure the text, stopping early if the measured width exceeds maxWidth.
@@ -1094,8 +1160,22 @@
* @return The number of chars that were measured. Will always be <=
* abs(count).
*/
- public native int breakText(String text, boolean measureForwards,
- float maxWidth, float[] measuredWidth);
+ public int breakText(String text, boolean measureForwards,
+ float maxWidth, float[] measuredWidth) {
+ if (!mHasCompatScaling) {
+ return native_breakText(text, measureForwards, maxWidth, measuredWidth);
+ }
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ int res = native_breakText(text, measureForwards, maxWidth*mCompatScaling,
+ measuredWidth);
+ setTextSize(oldSize);
+ if (measuredWidth != null) measuredWidth[0] *= mInvCompatScaling;
+ return res;
+ }
+
+ private native int native_breakText(String text, boolean measureForwards,
+ float maxWidth, float[] measuredWidth);
/**
* Return the advance widths for the characters in the string.
@@ -1113,7 +1193,18 @@
|| count > widths.length) {
throw new ArrayIndexOutOfBoundsException();
}
- return native_getTextWidths(mNativePaint, text, index, count, widths);
+
+ if (!mHasCompatScaling) {
+ return native_getTextWidths(mNativePaint, text, index, count, widths);
+ }
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ int res = native_getTextWidths(mNativePaint, text, index, count, widths);
+ setTextSize(oldSize);
+ for (int i=0; i<res; i++) {
+ widths[i] *= mInvCompatScaling;
+ }
+ return res;
}
/**
@@ -1164,7 +1255,18 @@
if (end - start > widths.length) {
throw new ArrayIndexOutOfBoundsException();
}
- return native_getTextWidths(mNativePaint, text, start, end, widths);
+
+ if (!mHasCompatScaling) {
+ return native_getTextWidths(mNativePaint, text, start, end, widths);
+ }
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ int res = native_getTextWidths(mNativePaint, text, start, end, widths);
+ setTextSize(oldSize);
+ for (int i=0; i<res; i++) {
+ widths[i] *= mInvCompatScaling;
+ }
+ return res;
}
/**
diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java
index ddbbaf1..91a2bc1 100644
--- a/graphics/java/android/graphics/drawable/GradientDrawable.java
+++ b/graphics/java/android/graphics/drawable/GradientDrawable.java
@@ -319,7 +319,16 @@
}
}
else {
+ // since the caller is only giving us 1 value, we will force
+ // it to be square if the rect is too small in one dimension
+ // to show it. If we did nothing, Skia would clamp the rad
+ // independently along each axis, giving us a thin ellips
+ // if the rect were very wide but not very tall
float rad = st.mRadius;
+ float r = Math.min(mRect.width(), mRect.height()) * 0.5f;
+ if (rad > r) {
+ rad = r;
+ }
canvas.drawRoundRect(mRect, rad, rad, mFillPaint);
if (haveStroke) {
canvas.drawRoundRect(mRect, rad, rad, mStrokePaint);
diff --git a/graphics/java/android/renderscript/BaseObj.java b/graphics/java/android/renderscript/BaseObj.java
index c626d5d..e802ec51 100644
--- a/graphics/java/android/renderscript/BaseObj.java
+++ b/graphics/java/android/renderscript/BaseObj.java
@@ -66,8 +66,8 @@
mRS = null;
mID = 0;
mDestroyed = true;
- Log.v(RenderScript.LOG_TAG,
- getClass() + " auto finalizing object without having released the RS reference.");
+ //Log.v(RenderScript.LOG_TAG, getClass() +
+ // " auto finalizing object without having released the RS reference.");
}
super.finalize();
}
diff --git a/graphics/java/android/renderscript/Element.java b/graphics/java/android/renderscript/Element.java
index 0a586c4..73d8266 100644
--- a/graphics/java/android/renderscript/Element.java
+++ b/graphics/java/android/renderscript/Element.java
@@ -70,148 +70,169 @@
}
}
- public static final Element USER_U8 = new Element();
- public static final Element USER_I8 = new Element();
- public static final Element USER_U16 = new Element();
- public static final Element USER_I16 = new Element();
- public static final Element USER_U32 = new Element();
- public static final Element USER_I32 = new Element();
- public static final Element USER_FLOAT = new Element();
-
- public static final Element A_8 = new Element();
- public static final Element RGB_565 = new Element();
- public static final Element RGB_888 = new Element();
- public static final Element RGBA_5551 = new Element();
- public static final Element RGBA_4444 = new Element();
- public static final Element RGBA_8888 = new Element();
-
- public static final Element INDEX_16 = new Element();
- public static final Element XY_F32 = new Element();
- public static final Element XYZ_F32 = new Element();
- public static final Element ST_XY_F32 = new Element();
- public static final Element ST_XYZ_F32 = new Element();
- public static final Element NORM_XYZ_F32 = new Element();
- public static final Element NORM_ST_XYZ_F32 = new Element();
-
- static void initPredefined(RenderScript rs) {
- USER_U8.mEntries = new Entry[1];
- USER_U8.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.USER, false, 8, null);
- USER_U8.init(rs);
-
- USER_I8.mEntries = new Entry[1];
- USER_I8.mEntries[0] = new Entry(DataType.SIGNED, DataKind.USER, false, 8, null);
- USER_I8.init(rs);
-
- USER_U16.mEntries = new Entry[1];
- USER_U16.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.USER, false, 16, null);
- USER_U16.init(rs);
-
- USER_I16.mEntries = new Entry[1];
- USER_I16.mEntries[0] = new Entry(DataType.SIGNED, DataKind.USER, false, 16, null);
- USER_I16.init(rs);
-
- USER_U32.mEntries = new Entry[1];
- USER_U32.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.USER, false, 32, null);
- USER_U32.init(rs);
-
- USER_I32.mEntries = new Entry[1];
- USER_I32.mEntries[0] = new Entry(DataType.SIGNED, DataKind.USER, false, 32, null);
- USER_I32.init(rs);
-
- USER_FLOAT.mEntries = new Entry[1];
- USER_FLOAT.mEntries[0] = new Entry(DataType.FLOAT, DataKind.USER, false, 32, null);
- USER_FLOAT.init(rs);
-
- A_8.mEntries = new Entry[1];
- A_8.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.ALPHA, true, 8, "a");
- A_8.init(rs);
-
- RGB_565.mEntries = new Entry[3];
- RGB_565.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 5, "r");
- RGB_565.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 6, "g");
- RGB_565.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 5, "b");
- RGB_565.init(rs);
-
- RGB_888.mEntries = new Entry[3];
- RGB_888.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 8, "r");
- RGB_888.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 8, "g");
- RGB_888.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 8, "b");
- RGB_888.init(rs);
-
- RGBA_5551.mEntries = new Entry[4];
- RGBA_5551.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 5, "r");
- RGBA_5551.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 5, "g");
- RGBA_5551.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 5, "b");
- RGBA_5551.mEntries[3] = new Entry(DataType.UNSIGNED, DataKind.ALPHA, true, 1, "a");
- RGBA_5551.init(rs);
-
- RGBA_4444.mEntries = new Entry[4];
- RGBA_4444.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 4, "r");
- RGBA_4444.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 4, "g");
- RGBA_4444.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 4, "b");
- RGBA_4444.mEntries[3] = new Entry(DataType.UNSIGNED, DataKind.ALPHA, true, 4, "a");
- RGBA_4444.init(rs);
-
- RGBA_8888.mEntries = new Entry[4];
- RGBA_8888.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 8, "r");
- RGBA_8888.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 8, "g");
- RGBA_8888.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 8, "b");
- RGBA_8888.mEntries[3] = new Entry(DataType.UNSIGNED, DataKind.ALPHA, true, 8, "a");
- RGBA_8888.init(rs);
-
- INDEX_16.mEntries = new Entry[1];
- INDEX_16.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.INDEX, false, 16, "index");
- INDEX_16.init(rs);
-
- XY_F32.mEntries = new Entry[2];
- XY_F32.mEntries[0] = new Entry(DataType.FLOAT, DataKind.X, false, 32, "x");
- XY_F32.mEntries[1] = new Entry(DataType.FLOAT, DataKind.Y, false, 32, "y");
- XY_F32.init(rs);
-
- XYZ_F32.mEntries = new Entry[3];
- XYZ_F32.mEntries[0] = new Entry(DataType.FLOAT, DataKind.X, false, 32, "x");
- XYZ_F32.mEntries[1] = new Entry(DataType.FLOAT, DataKind.Y, false, 32, "y");
- XYZ_F32.mEntries[2] = new Entry(DataType.FLOAT, DataKind.Z, false, 32, "z");
- XYZ_F32.init(rs);
-
- ST_XY_F32.mEntries = new Entry[4];
- ST_XY_F32.mEntries[0] = new Entry(DataType.FLOAT, DataKind.S, false, 32, "s");
- ST_XY_F32.mEntries[1] = new Entry(DataType.FLOAT, DataKind.T, false, 32, "t");
- ST_XY_F32.mEntries[2] = new Entry(DataType.FLOAT, DataKind.X, false, 32, "x");
- ST_XY_F32.mEntries[3] = new Entry(DataType.FLOAT, DataKind.Y, false, 32, "y");
- ST_XY_F32.init(rs);
-
- ST_XYZ_F32.mEntries = new Entry[5];
- ST_XYZ_F32.mEntries[0] = new Entry(DataType.FLOAT, DataKind.S, false, 32, "s");
- ST_XYZ_F32.mEntries[1] = new Entry(DataType.FLOAT, DataKind.T, false, 32, "t");
- ST_XYZ_F32.mEntries[2] = new Entry(DataType.FLOAT, DataKind.X, false, 32, "x");
- ST_XYZ_F32.mEntries[3] = new Entry(DataType.FLOAT, DataKind.Y, false, 32, "y");
- ST_XYZ_F32.mEntries[4] = new Entry(DataType.FLOAT, DataKind.Z, false, 32, "z");
- ST_XYZ_F32.init(rs);
-
- NORM_XYZ_F32.mEntries = new Entry[6];
- NORM_XYZ_F32.mEntries[0] = new Entry(DataType.FLOAT, DataKind.NX, false, 32, "nx");
- NORM_XYZ_F32.mEntries[1] = new Entry(DataType.FLOAT, DataKind.NY, false, 32, "ny");
- NORM_XYZ_F32.mEntries[2] = new Entry(DataType.FLOAT, DataKind.NZ, false, 32, "nz");
- NORM_XYZ_F32.mEntries[3] = new Entry(DataType.FLOAT, DataKind.X, false, 32, "x");
- NORM_XYZ_F32.mEntries[4] = new Entry(DataType.FLOAT, DataKind.Y, false, 32, "y");
- NORM_XYZ_F32.mEntries[5] = new Entry(DataType.FLOAT, DataKind.Z, false, 32, "z");
- NORM_XYZ_F32.init(rs);
-
- NORM_ST_XYZ_F32.mEntries = new Entry[8];
- NORM_ST_XYZ_F32.mEntries[0] = new Entry(DataType.FLOAT, DataKind.NX, false, 32, "nx");
- NORM_ST_XYZ_F32.mEntries[1] = new Entry(DataType.FLOAT, DataKind.NY, false, 32, "ny");
- NORM_ST_XYZ_F32.mEntries[2] = new Entry(DataType.FLOAT, DataKind.NZ, false, 32, "nz");
- NORM_ST_XYZ_F32.mEntries[3] = new Entry(DataType.FLOAT, DataKind.S, false, 32, "s");
- NORM_ST_XYZ_F32.mEntries[4] = new Entry(DataType.FLOAT, DataKind.T, false, 32, "t");
- NORM_ST_XYZ_F32.mEntries[5] = new Entry(DataType.FLOAT, DataKind.X, false, 32, "x");
- NORM_ST_XYZ_F32.mEntries[6] = new Entry(DataType.FLOAT, DataKind.Y, false, 32, "y");
- NORM_ST_XYZ_F32.mEntries[7] = new Entry(DataType.FLOAT, DataKind.Z, false, 32, "z");
- NORM_ST_XYZ_F32.init(rs);
-
- rs.nInitElements(A_8.mID, RGBA_4444.mID, RGBA_8888.mID, RGB_565.mID);
+ public static Element USER_U8(RenderScript rs) {
+ if(rs.mElement_USER_U8 == null) {
+ rs.mElement_USER_U8 = new Element(rs, 1);
+ rs.mElement_USER_U8.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.USER, false, 8, null);
+ rs.mElement_USER_U8.init();
+ }
+ return rs.mElement_USER_U8;
}
+ public static Element USER_I8(RenderScript rs) {
+ if(rs.mElement_USER_I8 == null) {
+ rs.mElement_USER_I8 = new Element(rs, 1);
+ rs.mElement_USER_I8.mEntries[0] = new Entry(DataType.SIGNED, DataKind.USER, false, 8, null);
+ rs.mElement_USER_I8.init();
+ }
+ return rs.mElement_USER_I8;
+ }
+
+ public static Element USER_U16(RenderScript rs) {
+ if(rs.mElement_USER_U16 == null) {
+ rs.mElement_USER_U16 = new Element(rs, 1);
+ rs.mElement_USER_U16.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.USER, false, 16, null);
+ rs.mElement_USER_U16.init();
+ }
+ return rs.mElement_USER_U16;
+ }
+
+ public static Element USER_I16(RenderScript rs) {
+ if(rs.mElement_USER_I16 == null) {
+ rs.mElement_USER_I16 = new Element(rs, 1);
+ rs.mElement_USER_I16.mEntries[0] = new Entry(DataType.SIGNED, DataKind.USER, false, 16, null);
+ rs.mElement_USER_I16.init();
+ }
+ return rs.mElement_USER_I16;
+ }
+
+ public static Element USER_U32(RenderScript rs) {
+ if(rs.mElement_USER_U32 == null) {
+ rs.mElement_USER_U32 = new Element(rs, 1);
+ rs.mElement_USER_U32.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.USER, false, 32, null);
+ rs.mElement_USER_U32.init();
+ }
+ return rs.mElement_USER_U32;
+ }
+
+ public static Element USER_I32(RenderScript rs) {
+ if(rs.mElement_USER_I32 == null) {
+ rs.mElement_USER_I32 = new Element(rs, 1);
+ rs.mElement_USER_I32.mEntries[0] = new Entry(DataType.SIGNED, DataKind.USER, false, 32, null);
+ rs.mElement_USER_I32.init();
+ }
+ return rs.mElement_USER_I32;
+ }
+
+ public static Element USER_F32(RenderScript rs) {
+ if(rs.mElement_USER_FLOAT == null) {
+ rs.mElement_USER_FLOAT = new Element(rs, 1);
+ rs.mElement_USER_FLOAT.mEntries[0] = new Entry(DataType.FLOAT, DataKind.USER, false, 32, null);
+ rs.mElement_USER_FLOAT.init();
+ }
+ return rs.mElement_USER_FLOAT;
+ }
+
+ public static Element A_8(RenderScript rs) {
+ if(rs.mElement_A_8 == null) {
+ rs.mElement_A_8 = new Element(rs, 1);
+ rs.mElement_A_8.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.ALPHA, true, 8, "a");
+ rs.mElement_A_8.init();
+ }
+ return rs.mElement_A_8;
+ }
+
+ public static Element RGB_565(RenderScript rs) {
+ if(rs.mElement_RGB_565 == null) {
+ rs.mElement_RGB_565 = new Element(rs, 3);
+ rs.mElement_RGB_565.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 5, "r");
+ rs.mElement_RGB_565.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 6, "g");
+ rs.mElement_RGB_565.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 5, "b");
+ rs.mElement_RGB_565.init();
+ }
+ return rs.mElement_RGB_565;
+ }
+
+ public static Element RGB_888(RenderScript rs) {
+ if(rs.mElement_RGB_888 == null) {
+ rs.mElement_RGB_888 = new Element(rs, 3);
+ rs.mElement_RGB_888.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 8, "r");
+ rs.mElement_RGB_888.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 8, "g");
+ rs.mElement_RGB_888.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 8, "b");
+ rs.mElement_RGB_888.init();
+ }
+ return rs.mElement_RGB_888;
+ }
+
+ public static Element RGBA_5551(RenderScript rs) {
+ if(rs.mElement_RGBA_5551 == null) {
+ rs.mElement_RGBA_5551 = new Element(rs, 4);
+ rs.mElement_RGBA_5551.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 5, "r");
+ rs.mElement_RGBA_5551.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 5, "g");
+ rs.mElement_RGBA_5551.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 5, "b");
+ rs.mElement_RGBA_5551.mEntries[3] = new Entry(DataType.UNSIGNED, DataKind.ALPHA, true, 1, "a");
+ rs.mElement_RGBA_5551.init();
+ }
+ return rs.mElement_RGBA_5551;
+ }
+
+ public static Element RGBA_4444(RenderScript rs) {
+ if(rs.mElement_RGBA_4444 == null) {
+ rs.mElement_RGBA_4444 = new Element(rs, 4);
+ rs.mElement_RGBA_4444.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 4, "r");
+ rs.mElement_RGBA_4444.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 4, "g");
+ rs.mElement_RGBA_4444.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 4, "b");
+ rs.mElement_RGBA_4444.mEntries[3] = new Entry(DataType.UNSIGNED, DataKind.ALPHA, true, 4, "a");
+ rs.mElement_RGBA_4444.init();
+ }
+ return rs.mElement_RGBA_4444;
+ }
+
+ public static Element RGBA_8888(RenderScript rs) {
+ if(rs.mElement_RGBA_8888 == null) {
+ rs.mElement_RGBA_8888 = new Element(rs, 4);
+ rs.mElement_RGBA_8888.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.RED, true, 8, "r");
+ rs.mElement_RGBA_8888.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.GREEN, true, 8, "g");
+ rs.mElement_RGBA_8888.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.BLUE, true, 8, "b");
+ rs.mElement_RGBA_8888.mEntries[3] = new Entry(DataType.UNSIGNED, DataKind.ALPHA, true, 8, "a");
+ rs.mElement_RGBA_8888.init();
+ }
+ return rs.mElement_RGBA_8888;
+ }
+
+ public static Element INDEX_16(RenderScript rs) {
+ if(rs.mElement_INDEX_16 == null) {
+ rs.mElement_INDEX_16 = new Element(rs, 1);
+ rs.mElement_INDEX_16.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.INDEX, false, 16, "index");
+ rs.mElement_INDEX_16.init();
+ }
+ return rs.mElement_INDEX_16;
+ }
+
+ public static Element XY_F32(RenderScript rs) {
+ if(rs.mElement_XY_F32 == null) {
+ rs.mElement_XY_F32 = new Element(rs, 2);
+ rs.mElement_XY_F32.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.X, false, 32, "x");
+ rs.mElement_XY_F32.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.Y, false, 32, "y");
+ rs.mElement_XY_F32.init();
+ }
+ return rs.mElement_XY_F32;
+ }
+
+ public static Element XYZ_F32(RenderScript rs) {
+ if(rs.mElement_XYZ_F32 == null) {
+ rs.mElement_XYZ_F32 = new Element(rs, 3);
+ rs.mElement_XYZ_F32.mEntries[0] = new Entry(DataType.UNSIGNED, DataKind.X, false, 32, "x");
+ rs.mElement_XYZ_F32.mEntries[1] = new Entry(DataType.UNSIGNED, DataKind.Y, false, 32, "y");
+ rs.mElement_XYZ_F32.mEntries[2] = new Entry(DataType.UNSIGNED, DataKind.Z, false, 32, "z");
+ rs.mElement_XYZ_F32.init();
+ }
+ return rs.mElement_XYZ_F32;
+ }
+
+ static void initPredefined(RenderScript rs) {
+ rs.nInitElements(A_8(rs).mID, RGBA_4444(rs).mID, RGBA_8888(rs).mID, RGB_565(rs).mID);
+ }
public enum DataType {
FLOAT (0),
@@ -252,10 +273,10 @@
}
}
- Element() {
- super(null);
- mID = 0;
+ Element(RenderScript rs, int count) {
+ super(rs);
mSize = 0;
+ mEntries = new Entry[count];
}
public void destroy() throws IllegalStateException {
@@ -300,8 +321,7 @@
e.mSize = (bits + 7) >> 3;
}
- void init(RenderScript rs) {
- mRS = rs;
+ void init() {
internalCreate(mRS, this);
}
@@ -463,10 +483,9 @@
}
public Element create() {
- Element e = new Element();
- e.mEntries = new Entry[mEntryCount];
+ Element e = new Element(mRS, mEntryCount);
java.lang.System.arraycopy(mEntries, 0, e.mEntries, 0, mEntryCount);
- e.init(mRS);
+ e.init();
return e;
}
}
diff --git a/graphics/java/android/renderscript/ProgramVertex.java b/graphics/java/android/renderscript/ProgramVertex.java
index 2a11bfb..ddb23ac 100644
--- a/graphics/java/android/renderscript/ProgramVertex.java
+++ b/graphics/java/android/renderscript/ProgramVertex.java
@@ -110,7 +110,7 @@
mProjection = new Matrix();
mTexture = new Matrix();
- mAlloc = Allocation.createSized(rs, Element.USER_FLOAT, 48);
+ mAlloc = Allocation.createSized(rs, Element.USER_F32(rs), 48);
mAlloc.subData1D(MODELVIEW_OFFSET, 16, mModel.mMat);
mAlloc.subData1D(PROJECTION_OFFSET, 16, mProjection.mMat);
mAlloc.subData1D(TEXTURE_OFFSET, 16, mTexture.mMat);
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index ed61691..6b0b696 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -191,7 +191,25 @@
@SuppressWarnings({"FieldCanBeLocal"})
private Surface mSurface;
- private static boolean mElementsInitialized = false;
+
+ Element mElement_USER_U8;
+ Element mElement_USER_I8;
+ Element mElement_USER_U16;
+ Element mElement_USER_I16;
+ Element mElement_USER_U32;
+ Element mElement_USER_I32;
+ Element mElement_USER_FLOAT;
+
+ Element mElement_A_8;
+ Element mElement_RGB_565;
+ Element mElement_RGB_888;
+ Element mElement_RGBA_5551;
+ Element mElement_RGBA_4444;
+ Element mElement_RGBA_8888;
+
+ Element mElement_INDEX_16;
+ Element mElement_XY_F32;
+ Element mElement_XYZ_F32;
///////////////////////////////////////////////////////////////////////////////////
//
@@ -203,12 +221,7 @@
nDeviceSetConfig(mDev, 0, 1);
}
mContext = nContextCreate(mDev, mSurface, 0, useDepth);
-
- // TODO: This should be protected by a lock
- if(!mElementsInitialized) {
- Element.initPredefined(this);
- mElementsInitialized = true;
- }
+ Element.initPredefined(this);
}
public void destroy() {
diff --git a/graphics/java/android/renderscript/SimpleMesh.java b/graphics/java/android/renderscript/SimpleMesh.java
index dc74c61..987ec44 100644
--- a/graphics/java/android/renderscript/SimpleMesh.java
+++ b/graphics/java/android/renderscript/SimpleMesh.java
@@ -296,7 +296,7 @@
Builder smb = new Builder(mRS);
smb.addVertexType(mElement, mVtxCount / floatCount);
- smb.setIndexType(Element.INDEX_16, mIndexCount);
+ smb.setIndexType(Element.INDEX_16(mRS), mIndexCount);
smb.setPrimitive(Primitive.TRIANGLE);
SimpleMesh sm = smb.create();
diff --git a/graphics/java/android/renderscript/Type.java b/graphics/java/android/renderscript/Type.java
index df60990..ad4cf6b 100644
--- a/graphics/java/android/renderscript/Type.java
+++ b/graphics/java/android/renderscript/Type.java
@@ -162,12 +162,19 @@
}
public Builder(RenderScript rs, Element e) {
+ if(e.mID == 0) {
+ throw new IllegalArgumentException("Invalid element.");
+ }
+
mRS = rs;
mEntries = new Entry[4];
mElement = e;
}
public void add(Dimension d, int value) {
+ if(value < 1) {
+ throw new IllegalArgumentException("Values of less than 1 for Dimensions are not valid.");
+ }
if(mEntries.length >= mEntryCount) {
Entry[] en = new Entry[mEntryCount + 8];
System.arraycopy(mEntries, 0, en, 0, mEntries.length);
diff --git a/include/ui/CameraParameters.h b/include/ui/CameraParameters.h
index 9c3d4f0..9e4e140 100644
--- a/include/ui/CameraParameters.h
+++ b/include/ui/CameraParameters.h
@@ -215,15 +215,17 @@
// Values for flash mode settings.
// Flash will not be fired.
static const char FLASH_MODE_OFF[];
- // Flash will be fired automatically when required. The timing is decided by
- // camera driver.
+ // Flash will be fired automatically when required. The flash may be fired
+ // during preview, auto-focus, or snapshot depending on the driver.
static const char FLASH_MODE_AUTO[];
- // Flash will always be fired. The timing is decided by camera driver.
+ // Flash will always be fired during snapshot. The flash may also be
+ // fired during preview or auto-focus depending on the driver.
static const char FLASH_MODE_ON[];
// Flash will be fired in red-eye reduction mode.
static const char FLASH_MODE_RED_EYE[];
- // Constant emission of light. This can be used for video recording.
- static const char FLASH_MODE_VIDEO_LIGHT[];
+ // Constant emission of light during preview, auto-focus and snapshot.
+ // This can also be used for video recording.
+ static const char FLASH_MODE_TORCH[];
// Values for scene mode settings.
static const char SCENE_MODE_AUTO[];
diff --git a/keystore/tests/Android.mk b/keystore/tests/Android.mk
new file mode 100644
index 0000000..95604c6
--- /dev/null
+++ b/keystore/tests/Android.mk
@@ -0,0 +1,15 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+# We only want this apk build for tests.
+LOCAL_MODULE_TAGS := tests
+LOCAL_CERTIFICATE := platform
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+# Include all test java files.
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := KeyStoreTests
+
+include $(BUILD_PACKAGE)
diff --git a/keystore/tests/AndroidManifest.xml b/keystore/tests/AndroidManifest.xml
new file mode 100644
index 0000000..1a5f065
--- /dev/null
+++ b/keystore/tests/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android.security.tests"
+ android:sharedUserId="android.uid.system">
+
+ <application>
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <instrumentation android:name=".KeyStoreTestRunner"
+ android:targetPackage="android.security.tests"
+ android:label="KeyStore Tests">
+ </instrumentation>
+</manifest>
diff --git a/keystore/tests/src/android/security/KeyStoreTest.java b/keystore/tests/src/android/security/KeyStoreTest.java
new file mode 100755
index 0000000..569d8da
--- /dev/null
+++ b/keystore/tests/src/android/security/KeyStoreTest.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.security.tests;
+
+import android.app.Activity;
+import android.security.KeyStore;
+import android.test.ActivityUnitTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+/**
+ * Junit / Instrumentation test case for KeyStore class
+ *
+ * Running the test suite:
+ *
+ * adb shell am instrument -w android.security.tests/.KeyStoreTestRunner
+ */
+@MediumTest
+public class KeyStoreTest extends ActivityUnitTestCase<Activity> {
+ private static final String TEST_PASSWD = "12345678";
+ private static final String TEST_EMPTY_PASSWD = "";
+ private static final String TEST_SHORT_PASSWD = "short";
+ private static final String TEST_PASSWD2 = "87654321";
+ private static final String TEST_KEYNAME = "testkey";
+ private static final String TEST_KEYNAME1 = "testkey1";
+ private static final String TEST_KEYNAME2 = "testkey2";
+ private static final String TEST_KEYVALUE = "test value";
+
+ private KeyStore mKeyStore = null;
+
+ public KeyStoreTest() {
+ super(Activity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ mKeyStore = KeyStore.getInstance();
+ if (mKeyStore.test() != KeyStore.UNINITIALIZED) mKeyStore.reset();
+ assertEquals(KeyStore.UNINITIALIZED, mKeyStore.test());
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ mKeyStore.reset();
+ super.tearDown();
+ }
+
+ public void testTest() throws Exception {
+ assertEquals(KeyStore.UNINITIALIZED, mKeyStore.test());
+ }
+
+ public void testPassword() throws Exception {
+ //assertFalse(mKeyStore.password(TEST_EMPTY_PASSWD));
+ //assertFalse(mKeyStore.password(TEST_SHORT_PASSWD));
+
+ assertTrue(mKeyStore.password(TEST_PASSWD));
+ assertEquals(KeyStore.NO_ERROR, mKeyStore.test());
+
+ assertFalse(mKeyStore.password(TEST_PASSWD2, TEST_PASSWD2));
+ //assertFalse(mKeyStore.password(TEST_PASSWD, TEST_SHORT_PASSWD));
+
+ assertTrue(mKeyStore.password(TEST_PASSWD, TEST_PASSWD2));
+ }
+
+ public void testPut() throws Exception {
+ assertFalse(mKeyStore.put(TEST_KEYNAME, TEST_KEYVALUE));
+ assertFalse(mKeyStore.contains(TEST_KEYNAME));
+ mKeyStore.password(TEST_PASSWD);
+ assertTrue(mKeyStore.put(TEST_KEYNAME, TEST_KEYVALUE));
+ }
+
+ public void testDelete() throws Exception {
+ assertTrue(mKeyStore.delete(TEST_KEYNAME));
+ mKeyStore.password(TEST_PASSWD);
+ assertTrue(mKeyStore.delete(TEST_KEYNAME));
+
+ mKeyStore.put(TEST_KEYNAME, TEST_KEYVALUE);
+ assertTrue(mKeyStore.delete(TEST_KEYNAME));
+ }
+
+ public void testContains() throws Exception {
+ assertFalse(mKeyStore.contains(TEST_KEYNAME));
+
+ mKeyStore.password(TEST_PASSWD);
+ assertFalse(mKeyStore.contains(TEST_KEYNAME));
+
+ mKeyStore.put(TEST_KEYNAME, TEST_KEYVALUE);
+ assertTrue(mKeyStore.contains(TEST_KEYNAME));
+ }
+
+ public void testSaw() throws Exception {
+ String[] results = mKeyStore.saw(TEST_KEYNAME);
+ assertEquals(0, results.length);
+
+ mKeyStore.password(TEST_PASSWD);
+ mKeyStore.put(TEST_KEYNAME1, TEST_KEYVALUE);
+ mKeyStore.put(TEST_KEYNAME2, TEST_KEYVALUE);
+
+ results = mKeyStore.saw(TEST_KEYNAME);
+ assertEquals(2, results.length);
+ }
+
+ public void testLock() throws Exception {
+ assertFalse(mKeyStore.lock());
+
+ mKeyStore.password(TEST_PASSWD);
+ assertEquals(KeyStore.NO_ERROR, mKeyStore.test());
+
+ assertTrue(mKeyStore.lock());
+ assertEquals(KeyStore.LOCKED, mKeyStore.test());
+ }
+
+ public void testUnlock() throws Exception {
+ mKeyStore.password(TEST_PASSWD);
+ assertEquals(KeyStore.NO_ERROR, mKeyStore.test());
+ mKeyStore.lock();
+
+ assertFalse(mKeyStore.unlock(TEST_PASSWD2));
+ assertTrue(mKeyStore.unlock(TEST_PASSWD));
+ }
+}
diff --git a/keystore/tests/src/android/security/KeyStoreTestRunner.java b/keystore/tests/src/android/security/KeyStoreTestRunner.java
new file mode 100644
index 0000000..c85922d
--- /dev/null
+++ b/keystore/tests/src/android/security/KeyStoreTestRunner.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.security.tests;
+
+import junit.framework.TestSuite;
+
+import android.test.InstrumentationTestRunner;
+import android.test.InstrumentationTestSuite;
+
+/**
+ * Instrumentation Test Runner for all KeyStore unit tests.
+ *
+ * Running all tests:
+ *
+ * runtest keystore-unit
+ * or
+ * adb shell am instrument -w android.security.tests/.KeyStoreTestRunner
+ */
+
+public class KeyStoreTestRunner extends InstrumentationTestRunner {
+
+ @Override
+ public TestSuite getAllTests() {
+ TestSuite suite = new InstrumentationTestSuite(this);
+ suite.addTestSuite(android.security.tests.KeyStoreTest.class);
+ return suite;
+ }
+
+ @Override
+ public ClassLoader getLoader() {
+ return KeyStoreTestRunner.class.getClassLoader();
+ }
+}
diff --git a/libs/rs/java/Film/res/raw/filmimage.c b/libs/rs/java/Film/res/raw/filmimage.c
index 3bd9496..d154c68 100644
--- a/libs/rs/java/Film/res/raw/filmimage.c
+++ b/libs/rs/java/Film/res/raw/filmimage.c
@@ -4,7 +4,7 @@
#pragma stateVertex(orthoWindow)
#pragma stateRaster(flat)
#pragma stateFragment(PgmFragBackground)
-#pragma stateFragmentStore(MyBlend)
+#pragma stateStore(MyBlend)
int main(void* con, int ft, int launchID) {
diff --git a/libs/rs/java/Film/res/raw/filmstrip.c b/libs/rs/java/Film/res/raw/filmstrip.c
index 8fbfee1..bf75675 100644
--- a/libs/rs/java/Film/res/raw/filmstrip.c
+++ b/libs/rs/java/Film/res/raw/filmstrip.c
@@ -3,7 +3,7 @@
#pragma version(1)
#pragma stateVertex(PVBackground)
#pragma stateFragment(PFBackground)
-#pragma stateFragmentStore(PSBackground)
+#pragma stateStore(PSBackground)
#define STATE_TRIANGLE_OFFSET_COUNT 0
#define STATE_LAST_FOCUS 1
@@ -33,7 +33,7 @@
drawSimpleMesh(NAMED_mesh);
// Start of images.
- bindProgramFragmentStore(NAMED_PSImages);
+ bindProgramStore(NAMED_PSImages);
bindProgramFragment(NAMED_PFImages);
bindProgramVertex(NAMED_PVImages);
diff --git a/libs/rs/java/Film/src/com/android/film/FilmRS.java b/libs/rs/java/Film/src/com/android/film/FilmRS.java
index cee827b..b5b6723 100644
--- a/libs/rs/java/Film/src/com/android/film/FilmRS.java
+++ b/libs/rs/java/Film/src/com/android/film/FilmRS.java
@@ -152,9 +152,9 @@
mBufferIDs = new int[13];
mImages = new Allocation[13];
mAllocIDs = Allocation.createSized(mRS,
- Element.USER_FLOAT, mBufferIDs.length);
+ Element.USER_F32(mRS), mBufferIDs.length);
- Element ie = Element.RGB_565;
+ Element ie = Element.RGB_565(mRS);
mImages[0] = Allocation.createFromBitmapResourceBoxed(mRS, mRes, R.drawable.p01, ie, true);
mImages[1] = Allocation.createFromBitmapResourceBoxed(mRS, mRes, R.drawable.p02, ie, true);
mImages[2] = Allocation.createFromBitmapResourceBoxed(mRS, mRes, R.drawable.p03, ie, true);
@@ -195,7 +195,7 @@
{
mBufferState = new int[10];
mAllocState = Allocation.createSized(mRS,
- Element.USER_FLOAT, mBufferState.length);
+ Element.USER_F32(mRS), mBufferState.length);
mBufferState[STATE_LAST_FOCUS] = -1;
mAllocState.data(mBufferState);
}
@@ -238,12 +238,12 @@
mAllocOffsets = Allocation.createSized(mRS,
- Element.USER_I32, mFSM.mTriangleOffsets.length);
+ Element.USER_I32(mRS), mFSM.mTriangleOffsets.length);
mAllocOffsets.data(mFSM.mTriangleOffsets);
mScriptStrip.bindAllocation(mAllocOffsets, 4);
mAllocOffsetsTex = Allocation.createSized(mRS,
- Element.USER_FLOAT, mFSM.mTriangleOffsetsTex.length);
+ Element.USER_F32(mRS), mFSM.mTriangleOffsetsTex.length);
mAllocOffsetsTex.data(mFSM.mTriangleOffsetsTex);
mScriptStrip.bindAllocation(mAllocOffsetsTex, 5);
diff --git a/libs/rs/java/Fountain/res/raw/fountain.c b/libs/rs/java/Fountain/res/raw/fountain.c
index 86f0f99..f218f9b 100644
--- a/libs/rs/java/Fountain/res/raw/fountain.c
+++ b/libs/rs/java/Fountain/res/raw/fountain.c
@@ -1,8 +1,5 @@
// Fountain test script
#pragma version(1)
-#pragma stateVertex(default)
-#pragma stateFragment(default)
-#pragma stateFragmentStore(default)
int newPart = 0;
diff --git a/libs/rs/java/Rollo/res/raw/rollo.c b/libs/rs/java/Rollo/res/raw/rollo.c
index 6376715..b31be81 100644
--- a/libs/rs/java/Rollo/res/raw/rollo.c
+++ b/libs/rs/java/Rollo/res/raw/rollo.c
@@ -1,7 +1,7 @@
#pragma version(1)
#pragma stateVertex(PV)
#pragma stateFragment(PF)
-#pragma stateFragmentStore(PFS)
+#pragma stateStore(PFS)
// Scratch buffer layout
#define SCRATCH_FADE 0
@@ -105,7 +105,7 @@
if ((zoom < 1.1f) && (zoom > 0.9f)) {
bindProgramVertex(NAMED_PVOrtho);
bindProgramFragment(NAMED_PFText);
- bindProgramFragmentStore(NAMED_PFSText);
+ bindProgramStore(NAMED_PFSText);
rot = drawRot * scale;
index = 0;
@@ -144,7 +144,7 @@
bindProgramVertex(NAMED_PV);
bindProgramFragment(NAMED_PF);
- bindProgramFragmentStore(NAMED_PFS);
+ bindProgramStore(NAMED_PFS);
}
// Draw the selected icon
diff --git a/libs/rs/java/Rollo/res/raw/rollo2.c b/libs/rs/java/Rollo/res/raw/rollo2.c
index 256fa3c..5b5cb2d 100644
--- a/libs/rs/java/Rollo/res/raw/rollo2.c
+++ b/libs/rs/java/Rollo/res/raw/rollo2.c
@@ -1,7 +1,7 @@
#pragma version(1)
#pragma stateVertex(PV)
#pragma stateFragment(PF)
-#pragma stateFragmentStore(PFS)
+#pragma stateStore(PFS)
// Scratch buffer layout
#define SCRATCH_FADE 0
diff --git a/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java b/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java
index ba74b58..ff89bc3 100644
--- a/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java
+++ b/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java
@@ -182,7 +182,7 @@
mAllocScratchBuf = new int[32];
mAllocScratch = Allocation.createSized(mRS,
- Element.USER_I32, mAllocScratchBuf.length);
+ Element.USER_I32(mRS), mAllocScratchBuf.length);
mAllocScratch.data(mAllocScratchBuf);
Log.e("rs", "Done loading named");
@@ -193,14 +193,14 @@
mIcons = new Allocation[29];
mAllocIconIDBuf = new int[mIcons.length];
mAllocIconID = Allocation.createSized(mRS,
- Element.USER_I32, mAllocIconIDBuf.length);
+ Element.USER_I32(mRS), mAllocIconIDBuf.length);
mLabels = new Allocation[29];
mAllocLabelIDBuf = new int[mLabels.length];
mAllocLabelID = Allocation.createSized(mRS,
- Element.USER_I32, mLabels.length);
+ Element.USER_I32(mRS), mLabels.length);
- Element ie8888 = Element.RGBA_8888;
+ Element ie8888 = Element.RGBA_8888(mRS);
mIcons[0] = Allocation.createFromBitmapResource(mRS, mRes, R.raw.browser, ie8888, true);
mIcons[1] = Allocation.createFromBitmapResource(mRS, mRes, R.raw.market, ie8888, true);
@@ -284,7 +284,7 @@
p.setTextSize(20);
p.setColor(0xffffffff);
c.drawText(t, 2, 26, p);
- return Allocation.createFromBitmap(mRS, b, Element.RGBA_8888, true);
+ return Allocation.createFromBitmap(mRS, b, Element.RGBA_8888(mRS), true);
}
@@ -298,7 +298,7 @@
mAllocStateBuf = new int[] {0, 0, 0, 8, 0, 0, -1, 0, mAllocIconIDBuf.length, 0, 0};
mAllocState = Allocation.createSized(mRS,
- Element.USER_I32, mAllocStateBuf.length);
+ Element.USER_I32(mRS), mAllocStateBuf.length);
mScript.bindAllocation(mAllocState, 0);
mScript.bindAllocation(mAllocIconID, 1);
mScript.bindAllocation(mAllocScratch, 2);
diff --git a/libs/rs/rsAllocation.cpp b/libs/rs/rsAllocation.cpp
index 8ee6e5a..8ac9c26 100644
--- a/libs/rs/rsAllocation.cpp
+++ b/libs/rs/rsAllocation.cpp
@@ -141,6 +141,7 @@
if (size != sizeBytes) {
LOGE("Allocation::subData called with mismatched size expected %i, got %i", size, sizeBytes);
+ mType->dumpLOGV("type info");
return;
}
memcpy(ptr, data, size);
diff --git a/libs/rs/rsComponent.cpp b/libs/rs/rsComponent.cpp
index 42e2e4f..de074c8 100644
--- a/libs/rs/rsComponent.cpp
+++ b/libs/rs/rsComponent.cpp
@@ -102,4 +102,9 @@
return 0;
}
+void Component::dumpLOGV(const char *prefix) const
+{
+ ObjectBase::dumpLOGV(prefix);
+ LOGV("%s component: %i %i %i %i", prefix, mType, mKind, mIsNormalized, mBits);
+}
diff --git a/libs/rs/rsComponent.h b/libs/rs/rsComponent.h
index 290cd57..5366cc4 100644
--- a/libs/rs/rsComponent.h
+++ b/libs/rs/rsComponent.h
@@ -56,6 +56,7 @@
const char * getCType() const;
const char * getComponentName() const {return mName.string();}
+ virtual void dumpLOGV(const char *prefix) const;
protected:
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 70add92..169d5d4 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -103,12 +103,14 @@
ObjectBaseRef<ProgramFragment> frag(mFragment);
ObjectBaseRef<ProgramVertex> vtx(mVertex);
ObjectBaseRef<ProgramFragmentStore> store(mFragmentStore);
+ ObjectBaseRef<ProgramRaster> raster(mRaster);
bool ret = s->run(this, launchID);
mFragment.set(frag);
mVertex.set(vtx);
mFragmentStore.set(store);
+ mRaster.set(raster);
return ret;
}
@@ -124,7 +126,6 @@
eglQuerySurface(mEGL.mDisplay, mEGL.mSurface, EGL_HEIGHT, &mEGL.mHeight);
glViewport(0, 0, mEGL.mWidth, mEGL.mHeight);
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
- //glEnable(GL_POINT_SMOOTH);
glClearColor(mRootScript->mEnviroment.mClearColor[0],
mRootScript->mEnviroment.mClearColor[1],
diff --git a/libs/rs/rsElement.cpp b/libs/rs/rsElement.cpp
index a00fb52..67e4f14 100644
--- a/libs/rs/rsElement.cpp
+++ b/libs/rs/rsElement.cpp
@@ -55,6 +55,8 @@
rsAssert(!mComponents[idx].get());
rsAssert(idx < mComponentCount);
mComponents[idx].set(c);
+
+// Fixme: This should probably not be here
c->incUserRef();
}
@@ -179,6 +181,17 @@
}
+void Element::dumpLOGV(const char *prefix) const
+{
+ ObjectBase::dumpLOGV(prefix);
+ LOGV("%s Element: components %i, size %i", prefix, mComponentCount, getSizeBytes());
+ for (uint32_t ct = 0; ct < mComponentCount; ct++) {
+ char buf[1024];
+ sprintf(buf, "%s component %i: ", prefix, ct);
+ mComponents[ct]->dumpLOGV(buf);
+ }
+}
+
ElementState::ElementState()
{
}
@@ -201,6 +214,9 @@
void rsi_ElementAdd(Context *rsc, RsDataKind dk, RsDataType dt, bool isNormalized, size_t bits, const char *name)
{
ElementState * sec = &rsc->mStateElement;
+
+ rsAssert(bits > 0);
+
Component *c = new Component(rsc,
static_cast<Component::DataKind>(dk),
static_cast<Component::DataType>(dt),
@@ -215,6 +231,8 @@
ElementState * sec = &rsc->mStateElement;
Element *se = new Element(rsc, sec->mComponentBuildList.size());
+ rsAssert(se->getComponentCount() > 0);
+
for (size_t ct = 0; ct < se->getComponentCount(); ct++) {
se->setComponent(ct, sec->mComponentBuildList[ct]);
}
diff --git a/libs/rs/rsElement.h b/libs/rs/rsElement.h
index 82da441..b41c552 100644
--- a/libs/rs/rsElement.h
+++ b/libs/rs/rsElement.h
@@ -51,6 +51,9 @@
uint32_t getComponentCount() const {return mComponentCount;}
Component * getComponent(uint32_t idx) const {return mComponents[idx].get();}
+
+ void dumpLOGV(const char *prefix) const;
+
protected:
// deallocate any components that are part of this element.
void clear();
diff --git a/libs/rs/rsObjectBase.cpp b/libs/rs/rsObjectBase.cpp
index 720e8fc..0008ea4 100644
--- a/libs/rs/rsObjectBase.cpp
+++ b/libs/rs/rsObjectBase.cpp
@@ -41,7 +41,7 @@
remove();
}
-void ObjectBase::dumpObj(const char *op) const
+void ObjectBase::dumpLOGV(const char *op) const
{
if (mName) {
LOGV("%s RSobj %p, name %s, refs %i,%i from %s,%i links %p,%p,%p",
@@ -79,7 +79,7 @@
{
if (!(mSysRefCount | mUserRefCount)) {
if (mRSC && mRSC->props.mLogObjects) {
- dumpObj("checkDelete");
+ dumpLOGV("checkDelete");
}
delete this;
return true;
@@ -188,7 +188,7 @@
LOGV("Objects remaining.");
o = rsc->mObjHead;
while (o) {
- o->dumpObj(" ");
+ o->dumpLOGV(" ");
o = o->mNext;
}
}
diff --git a/libs/rs/rsObjectBase.h b/libs/rs/rsObjectBase.h
index ea5e37cc..dc85ac7 100644
--- a/libs/rs/rsObjectBase.h
+++ b/libs/rs/rsObjectBase.h
@@ -50,7 +50,7 @@
static void zeroAllUserRef(Context *rsc);
- void dumpObj(const char *op) const;
+ virtual void dumpLOGV(const char *prefix) const;
protected:
const char *mAllocFile;
diff --git a/libs/rs/rsScript.h b/libs/rs/rsScript.h
index 0067fc8..8aa4542 100644
--- a/libs/rs/rsScript.h
+++ b/libs/rs/rsScript.h
@@ -51,7 +51,7 @@
ObjectBaseRef<ProgramVertex> mVertex;
ObjectBaseRef<ProgramFragment> mFragment;
- //ObjectBaseRef<ProgramRaster> mRaster;
+ ObjectBaseRef<ProgramRaster> mRaster;
ObjectBaseRef<ProgramFragmentStore> mFragmentStore;
InvokeFunc_t mInvokables[MAX_SCRIPT_BANKS];
const char * mScriptText;
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index e63ed24..20088da 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -72,6 +72,9 @@
if (mEnviroment.mVertex.get()) {
rsc->setVertex(mEnviroment.mVertex.get());
}
+ if (mEnviroment.mRaster.get()) {
+ rsc->setRaster(mEnviroment.mRaster.get());
+ }
if (launchIndex == 0) {
mEnviroment.mStartTimeMillis
@@ -175,6 +178,7 @@
s->mEnviroment.mFragment.set(rsc->getDefaultProgramFragment());
s->mEnviroment.mVertex.set(rsc->getDefaultProgramVertex());
s->mEnviroment.mFragmentStore.set(rsc->getDefaultProgramFragmentStore());
+ s->mEnviroment.mRaster.set(rsc->getDefaultProgramRaster());
if (s->mProgram.mScript) {
const static int pragmaMax = 16;
@@ -204,6 +208,18 @@
}
if (!strcmp(str[ct], "stateRaster")) {
+ if (!strcmp(str[ct+1], "default")) {
+ continue;
+ }
+ if (!strcmp(str[ct+1], "parent")) {
+ s->mEnviroment.mRaster.clear();
+ continue;
+ }
+ ProgramRaster * pr = (ProgramRaster *)rsc->lookupName(str[ct+1]);
+ if (pr != NULL) {
+ s->mEnviroment.mRaster.set(pr);
+ continue;
+ }
LOGE("Unreconized value %s passed to stateRaster", str[ct+1]);
}
@@ -223,7 +239,7 @@
LOGE("Unreconized value %s passed to stateFragment", str[ct+1]);
}
- if (!strcmp(str[ct], "stateFragmentStore")) {
+ if (!strcmp(str[ct], "stateStore")) {
if (!strcmp(str[ct+1], "default")) {
continue;
}
@@ -237,7 +253,7 @@
s->mEnviroment.mFragmentStore.set(pfs);
continue;
}
- LOGE("Unreconized value %s passed to stateFragmentStore", str[ct+1]);
+ LOGE("Unreconized value %s passed to stateStore", str[ct+1]);
}
}
diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp
index f5f182f..8919465 100644
--- a/libs/rs/rsScriptC_Lib.cpp
+++ b/libs/rs/rsScriptC_Lib.cpp
@@ -672,6 +672,23 @@
glDrawArrays(GL_LINES, 0, 2);
}
+static void SC_drawPoint(float x, float y, float z)
+{
+ GET_TLS();
+ rsc->setupCheck();
+
+ float vtx[] = { x, y, z };
+
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glVertexPointer(3, GL_FLOAT, 0, vtx);
+
+ glDisableClientState(GL_NORMAL_ARRAY);
+ glDisableClientState(GL_COLOR_ARRAY);
+
+ glDrawArrays(GL_POINTS, 0, 1);
+}
+
static void SC_drawQuadTexCoords(float x1, float y1, float z1,
float u1, float v1,
float x2, float y2, float z2,
@@ -979,7 +996,7 @@
"float", "(float, float)" },
{ "abs", (void *)&abs,
"int", "(int)" },
- { "absf", (void *)&fabs,
+ { "absf", (void *)&fabsf,
"float", "(float)" },
{ "sinf_fast", (void *)&SC_sinf_fast,
"float", "(float)" },
@@ -1131,6 +1148,8 @@
"void", "(int)" },
{ "bindProgramFragmentStore", (void *)&SC_bindProgramFragmentStore,
"void", "(int)" },
+ { "bindProgramStore", (void *)&SC_bindProgramFragmentStore,
+ "void", "(int)" },
{ "bindProgramVertex", (void *)&SC_bindProgramVertex,
"void", "(int)" },
{ "bindSampler", (void *)&SC_bindSampler,
@@ -1155,6 +1174,8 @@
"void", "(float x1, float y1, float z1, float u1, float v1, float x2, float y2, float z2, float u2, float v2, float x3, float y3, float z3, float u3, float v3, float x4, float y4, float z4, float u4, float v4)" },
{ "drawLine", (void *)&SC_drawLine,
"void", "(float x1, float y1, float z1, float x2, float y2, float z2)" },
+ { "drawPoint", (void *)&SC_drawPoint,
+ "void", "(float x1, float y1, float z1)" },
{ "drawSimpleMesh", (void *)&SC_drawSimpleMesh,
"void", "(int ism)" },
{ "drawSimpleMeshRange", (void *)&SC_drawSimpleMeshRange,
diff --git a/libs/rs/rsType.cpp b/libs/rs/rsType.cpp
index 5ce9ca2..ddaa2f0 100644
--- a/libs/rs/rsType.cpp
+++ b/libs/rs/rsType.cpp
@@ -302,6 +302,16 @@
}
+void Type::dumpLOGV(const char *prefix) const
+{
+ char buf[1024];
+ ObjectBase::dumpLOGV(prefix);
+ LOGV("%s Type: x=%i y=%i z=%i mip=%i face=%i", prefix, mDimX, mDimY, mDimZ, mDimLOD, mFaces);
+ sprintf(buf, "%s element: ", prefix);
+ mElement->dumpLOGV(buf);
+}
+
+
//////////////////////////////////////////////////
//
namespace android {
diff --git a/libs/rs/rsType.h b/libs/rs/rsType.h
index 116f1c7..2c43405 100644
--- a/libs/rs/rsType.h
+++ b/libs/rs/rsType.h
@@ -69,6 +69,7 @@
void enableGLVertexBuffer() const;
+ void dumpLOGV(const char *prefix) const;
protected:
struct LOD {
diff --git a/libs/surfaceflinger/BufferAllocator.cpp b/libs/surfaceflinger/BufferAllocator.cpp
index 19867a5..caf9bec 100644
--- a/libs/surfaceflinger/BufferAllocator.cpp
+++ b/libs/surfaceflinger/BufferAllocator.cpp
@@ -102,6 +102,10 @@
rec.vaddr = 0;
rec.size = h * stride[0] * bytesPerPixel(format);
list.add(*handle, rec);
+ } else {
+ String8 s;
+ dump(s);
+ LOGD("%s", s.string());
}
return err;
diff --git a/libs/surfaceflinger/SurfaceFlinger.cpp b/libs/surfaceflinger/SurfaceFlinger.cpp
index 065425d..4ee176c 100644
--- a/libs/surfaceflinger/SurfaceFlinger.cpp
+++ b/libs/surfaceflinger/SurfaceFlinger.cpp
@@ -491,7 +491,7 @@
handlePageFlip();
const DisplayHardware& hw(graphicPlane(0).displayHardware());
- if (LIKELY(hw.canDraw())) {
+ if (LIKELY(hw.canDraw() && !isFrozen())) {
// repaint the framebuffer (if needed)
handleRepaint();
@@ -512,14 +512,6 @@
void SurfaceFlinger::postFramebuffer()
{
- if (isFrozen()) {
- // we are not allowed to draw, but pause a bit to make sure
- // apps don't end up using the whole CPU, if they depend on
- // surfaceflinger for synchronization.
- usleep(8333); // 8.3ms ~ 120fps
- return;
- }
-
if (!mInvalidRegion.isEmpty()) {
const DisplayHardware& hw(graphicPlane(0).displayHardware());
const nsecs_t now = systemTime();
diff --git a/libs/ui/CameraParameters.cpp b/libs/ui/CameraParameters.cpp
index 9200a97..8f1749d 100644
--- a/libs/ui/CameraParameters.cpp
+++ b/libs/ui/CameraParameters.cpp
@@ -89,7 +89,7 @@
const char CameraParameters::FLASH_MODE_AUTO[] = "auto";
const char CameraParameters::FLASH_MODE_ON[] = "on";
const char CameraParameters::FLASH_MODE_RED_EYE[] = "red-eye";
-const char CameraParameters::FLASH_MODE_VIDEO_LIGHT[] = "video-light";
+const char CameraParameters::FLASH_MODE_TORCH[] = "torch";
// Values for scene mode settings.
const char CameraParameters::SCENE_MODE_AUTO[] = "auto";
diff --git a/libs/utils/ResourceTypes.cpp b/libs/utils/ResourceTypes.cpp
index a5a8cc9..872b2bc 100644
--- a/libs/utils/ResourceTypes.cpp
+++ b/libs/utils/ResourceTypes.cpp
@@ -1743,7 +1743,7 @@
if (Res_GETPACKAGE(resID)+1 == 0) {
LOGW("No package identifier when getting name for resource number 0x%08x", resID);
} else {
- LOGW("Resources don't contain pacakge for resource number 0x%08x", resID);
+ LOGW("Resources don't contain package for resource number 0x%08x", resID);
}
return false;
}
@@ -1793,7 +1793,7 @@
if (Res_GETPACKAGE(resID)+1 == 0) {
LOGW("No package identifier when getting name for resource number 0x%08x", resID);
} else {
- LOGW("Resources don't contain pacakge for resource number 0x%08x", resID);
+ LOGW("Resources don't contain package for resource number 0x%08x", resID);
}
return BAD_INDEX;
}
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index d6463a1..bb16215a 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -725,7 +725,7 @@
* false if otherwise
*/
public boolean isBluetoothA2dpOn() {
- if (AudioSystem.getDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP,"")
+ if (AudioSystem.getDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP,"")
== AudioSystem.DEVICE_STATE_UNAVAILABLE) {
return false;
} else {
@@ -750,7 +750,7 @@
* false if otherwise
*/
public boolean isWiredHeadsetOn() {
- if (AudioSystem.getDeviceConnectionState(AudioSystem.DEVICE_OUT_WIRED_HEADSET,"")
+ if (AudioSystem.getDeviceConnectionState(AudioSystem.DEVICE_OUT_WIRED_HEADSET,"")
== AudioSystem.DEVICE_STATE_UNAVAILABLE) {
return false;
} else {
@@ -1063,7 +1063,9 @@
* {@link #FX_KEYPRESS_SPACEBAR},
* {@link #FX_KEYPRESS_DELETE},
* {@link #FX_KEYPRESS_RETURN},
- * @param volume Sound effect volume
+ * @param volume Sound effect volume.
+ * The volume value is a raw scalar so UI controls should be scaled logarithmically.
+ * If a volume of -1 is specified, the AudioManager.STREAM_MUSIC stream volume minus 3dB will be used.
* NOTE: This version is for applications that have their own
* settings panel for enabling and controlling volume.
*/
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 307cf22..f4c4586 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -619,11 +619,12 @@
/** @see AudioManager#playSoundEffect(int) */
public void playSoundEffect(int effectType) {
sendMsg(mAudioHandler, MSG_PLAY_SOUND_EFFECT, SHARED_MSG, SENDMSG_NOOP,
- effectType, SOUND_EFFECT_VOLUME, null, 0);
+ effectType, -1, null, 0);
}
/** @see AudioManager#playSoundEffect(int, float) */
public void playSoundEffectVolume(int effectType, float volume) {
+ loadSoundEffects();
sendMsg(mAudioHandler, MSG_PLAY_SOUND_EFFECT, SHARED_MSG, SENDMSG_NOOP,
effectType, (int) (volume * 1000), null, 0);
}
@@ -634,6 +635,9 @@
*/
public boolean loadSoundEffects() {
synchronized (mSoundEffectsLock) {
+ if (mSoundPool != null) {
+ return true;
+ }
mSoundPool = new SoundPool(NUM_SOUNDPOOL_CHANNELS, AudioSystem.STREAM_SYSTEM, 0);
if (mSoundPool == null) {
return false;
@@ -1197,10 +1201,20 @@
if (mSoundPool == null) {
return;
}
+ float volFloat;
+ // use STREAM_MUSIC volume attenuated by 3 dB if volume is not specified by caller
+ if (volume < 0) {
+ // Same linear to log conversion as in native AudioSystem::linearToLog() (AudioSystem.cpp)
+ float dBPerStep = (float)((0.5 * 100) / MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]);
+ int musicVolIndex = (mStreamStates[AudioSystem.STREAM_MUSIC].mIndex + 5) / 10;
+ float musicVoldB = dBPerStep * (musicVolIndex - MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]);
+ volFloat = (float)Math.pow(10, (musicVoldB - 3)/20);
+ } else {
+ volFloat = (float) volume / 1000.0f;
+ }
if (SOUND_EFFECT_FILES_MAP[effectType][1] > 0) {
- float v = (float) volume / 1000.0f;
- mSoundPool.play(SOUND_EFFECT_FILES_MAP[effectType][1], v, v, 0, 0, 1.0f);
+ mSoundPool.play(SOUND_EFFECT_FILES_MAP[effectType][1], volFloat, volFloat, 0, 0, 1.0f);
} else {
MediaPlayer mediaPlayer = new MediaPlayer();
if (mediaPlayer != null) {
@@ -1209,6 +1223,7 @@
mediaPlayer.setDataSource(filePath);
mediaPlayer.setAudioStreamType(AudioSystem.STREAM_SYSTEM);
mediaPlayer.prepare();
+ mediaPlayer.setVolume(volFloat, volFloat);
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
cleanupPlayer(mp);
diff --git a/media/java/android/media/MediaFile.java b/media/java/android/media/MediaFile.java
index 03ffc67..8180a7c 100644
--- a/media/java/android/media/MediaFile.java
+++ b/media/java/android/media/MediaFile.java
@@ -17,6 +17,7 @@
package android.media;
import android.content.ContentValues;
+import android.os.SystemProperties;
import android.provider.MediaStore.Audio;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Video;
@@ -103,7 +104,9 @@
addFileType("WAV", FILE_TYPE_WAV, "audio/x-wav");
addFileType("AMR", FILE_TYPE_AMR, "audio/amr");
addFileType("AWB", FILE_TYPE_AWB, "audio/amr-wb");
- addFileType("WMA", FILE_TYPE_WMA, "audio/x-ms-wma");
+ if (SystemProperties.getInt("ro.media.dec.aud.wma.enabled", 0) != 0) {
+ addFileType("WMA", FILE_TYPE_WMA, "audio/x-ms-wma");
+ }
addFileType("OGG", FILE_TYPE_OGG, "application/ogg");
addFileType("OGA", FILE_TYPE_OGG, "application/ogg");
addFileType("AAC", FILE_TYPE_AAC, "audio/aac");
@@ -123,8 +126,10 @@
addFileType("3GPP", FILE_TYPE_3GPP, "video/3gpp");
addFileType("3G2", FILE_TYPE_3GPP2, "video/3gpp2");
addFileType("3GPP2", FILE_TYPE_3GPP2, "video/3gpp2");
- addFileType("WMV", FILE_TYPE_WMV, "video/x-ms-wmv");
- addFileType("ASF", FILE_TYPE_ASF, "video/x-ms-asf");
+ if (SystemProperties.getInt("ro.media.dec.vid.wmv.enabled", 0) != 0) {
+ addFileType("WMV", FILE_TYPE_WMV, "video/x-ms-wmv");
+ addFileType("ASF", FILE_TYPE_ASF, "video/x-ms-asf");
+ }
addFileType("JPG", FILE_TYPE_JPEG, "image/jpeg");
addFileType("JPEG", FILE_TYPE_JPEG, "image/jpeg");
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index 21ad82b..afdc8f7 100644
--- a/media/java/android/media/MediaScanner.java
+++ b/media/java/android/media/MediaScanner.java
@@ -610,6 +610,13 @@
}
public void setMimeType(String mimeType) {
+ if ("audio/mp4".equals(mMimeType) &&
+ mimeType.startsWith("video")) {
+ // for feature parity with Donut, we force m4a files to keep the
+ // audio/mp4 mimetype, even if they are really "enhanced podcasts"
+ // with a video track
+ return;
+ }
mMimeType = mimeType;
mFileType = MediaFile.getFileTypeForMimeType(mimeType);
}
@@ -1273,7 +1280,8 @@
}
}
- if (bestMatch == null) {
+ // if the match is not for an audio file, bail out
+ if (bestMatch == null || ! mAudioUri.equals(bestMatch.mTableUri)) {
return false;
}
diff --git a/media/java/android/media/MiniThumbFile.java b/media/java/android/media/MiniThumbFile.java
index c607218..22c6459 100644
--- a/media/java/android/media/MiniThumbFile.java
+++ b/media/java/android/media/MiniThumbFile.java
@@ -25,6 +25,7 @@
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
+import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.util.Hashtable;
@@ -44,12 +45,6 @@
* only.
*/
public class MiniThumbFile {
- public static final int THUMBNAIL_TARGET_SIZE = 320;
- public static final int MINI_THUMB_TARGET_SIZE = 96;
- public static final int THUMBNAIL_MAX_NUM_PIXELS = 512 * 384;
- public static final int MINI_THUMB_MAX_NUM_PIXELS = 128 * 128;
- public static final int UNCONSTRAINED = -1;
-
private static final String TAG = "MiniThumbFile";
private static final int MINI_THUMB_DATA_FILE_VERSION = 3;
public static final int BYTES_PER_MINTHUMB = 10000;
@@ -57,6 +52,7 @@
private Uri mUri;
private RandomAccessFile mMiniThumbFile;
private FileChannel mChannel;
+ private ByteBuffer mBuffer;
private static Hashtable<String, MiniThumbFile> sThumbFiles =
new Hashtable<String, MiniThumbFile>();
@@ -123,13 +119,16 @@
// ignore exception
}
}
- mChannel = mMiniThumbFile.getChannel();
+ if (mMiniThumbFile != null) {
+ mChannel = mMiniThumbFile.getChannel();
+ }
}
return mMiniThumbFile;
}
public MiniThumbFile(Uri uri) {
mUri = uri;
+ mBuffer = ByteBuffer.allocateDirect(BYTES_PER_MINTHUMB);
}
public synchronized void deactivate() {
@@ -154,14 +153,16 @@
long pos = id * BYTES_PER_MINTHUMB;
FileLock lock = null;
try {
- lock = mChannel.lock();
+ mBuffer.clear();
+ mBuffer.limit(1 + 8);
+
+ lock = mChannel.lock(pos, 1 + 8, true);
// check that we can read the following 9 bytes
// (1 for the "status" and 8 for the long)
- if (r.length() >= pos + 1 + 8) {
- r.seek(pos);
- if (r.readByte() == 1) {
- long fileMagic = r.readLong();
- return fileMagic;
+ if (mChannel.read(mBuffer, pos) == 9) {
+ mBuffer.position(0);
+ if (mBuffer.get() == 1) {
+ return mBuffer.getLong();
}
}
} catch (IOException ex) {
@@ -196,26 +197,20 @@
long pos = id * BYTES_PER_MINTHUMB;
FileLock lock = null;
try {
- lock = mChannel.lock();
if (data != null) {
if (data.length > BYTES_PER_MINTHUMB - HEADER_SIZE) {
// not enough space to store it.
return;
}
- r.seek(pos);
- r.writeByte(0); // we have no data in this slot
+ mBuffer.clear();
+ mBuffer.put((byte) 1);
+ mBuffer.putLong(magic);
+ mBuffer.putInt(data.length);
+ mBuffer.put(data);
+ mBuffer.flip();
- // if magic is 0 then leave it alone
- if (magic == 0) {
- r.skipBytes(8);
- } else {
- r.writeLong(magic);
- }
- r.writeInt(data.length);
- r.write(data);
- r.seek(pos);
- r.writeByte(1); // we have data in this slot
- mChannel.force(true);
+ lock = mChannel.lock(pos, BYTES_PER_MINTHUMB, false);
+ mChannel.write(mBuffer, pos);
}
} catch (IOException ex) {
Log.e(TAG, "couldn't save mini thumbnail data for "
@@ -249,20 +244,22 @@
long pos = id * BYTES_PER_MINTHUMB;
FileLock lock = null;
try {
- lock = mChannel.lock();
- r.seek(pos);
- if (r.readByte() == 1) {
- long magic = r.readLong();
- int length = r.readInt();
- int got = r.read(data, 0, length);
- if (got != length) return null;
- return data;
- } else {
- return null;
+ mBuffer.clear();
+ lock = mChannel.lock(pos, BYTES_PER_MINTHUMB, true);
+ int size = mChannel.read(mBuffer, pos);
+ if (size > 1 + 8 + 4) { // flag, magic, length
+ mBuffer.position(0);
+ byte flag = mBuffer.get();
+ long magic = mBuffer.getLong();
+ int length = mBuffer.getInt();
+
+ if (size >= 1 + 8 + 4 + length && data.length >= length) {
+ mBuffer.get(data, 0, length);
+ return data;
+ }
}
} catch (IOException ex) {
- Log.w(TAG, "got exception when reading thumbnail: " + ex);
- return null;
+ Log.w(TAG, "got exception when reading thumbnail id=" + id + ", exception: " + ex);
} catch (RuntimeException ex) {
// Other NIO related exception like disk full, read only channel..etc
Log.e(TAG, "Got exception when reading thumbnail, id = " + id +
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index 8b1c9dc..a11477a 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -201,7 +201,7 @@
};
// TODO: Find real cause of Audio/Video delay in PV framework and remove this workaround
-/* static */ const uint32_t MediaPlayerService::AudioOutput::kAudioVideoDelayMs = 96;
+/* static */ const uint32_t MediaPlayerService::AudioOutput::kAudioVideoDelayMs = 0;
/* static */ int MediaPlayerService::AudioOutput::mMinBufferCount = 4;
/* static */ bool MediaPlayerService::AudioOutput::mIsOnEmulator = false;
diff --git a/media/libmediaplayerservice/MetadataRetrieverClient.cpp b/media/libmediaplayerservice/MetadataRetrieverClient.cpp
index b34421d..ddd4e24 100644
--- a/media/libmediaplayerservice/MetadataRetrieverClient.cpp
+++ b/media/libmediaplayerservice/MetadataRetrieverClient.cpp
@@ -51,15 +51,8 @@
mAlbumArtDealer = NULL;
mThumbnail = NULL;
mAlbumArt = NULL;
-
-#ifndef NO_OPENCORE
- mRetriever = new PVMetadataRetriever();
-#else
mRetriever = NULL;
-#endif
- if (mRetriever == NULL) {
- LOGE("failed to initialize the retriever");
- }
+ mMode = METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL;
}
MetadataRetrieverClient::~MetadataRetrieverClient()
@@ -74,7 +67,7 @@
char buffer[SIZE];
String8 result;
result.append(" MetadataRetrieverClient\n");
- snprintf(buffer, 255, " pid(%d)\n", mPid);
+ snprintf(buffer, 255, " pid(%d) mode(%d)\n", mPid, mMode);
result.append(buffer);
write(fd, result.string(), result.size());
write(fd, "\n", 1);
@@ -90,6 +83,7 @@
mAlbumArtDealer.clear();
mThumbnail.clear();
mAlbumArt.clear();
+ mMode = METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL;
IPCThreadState::self()->flushCommands();
}
@@ -134,7 +128,10 @@
LOGV("player type = %d", playerType);
sp<MediaMetadataRetrieverBase> p = createRetriever(playerType);
if (p == NULL) return NO_INIT;
- status_t ret = p->setDataSource(url);
+ status_t ret = p->setMode(mMode);
+ if (ret == NO_ERROR) {
+ ret = p->setDataSource(url);
+ }
if (ret == NO_ERROR) mRetriever = p;
return ret;
}
@@ -143,12 +140,6 @@
{
LOGV("setDataSource fd=%d, offset=%lld, length=%lld", fd, offset, length);
Mutex::Autolock lock(mLock);
- if (mRetriever == NULL) {
- LOGE("retriever is not initialized");
- ::close(fd);
- return NO_INIT;
- }
-
struct stat sb;
int ret = fstat(fd, &sb);
if (ret != 0) {
@@ -178,7 +169,10 @@
::close(fd);
return NO_INIT;
}
- status_t status = p->setDataSource(fd, offset, length);
+ status_t status = p->setMode(mMode);
+ if (status == NO_ERROR) {
+ p->setDataSource(fd, offset, length);
+ }
if (status == NO_ERROR) mRetriever = p;
::close(fd);
return status;
@@ -188,22 +182,30 @@
{
LOGV("setMode");
Mutex::Autolock lock(mLock);
- if (mRetriever == NULL) {
- LOGE("retriever is not initialized");
- return NO_INIT;
+ if (mode < METADATA_MODE_NOOP ||
+ mode > METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL) {
+ LOGE("invalid mode %d", mode);
+ return BAD_VALUE;
}
- return mRetriever->setMode(mode);
+ mMode = mode;
+ return NO_ERROR;
}
status_t MetadataRetrieverClient::getMode(int* mode) const
{
LOGV("getMode");
Mutex::Autolock lock(mLock);
+
+ // TODO:
+ // This may not be necessary.
+ // If setDataSource() has not been called, return the cached value
+ // otherwise, return the value retrieved from the retriever
if (mRetriever == NULL) {
- LOGE("retriever is not initialized");
- return NO_INIT;
+ *mode = mMode;
+ } else {
+ mRetriever->getMode(mode);
}
- return mRetriever->getMode(mode);
+ return NO_ERROR;
}
sp<IMemory> MetadataRetrieverClient::captureFrame()
diff --git a/media/libmediaplayerservice/MetadataRetrieverClient.h b/media/libmediaplayerservice/MetadataRetrieverClient.h
index 88d50bf..8cb8ad1 100644
--- a/media/libmediaplayerservice/MetadataRetrieverClient.h
+++ b/media/libmediaplayerservice/MetadataRetrieverClient.h
@@ -60,6 +60,7 @@
mutable Mutex mLock;
sp<MediaMetadataRetrieverBase> mRetriever;
pid_t mPid;
+ int mMode;
// Keep the shared memory copy of album art and capture frame (for thumbnail)
sp<MemoryDealer> mAlbumArtDealer;
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaPlayerStressTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaPlayerStressTest.java
index 3667fae..90d6ffa 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaPlayerStressTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaPlayerStressTest.java
@@ -40,7 +40,7 @@
private static final int NUMBER_OF_RANDOM_REPOSITION_AND_PLAY = 10;
private static final int NUMBER_OF_RANDOM_REPOSITION_AND_PLAY_SHORT = 5;
- private static final int NUMBER_OF_STRESS_LOOPS = 1000;
+ private static final int NUMBER_OF_STRESS_LOOPS = 500;
private static final int PLAYBACK_END_TOLERANCE = 5000;
private static final int WAIT_UNTIL_PLAYBACK_FINISH = 515000 ;
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java
index 10796f1..b6a1bfa 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java
@@ -49,9 +49,9 @@
private static final int NUMBER_OF_RECORDERANDPLAY_STRESS_LOOPS = 50;
private static final int NUMBER_OF_SWTICHING_LOOPS_BW_CAMERA_AND_RECORDER = 200;
private static final long WAIT_TIME_CAMERA_TEST = 3000; // 3 second
- private static final long WAIT_TIME_RECORDER_TEST = 60000; // 6 second
- private static final long WAIT_TIME_RECORD = 100000; // 10 seconds
- private static final long WAIT_TIME_PLAYBACK = 60000; // 6 second
+ private static final long WAIT_TIME_RECORDER_TEST = 6000; // 6 second
+ private static final long WAIT_TIME_RECORD = 10000; // 10 seconds
+ private static final long WAIT_TIME_PLAYBACK = 6000; // 6 second
private static final String OUTPUT_FILE = "/sdcard/temp";
private static final String OUTPUT_FILE_EXT = ".3gp";
private static final String MEDIA_STRESS_OUTPUT =
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/MediaMetadataRetrieverTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/MediaMetadataRetrieverTest.java
index 61a8a29..9927edaa 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/MediaMetadataRetrieverTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/MediaMetadataRetrieverTest.java
@@ -61,9 +61,8 @@
}
// Test frame capture
- // Suppressing until 1259652 is fixed.
- @Suppress
- public static void disableTestThumbnailCapture() throws Exception {
+ @LargeTest
+ public static void testThumbnailCapture() throws Exception {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
Log.v(TAG, "Thumbnail processing starts");
long startedAt = System.currentTimeMillis();
diff --git a/opengl/libagl/egl.cpp b/opengl/libagl/egl.cpp
index 9c0f7fd..37628b7 100644
--- a/opengl/libagl/egl.cpp
+++ b/opengl/libagl/egl.cpp
@@ -952,7 +952,8 @@
{ EGL_BIND_TO_TEXTURE_RGBA, EGL_FALSE },
{ EGL_BIND_TO_TEXTURE_RGB, EGL_FALSE },
{ EGL_MIN_SWAP_INTERVAL, 1 },
- { EGL_MAX_SWAP_INTERVAL, 4 },
+ { EGL_MAX_SWAP_INTERVAL, 1 },
+ { EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT },
};
// These configs can override the base attribute list
diff --git a/opengl/tests/gl2_basic/gl2_basic.cpp b/opengl/tests/gl2_basic/gl2_basic.cpp
index 9345de5..2361db5 100644
--- a/opengl/tests/gl2_basic/gl2_basic.cpp
+++ b/opengl/tests/gl2_basic/gl2_basic.cpp
@@ -175,23 +175,89 @@
checkGlError("glDrawArrays");
}
-#if 0
+void printEGLConfiguration(EGLDisplay dpy, EGLConfig config) {
-void PrintEGLConfig(EGLDisplay dpy, EGLConfig config) {
- int attrib[] = {EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_SIZE, EGL_ALPHA_SIZE,
- EGL_DEPTH_SIZE, EGL_SURFACE_TYPE, EGL_RENDERABLE_TYPE
- };
- for(size_t i = 0; i < sizeof(attrib)/sizeof(attrib[0]); i++) {
- int value = 0;
- int a = attrib[i];
- if (eglGetConfigAttrib(dpy, config, a, &value)) {
- printf(" 0x%04x: %d", a, value);
+#define X(VAL) {VAL, #VAL}
+ struct {EGLint attribute; const char* name;} names[] = {
+ X(EGL_BUFFER_SIZE),
+ X(EGL_ALPHA_SIZE),
+ X(EGL_BLUE_SIZE),
+ X(EGL_GREEN_SIZE),
+ X(EGL_RED_SIZE),
+ X(EGL_DEPTH_SIZE),
+ X(EGL_STENCIL_SIZE),
+ X(EGL_CONFIG_CAVEAT),
+ X(EGL_CONFIG_ID),
+ X(EGL_LEVEL),
+ X(EGL_MAX_PBUFFER_HEIGHT),
+ X(EGL_MAX_PBUFFER_PIXELS),
+ X(EGL_MAX_PBUFFER_WIDTH),
+ X(EGL_NATIVE_RENDERABLE),
+ X(EGL_NATIVE_VISUAL_ID),
+ X(EGL_NATIVE_VISUAL_TYPE),
+ X(EGL_PRESERVED_RESOURCES),
+ X(EGL_SAMPLES),
+ X(EGL_SAMPLE_BUFFERS),
+ X(EGL_SURFACE_TYPE),
+ X(EGL_TRANSPARENT_TYPE),
+ X(EGL_TRANSPARENT_RED_VALUE),
+ X(EGL_TRANSPARENT_GREEN_VALUE),
+ X(EGL_TRANSPARENT_BLUE_VALUE),
+ X(EGL_BIND_TO_TEXTURE_RGB),
+ X(EGL_BIND_TO_TEXTURE_RGBA),
+ X(EGL_MIN_SWAP_INTERVAL),
+ X(EGL_MAX_SWAP_INTERVAL),
+ X(EGL_LUMINANCE_SIZE),
+ X(EGL_ALPHA_MASK_SIZE),
+ X(EGL_COLOR_BUFFER_TYPE),
+ X(EGL_RENDERABLE_TYPE),
+ X(EGL_CONFORMANT),
+ };
+#undef X
+
+ for (size_t j = 0; j < sizeof(names) / sizeof(names[0]); j++) {
+ EGLint value = -1;
+ EGLint returnVal = eglGetConfigAttrib(dpy, config, names[j].attribute, &value);
+ EGLint error = eglGetError();
+ if (returnVal && error == EGL_SUCCESS) {
+ printf(" %s: ", names[j].name);
+ printf("%d (0x%x)", value, value);
}
- }
- printf("\n");
+ }
+ printf("\n");
}
-#endif
+int printEGLConfigurations(EGLDisplay dpy) {
+ EGLint numConfig = 0;
+ EGLint returnVal = eglGetConfigs(dpy, NULL, 0, &numConfig);
+ checkEglError("eglGetConfigs", returnVal);
+ if (!returnVal) {
+ return false;
+ }
+
+ printf("Number of EGL configuration: %d\n", numConfig);
+
+ EGLConfig* configs = (EGLConfig*) malloc(sizeof(EGLConfig) * numConfig);
+ if (! configs) {
+ printf("Could not allocate configs.\n");
+ return false;
+ }
+
+ returnVal = eglGetConfigs(dpy, configs, numConfig, &numConfig);
+ checkEglError("eglGetConfigs", returnVal);
+ if (!returnVal) {
+ free(configs);
+ return false;
+ }
+
+ for(int i = 0; i < numConfig; i++) {
+ printf("Configuration %d\n", i);
+ printEGLConfiguration(dpy, configs[i]);
+ }
+
+ free(configs);
+ return true;
+}
int main(int argc, char** argv) {
EGLBoolean returnValue;
@@ -199,7 +265,7 @@
EGLint context_attribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };
EGLint s_configAttribs[] = {
- EGL_SURFACE_TYPE, EGL_PBUFFER_BIT|EGL_WINDOW_BIT,
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NONE };
EGLint majorVersion;
@@ -226,13 +292,25 @@
return 0;
}
+ if (!printEGLConfigurations(dpy)) {
+ printf("printEGLConfigurations failed\n");
+ return 0;
+ }
+
+ checkEglError("printEGLConfigurations");
+
EGLNativeWindowType window = android_createDisplaySurface();
returnValue = EGLUtils::selectConfigForNativeWindow(dpy, s_configAttribs, window, &myConfig);
if (returnValue) {
- printf("EGLUtils::selectConfigForNativeWindow() returned %d", returnValue);
- return 0;
+ printf("EGLUtils::selectConfigForNativeWindow() returned %d", returnValue);
+ return 0;
}
+ checkEglError("EGLUtils::selectConfigForNativeWindow");
+
+ printf("Chose this configuration:\n");
+ printEGLConfiguration(dpy, myConfig);
+
surface = eglCreateWindowSurface(dpy, myConfig, window, NULL);
checkEglError("eglCreateWindowSurface");
if (surface == EGL_NO_SURFACE) {
diff --git a/opengl/tests/tritex/tritex.cpp b/opengl/tests/tritex/tritex.cpp
index 629b53c..3365ab4 100644
--- a/opengl/tests/tritex/tritex.cpp
+++ b/opengl/tests/tritex/tritex.cpp
@@ -123,7 +123,7 @@
EGLConfig myConfig = {0};
EGLint attrib[] =
{
- EGL_SURFACE_TYPE, EGL_PBUFFER_BIT|EGL_WINDOW_BIT,
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_DEPTH_SIZE, 16,
EGL_NONE
};
diff --git a/packages/SettingsProvider/res/drawable-hdpi/ic_launcher_settings.png b/packages/SettingsProvider/res/drawable-hdpi/ic_launcher_settings.png
new file mode 100644
index 0000000..ff34a7f
--- /dev/null
+++ b/packages/SettingsProvider/res/drawable-hdpi/ic_launcher_settings.png
Binary files differ
diff --git a/packages/SettingsProvider/res/drawable/ic_launcher_settings.png b/packages/SettingsProvider/res/drawable/ic_launcher_settings.png
index 16db056..aad82c5 100755
--- a/packages/SettingsProvider/res/drawable/ic_launcher_settings.png
+++ b/packages/SettingsProvider/res/drawable/ic_launcher_settings.png
Binary files differ
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index db1b5f1..fbfe755 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -30,6 +30,7 @@
<bool name="def_screen_brightness_automatic_mode">false</bool>
<fraction name="def_window_animation_scale">100%</fraction>
<fraction name="def_window_transition_scale">100%</fraction>
+ <bool name="def_haptic_feedback">true</bool>
<bool name="def_bluetooth_on">false</bool>
<bool name="def_install_non_market_apps">false</bool>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index c561078..e25c648 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -71,7 +71,7 @@
// database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion'
// is properly propagated through your change. Not doing so will result in a loss of user
// settings.
- private static final int DATABASE_VERSION = 41;
+ private static final int DATABASE_VERSION = 42;
private Context mContext;
@@ -502,6 +502,25 @@
upgradeVersion = 41;
}
+ if (upgradeVersion == 41) {
+ /*
+ * Initialize newly public haptic feedback setting
+ */
+ db.beginTransaction();
+ try {
+ db.execSQL("DELETE FROM system WHERE name='"
+ + Settings.System.HAPTIC_FEEDBACK_ENABLED + "'");
+ SQLiteStatement stmt = db.compileStatement("INSERT INTO system(name,value)"
+ + " VALUES(?,?);");
+ loadDefaultHapticSettings(stmt);
+ stmt.close();
+ db.setTransactionSuccessful();
+ } finally {
+ db.endTransaction();
+ }
+ upgradeVersion = 42;
+ }
+
if (upgradeVersion != currentVersion) {
Log.w(TAG, "Got stuck trying to upgrade from version " + upgradeVersion
+ ", must wipe the settings provider");
@@ -746,6 +765,8 @@
loadBooleanSetting(stmt, Settings.System.ACCELEROMETER_ROTATION,
R.bool.def_accelerometer_rotation);
+ loadDefaultHapticSettings(stmt);
+
stmt.close();
}
@@ -756,6 +777,11 @@
R.fraction.def_window_transition_scale, 1);
}
+ private void loadDefaultHapticSettings(SQLiteStatement stmt) {
+ loadBooleanSetting(stmt, Settings.System.HAPTIC_FEEDBACK_ENABLED,
+ R.bool.def_haptic_feedback);
+ }
+
private void loadSecureSettings(SQLiteDatabase db) {
SQLiteStatement stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
+ " VALUES(?,?);");
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java
index 77da8f1..3b91a38 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java
@@ -40,16 +40,23 @@
private Context mContext;
private AudioManager mAudioManager;
private IContentService mContentService;
+ private IPowerManager mPowerManager;
private static final String[] PROVIDERS = { "gmail-ls", "calendar", "contacts" };
private boolean mSilent;
private boolean mVibrate;
+ private boolean mHasAutoBrightness;
public SettingsHelper(Context context) {
mContext = context;
mAudioManager = (AudioManager) context
.getSystemService(Context.AUDIO_SERVICE);
mContentService = ContentResolver.getContentService();
+ mPowerManager = IPowerManager.Stub.asInterface(
+ ServiceManager.getService("power"));
+
+ mHasAutoBrightness = context.getResources().getBoolean(
+ com.android.internal.R.bool.config_automatic_brightness_available);
}
/**
@@ -64,6 +71,18 @@
public boolean restoreValue(String name, String value) {
if (Settings.System.SCREEN_BRIGHTNESS.equals(name)) {
setBrightness(Integer.parseInt(value));
+ } else if (Settings.System.SCREEN_BRIGHTNESS_MODE.equals(name)) {
+ if (mHasAutoBrightness) {
+ // When setting auto-brightness, must reset the brightness afterwards
+ try {
+ int curBrightness = Settings.System.getInt(mContext.getContentResolver(),
+ Settings.System.SCREEN_BRIGHTNESS);
+ setAutoBrightness(Integer.parseInt(value) != 0);
+ setBrightness(curBrightness);
+ } catch (Settings.SettingNotFoundException e) {
+ // no brightness setting at all? weird. skip this then.
+ }
+ }
} else if (Settings.System.SOUND_EFFECTS_ENABLED.equals(name)) {
setSoundEffects(Integer.parseInt(value) == 1);
} else if (Settings.Secure.LOCATION_PROVIDERS_ALLOWED.equals(name)) {
@@ -73,6 +92,16 @@
return true;
}
+ private void setAutoBrightness(boolean value) {
+ if (mPowerManager != null) {
+ try {
+ mPowerManager.setAutoBrightness(value);
+ } catch (RemoteException e) {
+ // unable to reach the power manager; skip
+ }
+ }
+ }
+
private void setGpsLocation(String value) {
final String GPS = LocationManager.GPS_PROVIDER;
boolean enabled =
diff --git a/packages/SubscribedFeedsProvider/src/com/android/providers/subscribedfeeds/SubscribedFeedsIntentService.java b/packages/SubscribedFeedsProvider/src/com/android/providers/subscribedfeeds/SubscribedFeedsIntentService.java
index b854f86..2e910b7 100644
--- a/packages/SubscribedFeedsProvider/src/com/android/providers/subscribedfeeds/SubscribedFeedsIntentService.java
+++ b/packages/SubscribedFeedsProvider/src/com/android/providers/subscribedfeeds/SubscribedFeedsIntentService.java
@@ -111,7 +111,7 @@
+ "and " + SubscribedFeeds.Feeds.FEED + "= ?";
try {
// TODO(fredq) fix the hardcoded type
- final Account account = new Account(accountName, "com.google.GAIA");
+ final Account account = new Account(accountName, "com.google");
c = context.getContentResolver().query(SubscribedFeeds.Feeds.CONTENT_URI,
null, where, new String[]{account.name, account.type, feed}, null);
if (c.getCount() == 0) {
diff --git a/packages/SubscribedFeedsProvider/src/com/android/providers/subscribedfeeds/SubscribedFeedsProvider.java b/packages/SubscribedFeedsProvider/src/com/android/providers/subscribedfeeds/SubscribedFeedsProvider.java
index 2647752..8585082 100644
--- a/packages/SubscribedFeedsProvider/src/com/android/providers/subscribedfeeds/SubscribedFeedsProvider.java
+++ b/packages/SubscribedFeedsProvider/src/com/android/providers/subscribedfeeds/SubscribedFeedsProvider.java
@@ -127,7 +127,7 @@
protected void onAccountsChanged(Account[] accountsArray) {
super.onAccountsChanged(accountsArray);
for (Account account : accountsArray) {
- if (account.type.equals("com.google.GAIA")) {
+ if (account.type.equals("com.google")) {
ContentResolver.setSyncAutomatically(account, "subscribedfeeds", true);
}
}
diff --git a/packages/TtsService/AndroidManifest.xml b/packages/TtsService/AndroidManifest.xml
index bd17ba0..46e0ad1 100755
--- a/packages/TtsService/AndroidManifest.xml
+++ b/packages/TtsService/AndroidManifest.xml
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.tts">
- <application android:label="TTS Service">
+ <application android:label="TTS Service"
+ android:icon="@drawable/ic_launcher_text_to_speech">
<service android:enabled="true"
android:name=".TtsService"
android:label="TTS Service">
diff --git a/packages/TtsService/res/drawable-hdpi/ic_launcher_text_to_speech.png b/packages/TtsService/res/drawable-hdpi/ic_launcher_text_to_speech.png
new file mode 100644
index 0000000..f075e0f
--- /dev/null
+++ b/packages/TtsService/res/drawable-hdpi/ic_launcher_text_to_speech.png
Binary files differ
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java
index cb917db..ef0cbee 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/java/com/android/server/BackupManagerService.java
@@ -106,6 +106,7 @@
private static final int BACKUP_PACKAGE_EVENT = 2824;
private static final int BACKUP_SUCCESS_EVENT = 2825;
private static final int BACKUP_RESET_EVENT = 2826;
+ private static final int BACKUP_INITIALIZE_EVENT = 2827;
private static final int RESTORE_START_EVENT = 2830;
private static final int RESTORE_TRANSPORT_FAILURE_EVENT = 2831;
@@ -163,8 +164,10 @@
IBackupAgent mConnectedAgent;
volatile boolean mConnecting;
volatile boolean mBackupOrRestoreInProgress = false;
+ volatile long mLastBackupPass;
+ volatile long mNextBackupPass;
- // A similar synchronicity mechanism around clearing apps' data for restore
+ // A similar synchronization mechanism around clearing apps' data for restore
final Object mClearDataLock = new Object();
volatile boolean mClearingData;
@@ -634,9 +637,15 @@
switch (msg.what) {
case MSG_RUN_BACKUP:
{
+ mLastBackupPass = System.currentTimeMillis();
+ mNextBackupPass = mLastBackupPass + BACKUP_INTERVAL;
+
IBackupTransport transport = getTransport(mCurrentTransport);
if (transport == null) {
Log.v(TAG, "Backup requested but no transport available");
+ synchronized (mQueueLock) {
+ mBackupOrRestoreInProgress = false;
+ }
mWakelock.release();
break;
}
@@ -671,6 +680,9 @@
(new PerformBackupThread(transport, queue, oldJournal)).start();
} else {
Log.v(TAG, "Backup requested but nothing pending");
+ synchronized (mQueueLock) {
+ mBackupOrRestoreInProgress = false;
+ }
mWakelock.release();
}
}
@@ -1051,7 +1063,14 @@
// If we haven't stored anything yet, we need to do an init operation.
if (status == BackupConstants.TRANSPORT_OK && mEverStoredApps.size() == 0) {
+ Log.i(TAG, "Initializing (wiping) backup transport storage");
status = mTransport.initializeDevice();
+ if (status == BackupConstants.TRANSPORT_OK) {
+ EventLog.writeEvent(BACKUP_INITIALIZE_EVENT);
+ } else {
+ EventLog.writeEvent(BACKUP_TRANSPORT_FAILURE_EVENT, "(initialize)");
+ Log.e(TAG, "Transport error in initializeDevice()");
+ }
}
// The package manager doesn't have a proper <application> etc, but since
@@ -1080,7 +1099,7 @@
int millis = (int) (SystemClock.elapsedRealtime() - startRealtime);
EventLog.writeEvent(BACKUP_SUCCESS_EVENT, mQueue.size(), millis);
} else {
- EventLog.writeEvent(BACKUP_TRANSPORT_FAILURE_EVENT, "");
+ EventLog.writeEvent(BACKUP_TRANSPORT_FAILURE_EVENT, "(finish)");
Log.e(TAG, "Transport error in finishBackup()");
}
}
@@ -1686,6 +1705,9 @@
}
// Last but not least, release the cpu
+ synchronized (mQueueLock) {
+ mBackupOrRestoreInProgress = false;
+ }
mWakelock.release();
}
}
@@ -1700,7 +1722,6 @@
@Override
public void run() {
- int status;
try {
for (String transportName : mQueue) {
IBackupTransport transport = getTransport(transportName);
@@ -1709,33 +1730,30 @@
continue;
}
- status = BackupConstants.TRANSPORT_OK;
- File stateDir = null;
+ Log.i(TAG, "Initializing (wiping) backup transport storage: " + transportName);
+ EventLog.writeEvent(BACKUP_START_EVENT, transport.transportDirName());
+ long startRealtime = SystemClock.elapsedRealtime();
+ int status = transport.initializeDevice();
- Log.i(TAG, "Device init on " + transport.transportDirName());
-
- stateDir = new File(mBaseStateDir, transport.transportDirName());
-
- status = transport.initializeDevice();
- if (status != BackupConstants.TRANSPORT_OK) {
- Log.e(TAG, "Error from initializeDevice: " + status);
- }
if (status == BackupConstants.TRANSPORT_OK) {
status = transport.finishBackup();
}
// Okay, the wipe really happened. Clean up our local bookkeeping.
if (status == BackupConstants.TRANSPORT_OK) {
- resetBackupState(stateDir);
+ Log.i(TAG, "Device init successful");
+ int millis = (int) (SystemClock.elapsedRealtime() - startRealtime);
+ EventLog.writeEvent(BACKUP_INITIALIZE_EVENT);
+ resetBackupState(new File(mBaseStateDir, transport.transportDirName()));
+ EventLog.writeEvent(BACKUP_SUCCESS_EVENT, 0, millis);
synchronized (mQueueLock) {
recordInitPendingLocked(false, transportName);
}
- }
-
- // If this didn't work, requeue this one and try again
- // after a suitable interval
- if (status != BackupConstants.TRANSPORT_OK) {
- Log.i(TAG, "Device init failed");
+ } else {
+ // If this didn't work, requeue this one and try again
+ // after a suitable interval
+ Log.e(TAG, "Transport error in initializeDevice()");
+ EventLog.writeEvent(BACKUP_TRANSPORT_FAILURE_EVENT, "(initialize)");
synchronized (mQueueLock) {
recordInitPendingLocked(true, transportName);
}
@@ -1745,11 +1763,7 @@
+ transportName + " resched in " + delay);
mAlarmManager.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + delay, mRunInitIntent);
- } else {
- // success!
- Log.i(TAG, "Device init successful");
}
-
}
} catch (RemoteException e) {
// can't happen; the transports are local
@@ -1979,6 +1993,7 @@
long when = System.currentTimeMillis() + delayBeforeFirstBackup;
mAlarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, when,
BACKUP_INTERVAL, mRunBackupIntent);
+ mNextBackupPass = when;
}
// Report whether the backup mechanism is currently enabled
@@ -2185,28 +2200,43 @@
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
synchronized (mQueueLock) {
pw.println("Backup Manager is " + (mEnabled ? "enabled" : "disabled")
- + " / " + (!mProvisioned ? "not " : "") + "provisioned");
+ + " / " + (!mProvisioned ? "not " : "") + "provisioned / "
+ + (!mBackupOrRestoreInProgress ? "not " : "") + "in progress / "
+ + (this.mPendingInits.size() == 0 ? "not " : "") + "pending init / "
+ + (!mInitInProgress ? "not " : "") + "initializing");
+ pw.println("Last backup pass: " + mLastBackupPass
+ + " (now = " + System.currentTimeMillis() + ')');
+ pw.println(" next scheduled: " + mNextBackupPass);
+
pw.println("Available transports:");
for (String t : listAllTransports()) {
String pad = (t.equals(mCurrentTransport)) ? " * " : " ";
pw.println(pad + t);
}
+
+ pw.println("Pending init: " + mPendingInits.size());
+ for (String s : mPendingInits) {
+ pw.println(" " + s);
+ }
+
int N = mBackupParticipants.size();
- pw.println("Participants: " + N);
+ pw.println("Participants:");
for (int i=0; i<N; i++) {
int uid = mBackupParticipants.keyAt(i);
pw.print(" uid: ");
pw.println(uid);
HashSet<ApplicationInfo> participants = mBackupParticipants.valueAt(i);
for (ApplicationInfo app: participants) {
- pw.println(" " + app.toString());
+ pw.println(" " + app.packageName);
}
}
+
pw.println("Ever backed up: " + mEverStoredApps.size());
for (String pkg : mEverStoredApps) {
pw.println(" " + pkg);
}
- pw.println("Pending: " + mPendingBackups.size());
+
+ pw.println("Pending backup: " + mPendingBackups.size());
for (BackupRequest req : mPendingBackups.values()) {
pw.println(" " + req);
}
diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java
index 53edf31..bb36936 100644
--- a/services/java/com/android/server/BatteryService.java
+++ b/services/java/com/android/server/BatteryService.java
@@ -90,9 +90,6 @@
// This should probably be exposed in the API, though it's not critical
private static final int BATTERY_PLUGGED_NONE = 0;
- private static final int BATTERY_LEVEL_CLOSE_WARNING = 20;
- private static final int BATTERY_LEVEL_WARNING = 15;
-
private final Context mContext;
private final IBatteryStats mBatteryStats;
@@ -114,7 +111,10 @@
private int mLastBatteryVoltage;
private int mLastBatteryTemperature;
private boolean mLastBatteryLevelCritical;
-
+
+ private int mLowBatteryWarningLevel;
+ private int mLowBatteryCloseWarningLevel;
+
private int mPlugType;
private int mLastPlugType = -1; // Extra state so we can detect first run
@@ -127,6 +127,11 @@
mContext = context;
mBatteryStats = BatteryStatsService.getService();
+ mLowBatteryWarningLevel = mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_lowBatteryWarningLevel);
+ mLowBatteryCloseWarningLevel = mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_lowBatteryCloseWarningLevel);
+
mUEventObserver.startObserving("SUBSYSTEM=power_supply");
// set initial status
@@ -271,13 +276,15 @@
final boolean oldPlugged = mLastPlugType != BATTERY_PLUGGED_NONE;
/* The ACTION_BATTERY_LOW broadcast is sent in these situations:
- * - is just un-plugged (previously was plugged) and battery level is under WARNING, or
- * - is not plugged and battery level crosses the WARNING boundary (becomes < 15).
+ * - is just un-plugged (previously was plugged) and battery level is
+ * less than or equal to WARNING, or
+ * - is not plugged and battery level falls to WARNING boundary
+ * (becomes <= mLowBatteryWarningLevel).
*/
final boolean sendBatteryLow = !plugged
&& mBatteryStatus != BatteryManager.BATTERY_STATUS_UNKNOWN
- && mBatteryLevel < BATTERY_LEVEL_WARNING
- && (oldPlugged || mLastBatteryLevel >= BATTERY_LEVEL_WARNING);
+ && mBatteryLevel <= mLowBatteryWarningLevel
+ && (oldPlugged || mLastBatteryLevel > mLowBatteryWarningLevel);
sendIntent();
@@ -299,7 +306,7 @@
mSentLowBatteryBroadcast = true;
statusIntent.setAction(Intent.ACTION_BATTERY_LOW);
mContext.sendBroadcast(statusIntent);
- } else if (mSentLowBatteryBroadcast && mLastBatteryLevel >= BATTERY_LEVEL_CLOSE_WARNING) {
+ } else if (mSentLowBatteryBroadcast && mLastBatteryLevel >= mLowBatteryCloseWarningLevel) {
mSentLowBatteryBroadcast = false;
statusIntent.setAction(Intent.ACTION_BATTERY_OKAY);
mContext.sendBroadcast(statusIntent);
diff --git a/services/java/com/android/server/DockObserver.java b/services/java/com/android/server/DockObserver.java
index a70134d3..aa9c243 100644
--- a/services/java/com/android/server/DockObserver.java
+++ b/services/java/com/android/server/DockObserver.java
@@ -17,6 +17,7 @@
package com.android.server;
import android.app.Activity;
+import android.app.KeyguardManager;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -27,6 +28,8 @@
import android.os.UEventObserver;
import android.util.Log;
+import com.android.internal.widget.LockPatternUtils;
+
import java.io.FileReader;
import java.io.FileNotFoundException;
@@ -46,7 +49,11 @@
private final Context mContext;
private PowerManagerService mPowerManager;
-
+
+ private KeyguardManager.KeyguardLock mKeyguardLock;
+ private boolean mKeyguardDisabled;
+ private LockPatternUtils mLockPatternUtils;
+
// The broadcast receiver which receives the result of the ordered broadcast sent when
// the dock state changes. The original ordered broadcast is sent with an initial result
// code of RESULT_OK. If any of the registered broadcast receivers changes this value, e.g.,
@@ -88,6 +95,7 @@
public DockObserver(Context context, PowerManagerService pm) {
mContext = context;
mPowerManager = pm;
+ mLockPatternUtils = new LockPatternUtils(context.getContentResolver());
init(); // set initial status
startObserving(DOCK_UEVENT_MATCH);
}
@@ -130,6 +138,10 @@
void systemReady() {
synchronized (this) {
+ KeyguardManager keyguardManager =
+ (KeyguardManager)mContext.getSystemService(Context.KEYGUARD_SERVICE);
+ mKeyguardLock = keyguardManager.newKeyguardLock(TAG);
+
// don't bother broadcasting undocked here
if (mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
update();
@@ -142,10 +154,25 @@
mHandler.sendEmptyMessage(0);
}
+ private final void updateKeyguardLocked() {
+ if (!mLockPatternUtils.isLockPatternEnabled()) {
+ if (!mKeyguardDisabled && mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
+ Log.d(TAG, "calling mKeyguardLock.disableKeyguard");
+ mKeyguardLock.disableKeyguard();
+ mKeyguardDisabled = true;
+ } else if (mKeyguardDisabled && mDockState == Intent.EXTRA_DOCK_STATE_UNDOCKED) {
+ Log.d(TAG, "calling mKeyguardLock.reenableKeyguard");
+ mKeyguardLock.reenableKeyguard();
+ mKeyguardDisabled = false;
+ }
+ }
+ }
+
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
synchronized (this) {
+ updateKeyguardLocked();
Log.d(TAG, "Broadcasting dock state " + mDockState);
// Pack up the values and broadcast them to everyone
mPowerManager.userActivityWithForce(SystemClock.uptimeMillis(), false, true);
diff --git a/services/java/com/android/server/KeyInputQueue.java b/services/java/com/android/server/KeyInputQueue.java
index d9f4c9c..d7b8f570 100644
--- a/services/java/com/android/server/KeyInputQueue.java
+++ b/services/java/com/android/server/KeyInputQueue.java
@@ -337,6 +337,54 @@
}
}
+ public int getScancodeState(int code) {
+ synchronized (mFirst) {
+ VirtualKey vk = mPressedVirtualKey;
+ if (vk != null) {
+ if (vk.scancode == code) {
+ return 2;
+ }
+ }
+ return nativeGetScancodeState(code);
+ }
+ }
+
+ public int getScancodeState(int deviceId, int code) {
+ synchronized (mFirst) {
+ VirtualKey vk = mPressedVirtualKey;
+ if (vk != null) {
+ if (vk.scancode == code) {
+ return 2;
+ }
+ }
+ return nativeGetScancodeState(deviceId, code);
+ }
+ }
+
+ public int getKeycodeState(int code) {
+ synchronized (mFirst) {
+ VirtualKey vk = mPressedVirtualKey;
+ if (vk != null) {
+ if (vk.lastKeycode == code) {
+ return 2;
+ }
+ }
+ return nativeGetKeycodeState(code);
+ }
+ }
+
+ public int getKeycodeState(int deviceId, int code) {
+ synchronized (mFirst) {
+ VirtualKey vk = mPressedVirtualKey;
+ if (vk != null) {
+ if (vk.lastKeycode == code) {
+ return 2;
+ }
+ }
+ return nativeGetKeycodeState(deviceId, code);
+ }
+ }
+
public static native String getDeviceName(int deviceId);
public static native int getDeviceClasses(int deviceId);
public static native void addExcludedDevice(String deviceName);
@@ -344,10 +392,10 @@
InputDevice.AbsoluteInfo outInfo);
public static native int getSwitchState(int sw);
public static native int getSwitchState(int deviceId, int sw);
- public static native int getScancodeState(int sw);
- public static native int getScancodeState(int deviceId, int sw);
- public static native int getKeycodeState(int sw);
- public static native int getKeycodeState(int deviceId, int sw);
+ public static native int nativeGetScancodeState(int code);
+ public static native int nativeGetScancodeState(int deviceId, int code);
+ public static native int nativeGetKeycodeState(int code);
+ public static native int nativeGetKeycodeState(int deviceId, int code);
public static native int scancodeToKeycode(int deviceId, int scancode);
public static native boolean hasKeys(int[] keycodes, boolean[] keyExists);
diff --git a/services/java/com/android/server/PackageManagerBackupAgent.java b/services/java/com/android/server/PackageManagerBackupAgent.java
index 772ddeb..dbd1826 100644
--- a/services/java/com/android/server/PackageManagerBackupAgent.java
+++ b/services/java/com/android/server/PackageManagerBackupAgent.java
@@ -51,7 +51,7 @@
*/
public class PackageManagerBackupAgent extends BackupAgent {
private static final String TAG = "PMBA";
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
// key under which we store global metadata (individual app metadata
// is stored using the package name as a key)
@@ -195,7 +195,6 @@
byte[] sigs = flattenSignatureArray(info.signatures);
- // !!! TODO: take out this debugging
if (DEBUG) {
Log.v(TAG, "+ metadata for " + packName
+ " version=" + info.versionCode
@@ -214,7 +213,6 @@
// mentioned in the saved state file, but appear to no longer be present
// on the device. Write a deletion entity for them.
for (String app : mExisting) {
- // !!! TODO: take out this msg
if (DEBUG) Log.v(TAG, "- removing metadata for deleted pkg " + app);
try {
data.writeEntityHeader(app, -1);
@@ -266,7 +264,6 @@
mStoredSdkVersion = storedSdkVersion;
mStoredIncrementalVersion = in.readUTF();
mHasMetadata = true;
- // !!! TODO: remove this debugging output
if (DEBUG) {
Log.i(TAG, "Restore set version " + storedSystemVersion
+ " is compatible with OS version " + Build.VERSION.SDK_INT
@@ -277,7 +274,6 @@
// it's a file metadata record
int versionCode = in.readInt();
Signature[] sigs = unflattenSignatureArray(in);
-// !!! TODO: take out this debugging
if (DEBUG) {
Log.i(TAG, " restored metadata for " + key
+ " dataSize=" + dataSize
@@ -326,7 +322,7 @@
try {
int num = in.readInt();
- Log.v(TAG, " ... unflatten read " + num);
+ if (DEBUG) Log.v(TAG, " ... unflatten read " + num);
// Sensical?
if (num > 20) {
@@ -347,7 +343,7 @@
Log.w(TAG, "Empty signature block found");
}
} catch (IOException e) {
- Log.d(TAG, "Unable to unflatten sigs");
+ Log.e(TAG, "Unable to unflatten sigs");
return null;
}
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index 323a11f..867f215 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -1103,6 +1103,12 @@
return null;
}
+ public boolean hasSystemFeature(String name) {
+ synchronized (mPackages) {
+ return mAvailableFeatures.containsKey(name);
+ }
+ }
+
public int checkPermission(String permName, String pkgName) {
synchronized (mPackages) {
PackageParser.Package p = mPackages.get(pkgName);
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index b3b50e5..65b3e3f 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -365,8 +365,17 @@
mContentResolver.registerContentObserver(Settings.Secure.getUriFor(Settings.Secure.ADB_ENABLED),
false, new AdbSettingsObserver());
- // It is now time to start up the app processes...
+ // Before things start rolling, be sure we have decided whether
+ // we are in safe mode.
final boolean safeMode = wm.detectSafeMode();
+ if (safeMode) {
+ try {
+ ActivityManagerNative.getDefault().enterSafeMode();
+ } catch (RemoteException e) {
+ }
+ }
+
+ // It is now time to start up the app processes...
if (notification != null) {
notification.systemReady();
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index 8ebbc93..84ed3ed 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -1396,12 +1396,15 @@
}
}
- } else {
+ } else if (mLowerWallpaperTarget != null) {
// Is it time to stop animating?
- if (mLowerWallpaperTarget == null
- || mLowerWallpaperTarget.mAppToken.animation == null
- || mUpperWallpaperTarget == null
- || mUpperWallpaperTarget.mAppToken.animation == null) {
+ boolean lowerAnimating = mLowerWallpaperTarget.mAnimation != null
+ || (mLowerWallpaperTarget.mAppToken != null
+ && mLowerWallpaperTarget.mAppToken.animation != null);
+ boolean upperAnimating = mUpperWallpaperTarget.mAnimation != null
+ || (mUpperWallpaperTarget.mAppToken != null
+ && mUpperWallpaperTarget.mAppToken.animation != null);
+ if (!lowerAnimating || !upperAnimating) {
if (DEBUG_WALLPAPER) {
Log.v(TAG, "No longer animating wallpaper targets!");
}
@@ -3965,7 +3968,7 @@
// -------------------------------------------------------------
public void disableKeyguard(IBinder token, String tag) {
- if (mContext.checkCallingPermission(android.Manifest.permission.DISABLE_KEYGUARD)
+ if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DISABLE_KEYGUARD)
!= PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Requires DISABLE_KEYGUARD permission");
}
@@ -3973,7 +3976,7 @@
}
public void reenableKeyguard(IBinder token) {
- if (mContext.checkCallingPermission(android.Manifest.permission.DISABLE_KEYGUARD)
+ if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DISABLE_KEYGUARD)
!= PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Requires DISABLE_KEYGUARD permission");
}
@@ -3999,7 +4002,7 @@
* @see android.app.KeyguardManager#exitKeyguardSecurely
*/
public void exitKeyguardSecurely(final IOnKeyguardExitResult callback) {
- if (mContext.checkCallingPermission(android.Manifest.permission.DISABLE_KEYGUARD)
+ if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DISABLE_KEYGUARD)
!= PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Requires DISABLE_KEYGUARD permission");
}
@@ -4108,7 +4111,7 @@
"getScancodeState()")) {
throw new SecurityException("Requires READ_INPUT_STATE permission");
}
- return KeyInputQueue.getScancodeState(sw);
+ return mQueue.getScancodeState(sw);
}
public int getScancodeStateForDevice(int devid, int sw) {
@@ -4116,7 +4119,7 @@
"getScancodeStateForDevice()")) {
throw new SecurityException("Requires READ_INPUT_STATE permission");
}
- return KeyInputQueue.getScancodeState(devid, sw);
+ return mQueue.getScancodeState(devid, sw);
}
public int getKeycodeState(int sw) {
@@ -4124,7 +4127,7 @@
"getKeycodeState()")) {
throw new SecurityException("Requires READ_INPUT_STATE permission");
}
- return KeyInputQueue.getKeycodeState(sw);
+ return mQueue.getKeycodeState(sw);
}
public int getKeycodeStateForDevice(int devid, int sw) {
@@ -4132,7 +4135,7 @@
"getKeycodeStateForDevice()")) {
throw new SecurityException("Requires READ_INPUT_STATE permission");
}
- return KeyInputQueue.getKeycodeState(devid, sw);
+ return mQueue.getKeycodeState(devid, sw);
}
public boolean hasKeys(int[] keycodes, boolean[] keyExists) {
@@ -4174,7 +4177,7 @@
final int N = mWindows.size();
for (int i=0; i<N; i++) {
WindowState w = (WindowState)mWindows.get(i);
- if (w.isVisibleLw() && !w.isDisplayedLw()) {
+ if (w.isVisibleLw() && !w.isDrawnLw()) {
return;
}
}
@@ -7664,6 +7667,16 @@
|| mAnimating);
}
+ /**
+ * Returns true if the window has a surface that it has drawn a
+ * complete UI in to.
+ */
+ public boolean isDrawnLw() {
+ final AppWindowToken atoken = mAppToken;
+ return mSurface != null && !mDestroying
+ && !mDrawPending && !mCommitDrawPending;
+ }
+
public boolean fillsScreenLw(int screenWidth, int screenHeight,
boolean shownFrame, boolean onlyOpaque) {
if (mSurface == null) {
@@ -8268,10 +8281,10 @@
continue;
}
if (DEBUG_VISIBILITY) {
- Log.v(TAG, "Win " + win + ": isDisplayed="
- + win.isDisplayedLw()
+ Log.v(TAG, "Win " + win + ": isDrawn="
+ + win.isDrawnLw()
+ ", isAnimating=" + win.isAnimating());
- if (!win.isDisplayedLw()) {
+ if (!win.isDrawnLw()) {
Log.v(TAG, "Not displayed: s=" + win.mSurface
+ " pv=" + win.mPolicyVisibility
+ " dp=" + win.mDrawPending
@@ -8284,7 +8297,7 @@
}
}
numInteresting++;
- if (win.isDisplayedLw()) {
+ if (win.isDrawnLw()) {
if (!win.isAnimating()) {
numVisible++;
}
@@ -9007,7 +9020,6 @@
|| !win.mRelayoutCalled
|| win.mRootToken.hidden
|| (atoken != null && atoken.hiddenRequested)
- || !win.mPolicyVisibility
|| win.mAttachedHidden
|| win.mExiting || win.mDestroying;
@@ -9217,10 +9229,10 @@
== WindowManager.LayoutParams.TYPE_BASE_APPLICATION)
&& !w.mExiting && !w.mDestroying) {
if (DEBUG_VISIBILITY || DEBUG_ORIENTATION) {
- Log.v(TAG, "Eval win " + w + ": isDisplayed="
- + w.isDisplayedLw()
+ Log.v(TAG, "Eval win " + w + ": isDrawn="
+ + w.isDrawnLw()
+ ", isAnimating=" + w.isAnimating());
- if (!w.isDisplayedLw()) {
+ if (!w.isDrawnLw()) {
Log.v(TAG, "Not displayed: s=" + w.mSurface
+ " pv=" + w.mPolicyVisibility
+ " dp=" + w.mDrawPending
@@ -9233,7 +9245,7 @@
if (w != atoken.startingWindow) {
if (!atoken.freezingScreen || !w.mAppFreezing) {
atoken.numInterestingWindows++;
- if (w.isDisplayedLw()) {
+ if (w.isDrawnLw()) {
atoken.numDrawnWindows++;
if (DEBUG_VISIBILITY || DEBUG_ORIENTATION) Log.v(TAG,
"tokenMayBeDrawn: " + atoken
@@ -9242,7 +9254,7 @@
tokenMayBeDrawn = true;
}
}
- } else if (w.isDisplayedLw()) {
+ } else if (w.isDrawnLw()) {
atoken.startingDisplayed = true;
}
}
diff --git a/services/java/com/android/server/status/StatusBarPolicy.java b/services/java/com/android/server/status/StatusBarPolicy.java
index da64e54..6d54cae 100644
--- a/services/java/com/android/server/status/StatusBarPolicy.java
+++ b/services/java/com/android/server/status/StatusBarPolicy.java
@@ -670,11 +670,9 @@
private void showLowBatteryWarning() {
closeLastBatteryView();
- /* Show exact battery level.
- * Add 1 because the text says "less than X%".
- */
+ // Show exact battery level.
CharSequence levelText = mContext.getString(
- com.android.internal.R.string.battery_low_percent_format, mBatteryLevel + 1);
+ com.android.internal.R.string.battery_low_percent_format, mBatteryLevel);
if (mBatteryLevelTextView != null) {
mBatteryLevelTextView.setText(levelText);
@@ -936,10 +934,10 @@
else if (evdoDbm >= -105) levelEvdoDbm = 1;
else levelEvdoDbm = 0;
- if (evdoSnr > 7) levelEvdoSnr = 4;
- else if (evdoSnr > 5) levelEvdoSnr = 3;
- else if (evdoSnr > 3) levelEvdoSnr = 2;
- else if (evdoSnr > 1) levelEvdoSnr = 1;
+ if (evdoSnr >= 7) levelEvdoSnr = 4;
+ else if (evdoSnr >= 5) levelEvdoSnr = 3;
+ else if (evdoSnr >= 3) levelEvdoSnr = 2;
+ else if (evdoSnr >= 1) levelEvdoSnr = 1;
else levelEvdoSnr = 0;
return (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr;
diff --git a/services/jni/com_android_server_KeyInputQueue.cpp b/services/jni/com_android_server_KeyInputQueue.cpp
index f27596c..c92f8df 100644
--- a/services/jni/com_android_server_KeyInputQueue.cpp
+++ b/services/jni/com_android_server_KeyInputQueue.cpp
@@ -280,13 +280,13 @@
(void*) android_server_KeyInputQueue_getSwitchState },
{ "getSwitchState", "(II)I",
(void*) android_server_KeyInputQueue_getSwitchStateDevice },
- { "getScancodeState", "(I)I",
+ { "nativeGetScancodeState", "(I)I",
(void*) android_server_KeyInputQueue_getScancodeState },
- { "getScancodeState", "(II)I",
+ { "nativeGetScancodeState", "(II)I",
(void*) android_server_KeyInputQueue_getScancodeStateDevice },
- { "getKeycodeState", "(I)I",
+ { "nativeGetKeycodeState", "(I)I",
(void*) android_server_KeyInputQueue_getKeycodeState },
- { "getKeycodeState", "(II)I",
+ { "nativeGetKeycodeState", "(II)I",
(void*) android_server_KeyInputQueue_getKeycodeStateDevice },
{ "hasKeys", "([I[Z)Z",
(void*) android_server_KeyInputQueue_hasKeys },
diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java
index 3265708..1aa1c76 100644
--- a/telephony/java/android/telephony/PhoneNumberUtils.java
+++ b/telephony/java/android/telephony/PhoneNumberUtils.java
@@ -302,10 +302,22 @@
*/
public static boolean compare(String a, String b) {
// We've used loose comparation at least Eclair, which may change in the future.
+
return compare(a, b, false);
}
/**
+ * Compare phone numbers a and b, and return true if they're identical
+ * enough for caller ID purposes. Checks a resource to determine whether
+ * to use a strict or loose comparison algorithm.
+ */
+ public static boolean compare(Context context, String a, String b) {
+ boolean useStrict = context.getResources().getBoolean(
+ com.android.internal.R.bool.config_use_strict_phone_number_comparation);
+ return compare(a, b, useStrict);
+ }
+
+ /**
* @hide only for testing.
*/
public static boolean compare(String a, String b, boolean useStrictComparation) {
diff --git a/telephony/java/com/android/internal/telephony/Connection.java b/telephony/java/com/android/internal/telephony/Connection.java
index a48900a..37e8a99 100644
--- a/telephony/java/com/android/internal/telephony/Connection.java
+++ b/telephony/java/com/android/internal/telephony/Connection.java
@@ -59,6 +59,7 @@
CDMA_ACCESS_FAILURE,
CDMA_PREEMPTED,
CDMA_NOT_EMERGENCY, /* not an emergency call */
+ CDMA_ACCESS_BLOCKED, /* Access Blocked by CDMA network */
ERROR_UNSPECIFIED
}
diff --git a/telephony/java/com/android/internal/telephony/RIL.java b/telephony/java/com/android/internal/telephony/RIL.java
index f3b59a8..d802efa 100644
--- a/telephony/java/com/android/internal/telephony/RIL.java
+++ b/telephony/java/com/android/internal/telephony/RIL.java
@@ -2174,7 +2174,7 @@
case RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG: ret = responseCdmaBroadcastConfig(p); break;
case RIL_REQUEST_CDMA_SET_BROADCAST_CONFIG: ret = responseVoid(p); break;
case RIL_REQUEST_CDMA_BROADCAST_ACTIVATION: ret = responseVoid(p); break;
- case RIL_REQUEST_CDMA_VALIDATE_AKEY: ret = responseVoid(p); break;
+ case RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY: ret = responseVoid(p); break;
case RIL_REQUEST_CDMA_SUBSCRIPTION: ret = responseStrings(p); break;
case RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM: ret = responseInts(p); break;
case RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM: ret = responseVoid(p); break;
@@ -3197,7 +3197,7 @@
case RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG: return "RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG";
case RIL_REQUEST_CDMA_SET_BROADCAST_CONFIG: return "RIL_REQUEST_CDMA_SET_BROADCAST_CONFIG";
case RIL_REQUEST_GSM_BROADCAST_ACTIVATION: return "RIL_REQUEST_GSM_BROADCAST_ACTIVATION";
- case RIL_REQUEST_CDMA_VALIDATE_AKEY: return "RIL_REQUEST_CDMA_VALIDATE_AKEY";
+ case RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY: return "RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY";
case RIL_REQUEST_CDMA_BROADCAST_ACTIVATION: return "RIL_REQUEST_CDMA_BROADCAST_ACTIVATION";
case RIL_REQUEST_CDMA_SUBSCRIPTION: return "RIL_REQUEST_CDMA_SUBSCRIPTION";
case RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM: return "RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM";
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index 3e9d8ad..c29adcf 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -210,7 +210,7 @@
int RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE = 83;
int RIL_REQUEST_CDMA_FLASH = 84;
int RIL_REQUEST_CDMA_BURST_DTMF = 85;
- int RIL_REQUEST_CDMA_VALIDATE_AKEY = 86;
+ int RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY = 86;
int RIL_REQUEST_CDMA_SEND_SMS = 87;
int RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE = 88;
int RIL_REQUEST_GSM_GET_BROADCAST_CONFIG = 89;
diff --git a/telephony/java/com/android/internal/telephony/cdma/CallFailCause.java b/telephony/java/com/android/internal/telephony/cdma/CallFailCause.java
index fb5f0fa..ad6c23c 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CallFailCause.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CallFailCause.java
@@ -17,9 +17,10 @@
package com.android.internal.telephony.cdma;
/**
- * Call fail causes from TS 24.008 .
- * These are mostly the cause codes we need to distinguish for the UI.
- * See 22.001 Annex F.4 for mapping of cause codes to local tones.
+ * CDMA Call fail causes covering all the possible failures that are
+ * needed to be distinguished by the UI. CDMA call failure reasons
+ * are derived from the possible call failure scenarios described
+ * in "CDMA IS2000 - Release A (C.S0005-A v6.0)" standard.
*
* {@hide}
*
@@ -51,5 +52,8 @@
// For non-emergency number dialed while in emergency callback mode.
static final int CDMA_NOT_EMERGENCY = 1008;
+ // Access Blocked by CDMA Network.
+ static final int CDMA_ACCESS_BLOCKED = 1009;
+
static final int ERROR_UNSPECIFIED = 0xffff;
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java b/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java
index bc04e02..f637d33 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java
@@ -418,6 +418,8 @@
return DisconnectCause.CDMA_PREEMPTED;
case CallFailCause.CDMA_NOT_EMERGENCY:
return DisconnectCause.CDMA_NOT_EMERGENCY;
+ case CallFailCause.CDMA_ACCESS_BLOCKED:
+ return DisconnectCause.CDMA_ACCESS_BLOCKED;
case CallFailCause.ERROR_UNSPECIFIED:
case CallFailCause.NORMAL_CLEARING:
default:
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
index ffaa1cd..d0a9337 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
@@ -76,6 +76,9 @@
/** Currently active CdmaDataConnection */
private CdmaDataConnection mActiveDataConnection;
+ /** mimic of GSM's mActiveApn */
+ private boolean mIsApnActive = false;
+
private boolean mPendingRestartRadio = false;
private static final int TIME_DELAYED_TO_RESTART_RADIO =
SystemProperties.getInt("ro.cdma.timetoradiorestart", 20000);
@@ -245,9 +248,7 @@
@Override
protected boolean isApnTypeActive(String type) {
- return (isApnTypeAvailable(type) &&
- mCdmaPhone.mSST.getCurrentCdmaDataConnectionState() ==
- ServiceState.STATE_IN_SERVICE);
+ return (mIsApnActive && isApnTypeAvailable(type));
}
@Override
@@ -261,11 +262,15 @@
}
protected String[] getActiveApnTypes() {
- if (mCdmaPhone.mSST.getCurrentCdmaDataConnectionState() ==
- ServiceState.STATE_IN_SERVICE) {
- return mSupportedApnTypes.clone();
+ String[] result;
+ if (mIsApnActive) {
+ result = mSupportedApnTypes.clone();
+ } else {
+ // TODO - should this return an empty array? See GSM too.
+ result = new String[1];
+ result[0] = Phone.APN_TYPE_DEFAULT;
}
- return new String[0];
+ return result;
}
protected String getActiveApnString() {
@@ -388,6 +393,7 @@
if (!tearDown) {
setState(State.IDLE);
phone.notifyDataConnection(reason);
+ mIsApnActive = false;
}
}
@@ -411,6 +417,7 @@
}
mActiveDataConnection = conn;
+ mIsApnActive = true;
Message msg = obtainMessage();
msg.what = EVENT_DATA_SETUP_COMPLETE;
@@ -626,6 +633,15 @@
}
/**
+ * @override com.android.intenral.telephony.DataConnectionTracker
+ */
+ @Override
+ protected void onEnableNewApn() {
+ // for cdma we only use this when default data is enabled..
+ onTrySetupData(Phone.REASON_DATA_ENABLED);
+ }
+
+ /**
* @override com.android.internal.telephony.DataConnectionTracker
*/
protected boolean onTrySetupData(String reason) {
@@ -735,6 +751,7 @@
}
phone.notifyDataConnection(reason);
+ mIsApnActive = false;
if (retryAfterDisconnected(reason)) {
trySetupData(reason);
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index b063e0a..5bdf09f 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -351,7 +351,7 @@
* @return false while no data connection if all above requirements are met.
*/
public boolean isDataConnectionAsDesired() {
- boolean roaming = getDataRoaming();
+ boolean roaming = phone.getServiceState().getRoaming();
if (mGsmPhone.mSIMRecords.getRecordsLoaded() &&
mGsmPhone.mSST.getCurrentGprsState() == ServiceState.STATE_IN_SERVICE &&
@@ -363,10 +363,6 @@
return true;
}
- private boolean getDataRoaming() {
- return mGsmPhone.mSST.getDataRoaming();
- }
-
@Override
protected boolean isApnTypeActive(String type) {
// TODO: support simultaneous with List instead
@@ -394,7 +390,7 @@
}
private boolean isDataAllowed() {
- boolean roaming = getDataRoaming();
+ boolean roaming = phone.getServiceState().getRoaming();
return getAnyDataEnabled() && (!roaming || getDataOnRoamingEnabled());
}
@@ -441,7 +437,6 @@
}
int gprsState = mGsmPhone.mSST.getCurrentGprsState();
- boolean roaming = getDataRoaming();
boolean desiredPowerState = mGsmPhone.mSST.getDesiredPowerState();
if ((state == State.IDLE || state == State.SCANNING)
@@ -477,7 +472,7 @@
" phoneState=" + phone.getState() +
" isDataAllowed=" + isDataAllowed() +
" dataEnabled=" + getAnyDataEnabled() +
- " roaming=" + roaming +
+ " roaming=" + phone.getServiceState().getRoaming() +
" dataOnRoamingEnable=" + getDataOnRoamingEnabled() +
" ps restricted=" + mIsPsRestricted +
" desiredPowerState=" + desiredPowerState);
@@ -601,32 +596,36 @@
}
protected String getInterfaceName(String apnType) {
- if (mActivePdp != null
- && (apnType == null || mActiveApn.canHandleType(apnType))) {
+ if (mActivePdp != null &&
+ (apnType == null ||
+ (mActiveApn != null && mActiveApn.canHandleType(apnType)))) {
return mActivePdp.getInterface();
}
return null;
}
protected String getIpAddress(String apnType) {
- if (mActivePdp != null
- && (apnType == null || mActiveApn.canHandleType(apnType))) {
+ if (mActivePdp != null &&
+ (apnType == null ||
+ (mActiveApn != null && mActiveApn.canHandleType(apnType)))) {
return mActivePdp.getIpAddress();
}
return null;
}
public String getGateway(String apnType) {
- if (mActivePdp != null
- && (apnType == null || mActiveApn.canHandleType(apnType))) {
+ if (mActivePdp != null &&
+ (apnType == null ||
+ (mActiveApn != null && mActiveApn.canHandleType(apnType)))) {
return mActivePdp.getGatewayAddress();
}
return null;
}
protected String[] getDnsServers(String apnType) {
- if (mActivePdp != null
- && (apnType == null || mActiveApn.canHandleType(apnType))) {
+ if (mActivePdp != null &&
+ (apnType == null ||
+ (mActiveApn != null && mActiveApn.canHandleType(apnType)))) {
return mActivePdp.getDnsServers();
}
return null;
@@ -1112,38 +1111,18 @@
return trySetupData(reason);
}
- /**
- * Check the data roaming consistency since this can be triggered by
- * voice roaming flag of ServiceState in setDataOnRoamingEnabled()
- *
- * TODO make this triggered by data roaming state only
- */
@Override
protected void onRoamingOff() {
- if (!getDataRoaming()) { //data roaming is off
- trySetupData(Phone.REASON_ROAMING_OFF);
- } else { // Inconsistent! data roaming is on
- sendMessage(obtainMessage(EVENT_ROAMING_ON));
- }
+ trySetupData(Phone.REASON_ROAMING_OFF);
}
- /**
- * Check the data roaming consistency since this can be triggered by
- * voice roaming flag of ServiceState in setDataOnRoamingEnabled()
- *
- * TODO make this triggered by data roaming state only
- */
@Override
protected void onRoamingOn() {
- if (getDataRoaming()) { // data roaming is on
- if (getDataOnRoamingEnabled()) {
- trySetupData(Phone.REASON_ROAMING_ON);
- } else {
- if (DBG) log("Tear down data connection on roaming.");
- cleanUpConnection(true, Phone.REASON_ROAMING_ON);
- }
- } else { // Inconsistent! data roaming is off
- sendMessage(obtainMessage(EVENT_ROAMING_OFF));
+ if (getDataOnRoamingEnabled()) {
+ trySetupData(Phone.REASON_ROAMING_ON);
+ } else {
+ if (DBG) log("Tear down data connection on roaming.");
+ cleanUpConnection(true, Phone.REASON_ROAMING_ON);
}
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
index 003899b..8140654 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
@@ -83,12 +83,17 @@
private int networkType = 0;
private int newNetworkType = 0;
- /** GSM roaming status solely based on TS 27.007 7.2 CREG. */
+ /**
+ * GSM roaming status solely based on TS 27.007 7.2 CREG. Only used by
+ * handlePollStateResult to store CREG roaming result.
+ */
private boolean mGsmRoaming = false;
- /** Data roaming status solely based on TS 27.007 10.1.19 CGREG. */
+ /**
+ * Data roaming status solely based on TS 27.007 10.1.19 CGREG. Only used by
+ * handlePollStateResult to store CGREG roaming result.
+ */
private boolean mDataRoaming = false;
- private boolean newDataRoaming = false;
private RegistrantList gprsAttachedRegistrants = new RegistrantList();
private RegistrantList gprsDetachedRegistrants = new RegistrantList();
@@ -310,10 +315,6 @@
psRestrictDisabledRegistrants.remove(h);
}
- boolean getDataRoaming() {
- return mDataRoaming;
- }
-
public void handleMessage (Message msg) {
AsyncResult ar;
int[] ints;
@@ -627,7 +628,6 @@
mGsmRoaming = regCodeIsRoaming(regState);
newSS.setState (regCodeToServiceState(regState));
-
// LAC and CID are -1 if not avail
newCellLoc.setLacAndCid(lac, cid);
break;
@@ -650,7 +650,7 @@
}
}
newGPRSState = regCodeToServiceState(regState);
- newDataRoaming = regCodeIsRoaming(regState);
+ mDataRoaming = regCodeIsRoaming(regState);
newNetworkType = type;
newSS.setRadioTechnology(type);
break;
@@ -678,15 +678,22 @@
pollingContext[0]--;
if (pollingContext[0] == 0) {
- newSS.setRoaming(isRoamingBetweenOperators(mGsmRoaming, newSS));
- // when both roaming indicators are true but not roaming between
- // operators, roaming should set to false.
- if (newDataRoaming && mGsmRoaming && !newSS.getRoaming()) {
- newDataRoaming = false;
+ /**
+ * Since the roaming states of gsm service (from +CREG) and
+ * data service (from +CGREG) could be different, the new SS
+ * is set roaming while either one is roaming.
+ *
+ * There is an exception for the above rule. The new SS is not set
+ * as roaming while gsm service reports roaming but indeed it is
+ * not roaming between operators.
+ */
+ boolean roaming = (mGsmRoaming || mDataRoaming);
+ if (mGsmRoaming && !isRoamingBetweenOperators(mGsmRoaming, newSS)) {
+ roaming = false;
}
+ newSS.setRoaming(roaming);
pollStateDone();
}
-
}
private void setSignalStrengthDefaultValues() {
@@ -711,8 +718,6 @@
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;
- newDataRoaming = false;
-
pollStateDone();
break;
@@ -721,8 +726,6 @@
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;
- newDataRoaming = false;
-
pollStateDone();
break;
@@ -736,8 +739,6 @@
newCellLoc.setStateInvalid();
setSignalStrengthDefaultValues();
mGotCountryCode = false;
- newDataRoaming = false;
- mDataRoaming = false;
//NOTE: pollStateDone() is not needed in this case
break;
@@ -830,9 +831,9 @@
boolean hasChanged = !newSS.equals(ss);
- boolean hasRoamingOn = !mDataRoaming && newDataRoaming;
+ boolean hasRoamingOn = !ss.getRoaming() && newSS.getRoaming();
- boolean hasRoamingOff = mDataRoaming && !newDataRoaming;
+ boolean hasRoamingOff = ss.getRoaming() && !newSS.getRoaming();
boolean hasLocationChanged = !newCellLoc.equals(cellLoc);
@@ -849,7 +850,6 @@
gprsState = newGPRSState;
networkType = newNetworkType;
- mDataRoaming = newDataRoaming;
newSS.setStateOutOfService(); // clean slate for next time
diff --git a/test-runner/android/test/SyncBaseInstrumentation.java b/test-runner/android/test/SyncBaseInstrumentation.java
index a860bb3..e8d72d9 100644
--- a/test-runner/android/test/SyncBaseInstrumentation.java
+++ b/test-runner/android/test/SyncBaseInstrumentation.java
@@ -47,7 +47,7 @@
protected void syncProvider(Uri uri, String accountName, String authority) throws Exception {
Bundle extras = new Bundle();
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
- Account account = new Account(accountName, "com.google.GAIA");
+ Account account = new Account(accountName, "com.google");
ContentResolver.requestSync(account, authority, extras);
long startTimeInMillis = SystemClock.elapsedRealtime();
diff --git a/test-runner/android/test/mock/MockPackageManager.java b/test-runner/android/test/mock/MockPackageManager.java
index beb9044..2f313af 100644
--- a/test-runner/android/test/mock/MockPackageManager.java
+++ b/test-runner/android/test/mock/MockPackageManager.java
@@ -430,6 +430,11 @@
}
@Override
+ public boolean hasSystemFeature(String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public boolean isSafeMode() {
throw new UnsupportedOperationException();
}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/VpnTest.java b/tests/AndroidTests/src/com/android/unit_tests/VpnTest.java
index 67fcd61..cb64293 100755
--- a/tests/AndroidTests/src/com/android/unit_tests/VpnTest.java
+++ b/tests/AndroidTests/src/com/android/unit_tests/VpnTest.java
@@ -130,7 +130,6 @@
private void testVpnType(VpnType type) {
assertFalse(TextUtils.isEmpty(type.getDisplayName()));
- assertNotNull(type.getDescription());
assertNotNull(type.getProfileClass());
}
diff --git a/tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java b/tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java
index 861e37b..32763b3 100644
--- a/tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java
+++ b/tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java
@@ -21,7 +21,7 @@
super(PKG_NAME, PowerTestActivity.class);
}
- public void testPageLoad() throws Throwable {
+ public void testPageLoadStaticNYTimes() throws Throwable {
Instrumentation mInst = getInstrumentation();
PowerTestActivity act = getActivity();
diff --git a/tests/CoreTests/android/core/PipedStreamTest.java b/tests/CoreTests/android/core/PipedStreamTest.java
index 564b337..d98bc10 100644
--- a/tests/CoreTests/android/core/PipedStreamTest.java
+++ b/tests/CoreTests/android/core/PipedStreamTest.java
@@ -117,7 +117,7 @@
for (; ;) {
try {
reader.join(60 * 1000);
- writer.join(1 * 1000);
+ writer.join(1000);
break;
} catch (InterruptedException ex) {
}
@@ -166,11 +166,11 @@
int readInt = (((int) readBytes[0] & 0xff) << 24)
| (((int) readBytes[1] & 0xff) << 16)
| (((int) readBytes[2] & 0xff) << 8)
- | (((int) readBytes[3] & 0xff) << 0);
+ | (((int) readBytes[3] & 0xff));
- assertEquals(readInt, fib.next());
- assertEquals(0, readBytes[4]);
+ assertEquals("Error at " + countRead, fib.next(), readInt);
+ assertEquals("Error at " + countRead, 0, readBytes[4]);
countRead++;
}
}
@@ -189,7 +189,7 @@
writeBytes[0] = (byte) (toWrite >> 24);
writeBytes[1] = (byte) (toWrite >> 16);
writeBytes[2] = (byte) (toWrite >> 8);
- writeBytes[3] = (byte) (toWrite >> 0);
+ writeBytes[3] = (byte) (toWrite);
writeBytes[4] = 0;
out.write(writeBytes, 0, writeBytes.length);
}
@@ -203,37 +203,35 @@
for (; ;) {
try {
reader.join(60 * 1000);
- writer.join(1 * 1000);
+ writer.join(1000);
break;
} catch (InterruptedException ex) {
}
}
- assertEquals(2000, reader.countRead);
-
- if (writer.exception != null) {
- throw new Exception(writer.exception);
- }
if (reader.exception != null) {
throw new Exception(reader.exception);
}
+ if (writer.exception != null) {
+ throw new Exception(writer.exception);
+ }
+
+ assertEquals(2000, reader.countRead);
}
@SmallTest
public void testC() throws Exception {
final PipedInputStream in = new PipedInputStream();
final PipedOutputStream out = new PipedOutputStream(in);
+ final byte readBytes[] = new byte[1024 * 2];
assertEquals(0, in.available());
TestThread reader, writer;
reader = new TestThread() {
- Fibonacci fib = new Fibonacci();
-
@Override
public void runTest() throws Exception {
- byte readBytes[] = new byte[1024 * 2];
int ret;
for (; ;) {
@@ -246,17 +244,6 @@
}
nread += ret;
}
-
- assertEquals(nread, readBytes.length);
-
- for (int i = 0; i < (readBytes.length - 4); i += 4) {
- int readInt = (((int) readBytes[i + 0] & 0xff) << 24)
- | (((int) readBytes[i + 1] & 0xff) << 16)
- | (((int) readBytes[i + 2] & 0xff) << 8)
- | (((int) readBytes[i + 3] & 0xff) << 0);
-
- assertEquals(readInt, fib.next());
- }
}
}
};
@@ -271,10 +258,10 @@
byte writeBytes[] = new byte[1024 * 2];
for (int i = 0; i < (writeBytes.length - 4); i += 4) {
int toWrite = fib.next();
- writeBytes[i + 0] = (byte) (toWrite >> 24);
+ writeBytes[i ] = (byte) (toWrite >> 24);
writeBytes[i + 1] = (byte) (toWrite >> 16);
writeBytes[i + 2] = (byte) (toWrite >> 8);
- writeBytes[i + 3] = (byte) (toWrite >> 0);
+ writeBytes[i + 3] = (byte) (toWrite);
}
out.write(writeBytes, 0, writeBytes.length);
out.close();
@@ -287,17 +274,27 @@
for (; ;) {
try {
reader.join(60 * 1000);
- writer.join(1 * 100);
+ writer.join(1000);
break;
} catch (InterruptedException ex) {
}
}
+ if (reader.exception != null) {
+ throw new Exception(reader.exception);
+ }
if (writer.exception != null) {
throw new Exception(writer.exception);
}
- if (reader.exception != null) {
- throw new Exception(reader.exception);
+
+ Fibonacci fib = new Fibonacci();
+ for (int i = 0; i < (readBytes.length - 4); i += 4) {
+ int readInt = (((int) readBytes[i] & 0xff) << 24)
+ | (((int) readBytes[i + 1] & 0xff) << 16)
+ | (((int) readBytes[i + 2] & 0xff) << 8)
+ | (((int) readBytes[i + 3] & 0xff));
+
+ assertEquals("Error at " + i, readInt, fib.next());
}
}
}
diff --git a/tests/DumpRenderTree/assets/results/layout_tests_crashed.txt b/tests/DumpRenderTree/assets/results/layout_tests_crashed.txt
index 5a38ed8..e69de29 100644
--- a/tests/DumpRenderTree/assets/results/layout_tests_crashed.txt
+++ b/tests/DumpRenderTree/assets/results/layout_tests_crashed.txt
@@ -1 +0,0 @@
-/sdcard/android/layout_tests/fast/js/regexp-charclass-crash.html
\ No newline at end of file
diff --git a/tests/DumpRenderTree/assets/results/layout_tests_failed.txt b/tests/DumpRenderTree/assets/results/layout_tests_failed.txt
index 651b324..af7658b 100644
--- a/tests/DumpRenderTree/assets/results/layout_tests_failed.txt
+++ b/tests/DumpRenderTree/assets/results/layout_tests_failed.txt
@@ -1,151 +1,135 @@
-/sdcard/android/layout_tests/webarchive/loading/test-loading-archive.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement16.html
-/sdcard/android/layout_tests/media/video-error-does-not-exist.html
-/sdcard/android/layout_tests/media/audio-constructor.html
-/sdcard/android/layout_tests/media/video-start.html
-/sdcard/android/layout_tests/media/video-loopend.html
-/sdcard/android/layout_tests/media/video-play-empty-events.html
-/sdcard/android/layout_tests/media/constructors.html
-/sdcard/android/layout_tests/media/video-append-source.html
-/sdcard/android/layout_tests/media/unsupported-rtsp.html
-/sdcard/android/layout_tests/media/video-dom-autoplay.html
-/sdcard/android/layout_tests/media/video-currentTime-set2.html
-/sdcard/android/layout_tests/media/video-poster.html
-/sdcard/android/layout_tests/media/video-source-media.html
-/sdcard/android/layout_tests/media/video-muted.html
-/sdcard/android/layout_tests/media/progress-event.html
-/sdcard/android/layout_tests/media/video-source-type.html
-/sdcard/android/layout_tests/media/video-seek-past-end-playing.html
-/sdcard/android/layout_tests/media/video-dom-src.html
-/sdcard/android/layout_tests/media/remove-from-document.html
-/sdcard/android/layout_tests/media/video-end.html
-/sdcard/android/layout_tests/media/video-src-change.html
-/sdcard/android/layout_tests/media/video-seekable.html
-/sdcard/android/layout_tests/media/video-click-dblckick-standalone.html
-/sdcard/android/layout_tests/media/video-src-set.html
-/sdcard/android/layout_tests/media/video-seeking.html
-/sdcard/android/layout_tests/media/video-controls-transformed.html
-/sdcard/android/layout_tests/media/loopend-limits.html
-/sdcard/android/layout_tests/media/video-volume.html
-/sdcard/android/layout_tests/media/video-size.html
-/sdcard/android/layout_tests/media/video-width-height.html
-/sdcard/android/layout_tests/media/video-loopstart.html
-/sdcard/android/layout_tests/media/video-source.html
-/sdcard/android/layout_tests/media/video-currentTime.html
-/sdcard/android/layout_tests/media/video-dom-loopstart.html
-/sdcard/android/layout_tests/media/broken-video.html
-/sdcard/android/layout_tests/media/video-buffered.html
-/sdcard/android/layout_tests/media/video-load-readyState.html
-/sdcard/android/layout_tests/media/video-dom-end.html
-/sdcard/android/layout_tests/media/fallback.html
-/sdcard/android/layout_tests/media/video-load-networkState.html
-/sdcard/android/layout_tests/media/unsupported-tracks.html
-/sdcard/android/layout_tests/media/video-dom-start.html
-/sdcard/android/layout_tests/media/video-seek-past-end-paused.html
-/sdcard/android/layout_tests/media/video-play-pause-events.html
-/sdcard/android/layout_tests/media/video-autoplay.html
-/sdcard/android/layout_tests/media/video-controls.html
-/sdcard/android/layout_tests/media/loopstart-limits.html
-/sdcard/android/layout_tests/media/video-src-source.html
-/sdcard/android/layout_tests/media/video-currentTime-set.html
-/sdcard/android/layout_tests/media/video-source-type-params.html
-/sdcard/android/layout_tests/media/video-no-autoplay.html
-/sdcard/android/layout_tests/media/video-pause-empty-events.html
-/sdcard/android/layout_tests/media/video-play-pause-exception.html
-/sdcard/android/layout_tests/media/video-dom-loopend.html
-/sdcard/android/layout_tests/media/video-loopcount.html
-/sdcard/android/layout_tests/media/video-src-remove.html
-/sdcard/android/layout_tests/media/video-src.html
-/sdcard/android/layout_tests/media/video-error-abort.html
-/sdcard/android/layout_tests/media/video-dom-loopcount.html
-/sdcard/android/layout_tests/media/progress-event-total.html
-/sdcard/android/layout_tests/media/audio-constructor-src.html
-/sdcard/android/layout_tests/plugins/throw-on-dealloc.html
-/sdcard/android/layout_tests/plugins/invoke.html
-/sdcard/android/layout_tests/plugins/plugin-remove-subframe.html
-/sdcard/android/layout_tests/plugins/netscape-identifier-conversion.html
-/sdcard/android/layout_tests/plugins/call-as-function-test.html
-/sdcard/android/layout_tests/plugins/npruntime.html
-/sdcard/android/layout_tests/plugins/netscape-construct.html
-/sdcard/android/layout_tests/plugins/root-object-premature-delete-crash.html
-/sdcard/android/layout_tests/plugins/netscape-get-property-return-value.html
-/sdcard/android/layout_tests/plugins/mouse-events.html
-/sdcard/android/layout_tests/plugins/return-error-from-new-stream-doesnt-invoke-destroy-stream.html
-/sdcard/android/layout_tests/plugins/destroy-stream-twice.html
-/sdcard/android/layout_tests/plugins/jsobjc-simple.html
-/sdcard/android/layout_tests/plugins/embed-attributes-setting.html
-/sdcard/android/layout_tests/plugins/inner-html-display-none.html
-/sdcard/android/layout_tests/plugins/netscape-invoke-default.html
-/sdcard/android/layout_tests/plugins/undefined-property-crash.html
-/sdcard/android/layout_tests/plugins/netscape-plugin-setwindow-size-2.html
-/sdcard/android/layout_tests/plugins/jsobjc-dom-wrappers.html
-/sdcard/android/layout_tests/plugins/plugin-javascript-access.html
-/sdcard/android/layout_tests/plugins/getintidentifier-special-values.html
-/sdcard/android/layout_tests/plugins/geturl-replace-query.html
-/sdcard/android/layout_tests/plugins/netscape-destroy-plugin-script-objects.html
-/sdcard/android/layout_tests/plugins/open-and-close-window-with-plugin.html
-/sdcard/android/layout_tests/plugins/netscape-enumerate.html
-/sdcard/android/layout_tests/plugins/get-url-that-the-resource-load-delegate-will-disallow.html
-/sdcard/android/layout_tests/plugins/netscape-plugin-setwindow-size.html
-/sdcard/android/layout_tests/plugins/embed-inside-object.html
-/sdcard/android/layout_tests/plugins/netscape-throw-exception.html
-/sdcard/android/layout_tests/plugins/get-url-with-blank-target.html
-/sdcard/android/layout_tests/plugins/bindings-test.html
-/sdcard/android/layout_tests/editing/input/textarea-arrow-navigation.html
+/sdcard/android/layout_tests/accessibility/onclick-handlers.html
+/sdcard/android/layout_tests/accessibility/textarea-insertion-point-line-number.html
+/sdcard/android/layout_tests/accessibility/aria-readonly.html
+/sdcard/android/layout_tests/accessibility/radio-button-checkbox-size.html
+/sdcard/android/layout_tests/accessibility/th-as-title-ui.html
+/sdcard/android/layout_tests/accessibility/visible-elements.html
+/sdcard/android/layout_tests/accessibility/iframe-bastardization.html
+/sdcard/android/layout_tests/accessibility/button-press-action.html
+/sdcard/android/layout_tests/accessibility/img-aria-button-alt-tag.html
+/sdcard/android/layout_tests/accessibility/input-image-alt.html
+/sdcard/android/layout_tests/accessibility/radio-button-title-label.html
+/sdcard/android/layout_tests/accessibility/aria-hidden.html
+/sdcard/android/layout_tests/accessibility/secure-textfield-title-ui.html
+/sdcard/android/layout_tests/accessibility/canvas.html
+/sdcard/android/layout_tests/accessibility/textarea-selected-text-range.html
+/sdcard/android/layout_tests/accessibility/language-attribute.html
+/sdcard/android/layout_tests/accessibility/table-nofirstbody.html
+/sdcard/android/layout_tests/accessibility/editable-webarea-context-menu-point.html
+/sdcard/android/layout_tests/accessibility/table-modification-crash.html
+/sdcard/android/layout_tests/accessibility/aria-link-supports-press.html
+/sdcard/android/layout_tests/accessibility/table-notbody.html
+/sdcard/android/layout_tests/accessibility/ignore-spacer-elements.html
+/sdcard/android/layout_tests/accessibility/transformed-element.html
+/sdcard/android/layout_tests/accessibility/aria-disabled.html
+/sdcard/android/layout_tests/accessibility/placeholder.html
+/sdcard/android/layout_tests/accessibility/non-data-table-cell-title-ui-element.html
+/sdcard/android/layout_tests/accessibility/aria-label.html
+/sdcard/android/layout_tests/accessibility/textarea-line-for-index.html
+/sdcard/android/layout_tests/accessibility/nochildren-elements.html
+/sdcard/android/layout_tests/animations/play-state.html
+/sdcard/android/layout_tests/animations/animation-start-event-destroy-renderer.html
+/sdcard/android/layout_tests/animations/import.html
+/sdcard/android/layout_tests/animations/keyframes-to-missing.html
+/sdcard/android/layout_tests/animations/animation-hit-test.html
+/sdcard/android/layout_tests/animations/keyframes-comma-separated.html
+/sdcard/android/layout_tests/animations/animation-hit-test-transform.html
+/sdcard/android/layout_tests/animations/keyframes-rule.html
+/sdcard/android/layout_tests/animations/animation-controller-drt-api.html
+/sdcard/android/layout_tests/animations/keyframes-from-missing.html
+/sdcard/android/layout_tests/animations/animation-end-event-destroy-renderer.html
+/sdcard/android/layout_tests/animations/change-keyframes-name.html
+/sdcard/android/layout_tests/animations/keyframes-out-of-order.html
+/sdcard/android/layout_tests/animations/change-keyframes.html
+/sdcard/android/layout_tests/editing/style/remove-underline-from-stylesheet.html
+/sdcard/android/layout_tests/editing/style/remove-underline-in-bold.html
+/sdcard/android/layout_tests/editing/style/apply-through-end-of-document.html
/sdcard/android/layout_tests/editing/inserting/typing-tab-designmode.html
+/sdcard/android/layout_tests/editing/inserting/space-after-removeformat.html
+/sdcard/android/layout_tests/editing/inserting/insert-thai-characters-001.html
/sdcard/android/layout_tests/editing/inserting/5994480-2.html
/sdcard/android/layout_tests/editing/execCommand/queryCommandState-01.html
-/sdcard/android/layout_tests/editing/execCommand/5543472-3.html
+/sdcard/android/layout_tests/editing/execCommand/4128080-2.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-6.html
/sdcard/android/layout_tests/editing/execCommand/enabling-and-selection.html
-/sdcard/android/layout_tests/editing/execCommand/5658933-2.html
/sdcard/android/layout_tests/editing/execCommand/insert-line-break-no-scroll.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-3.html
/sdcard/android/layout_tests/editing/execCommand/enabling-and-selection-2.html
/sdcard/android/layout_tests/editing/execCommand/delete-no-scroll.html
/sdcard/android/layout_tests/editing/execCommand/forward-delete-no-scroll.html
+/sdcard/android/layout_tests/editing/execCommand/switch-list-type.html
/sdcard/android/layout_tests/editing/execCommand/19089.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-nested-lists-2.html
/sdcard/android/layout_tests/editing/execCommand/unlink.html
-/sdcard/android/layout_tests/editing/execCommand/5543472-2.html
+/sdcard/android/layout_tests/editing/execCommand/remove-list-1.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-5.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-2.html
/sdcard/android/layout_tests/editing/execCommand/copy-without-selection.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-nested-lists-4.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-nested-lists-1.html
/sdcard/android/layout_tests/editing/execCommand/findString-diacriticals.html
-/sdcard/android/layout_tests/editing/execCommand/5658933-3.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-7.html
/sdcard/android/layout_tests/editing/execCommand/createLink.html
-/sdcard/android/layout_tests/editing/execCommand/5543472-1.html
+/sdcard/android/layout_tests/editing/execCommand/remove-list-items.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-4.html
/sdcard/android/layout_tests/editing/execCommand/5939887.html
+/sdcard/android/layout_tests/editing/execCommand/insertHTML.html
+/sdcard/android/layout_tests/editing/execCommand/convert-style-elements-to-spans.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-1.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-nested-lists-3.html
/sdcard/android/layout_tests/editing/pasteboard/paste-into-anchor-text.html
+/sdcard/android/layout_tests/editing/pasteboard/19644-1.html
/sdcard/android/layout_tests/editing/pasteboard/copy-crash.html
/sdcard/android/layout_tests/editing/pasteboard/5665299.html
+/sdcard/android/layout_tests/editing/pasteboard/file-input-files-access.html
+/sdcard/android/layout_tests/editing/pasteboard/get-data-text-plain-drop.html
+/sdcard/android/layout_tests/editing/pasteboard/get-data-text-plain-paste.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-before-blockquote.html
/sdcard/android/layout_tests/editing/pasteboard/5761530-1.html
/sdcard/android/layout_tests/editing/pasteboard/copy-in-password-field.html
/sdcard/android/layout_tests/editing/pasteboard/paste-plaintext-user-select-none.html
/sdcard/android/layout_tests/editing/pasteboard/drag-image-in-about-blank-frame.html
/sdcard/android/layout_tests/editing/pasteboard/4744008.html
/sdcard/android/layout_tests/editing/pasteboard/4922709.html
+/sdcard/android/layout_tests/editing/pasteboard/19644-2.html
/sdcard/android/layout_tests/editing/pasteboard/paste-text-013.html
/sdcard/android/layout_tests/editing/pasteboard/5780697-2.html
-/sdcard/android/layout_tests/editing/pasteboard/4840662.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-double-nested-blockquote-before-blockquote.html
+/sdcard/android/layout_tests/editing/pasteboard/copy-paste-float.html
/sdcard/android/layout_tests/editing/pasteboard/paste-table-002.html
+/sdcard/android/layout_tests/editing/selection/click-outside-editable-div.html
/sdcard/android/layout_tests/editing/selection/drag-text-delay.html
-/sdcard/android/layout_tests/editing/selection/skip-non-editable-1.html
+/sdcard/android/layout_tests/editing/selection/anchor-focus3.html
+/sdcard/android/layout_tests/editing/selection/home-end.html
+/sdcard/android/layout_tests/editing/selection/user-drag-element-and-user-select-none.html
+/sdcard/android/layout_tests/editing/selection/drag-start-event-client-x-y.html
+/sdcard/android/layout_tests/editing/selection/extend-selection-bidi.html
+/sdcard/android/layout_tests/editing/selection/find-in-text-control.html
+/sdcard/android/layout_tests/editing/selection/5209984.html
+/sdcard/android/layout_tests/editing/selection/toString-1.html
+/sdcard/android/layout_tests/editing/selection/hit-test-anonymous.html
+/sdcard/android/layout_tests/editing/selection/move-begin-end.html
+/sdcard/android/layout_tests/editing/selection/doubleclick-whitespace-img-crash.html
+/sdcard/android/layout_tests/editing/selection/click-after-nested-block.html
/sdcard/android/layout_tests/editing/selection/move-by-line-003.html
+/sdcard/android/layout_tests/editing/selection/skip-non-editable-1.html
/sdcard/android/layout_tests/editing/selection/anchor-focus1.html
/sdcard/android/layout_tests/editing/selection/getRangeAt.html
/sdcard/android/layout_tests/editing/selection/select-all-textarea.html
/sdcard/android/layout_tests/editing/selection/doubleclick-whitespace.html
+/sdcard/android/layout_tests/editing/selection/move-paragraph-document-edges.html
/sdcard/android/layout_tests/editing/selection/after-line-break.html
/sdcard/android/layout_tests/editing/selection/legal-positions.html
-/sdcard/android/layout_tests/editing/selection/anchor-focus3.html
+/sdcard/android/layout_tests/editing/selection/extend-selection-after-double-click.html
+/sdcard/android/layout_tests/editing/selection/select-line.html
+/sdcard/android/layout_tests/editing/selection/doubleclick-whitespace-crash.html
/sdcard/android/layout_tests/editing/selection/toString.html
-/sdcard/android/layout_tests/editing/selection/extend-selection-bidi.html
/sdcard/android/layout_tests/editing/selection/inactive-selection.html
+/sdcard/android/layout_tests/editing/selection/click-in-margins-inside-editable-div.html
/sdcard/android/layout_tests/editing/selection/removeAllRanges.html
-/sdcard/android/layout_tests/editing/selection/5209984.html
/sdcard/android/layout_tests/editing/selection/skip-non-editable-2.html
-/sdcard/android/layout_tests/editing/selection/toString-1.html
/sdcard/android/layout_tests/editing/selection/anchor-focus2.html
-/sdcard/android/layout_tests/editing/selection/move-begin-end.html
-/sdcard/android/layout_tests/editing/selection/move-left-right.html
+/sdcard/android/layout_tests/editing/selection/click-in-padding-with-multiple-line-boxes.html
/sdcard/android/layout_tests/editing/selection/click-before-and-after-table.html
/sdcard/android/layout_tests/editing/undo/undo-iframe-location-change.html
/sdcard/android/layout_tests/editing/deleting/pruning-after-merge-1.html
@@ -154,83 +138,36 @@
/sdcard/android/layout_tests/editing/deleting/4916235-1.html
/sdcard/android/layout_tests/editing/deleting/delete-ligature-001.html
/sdcard/android/layout_tests/editing/deleting/delete-ligature-003.html
-/sdcard/android/layout_tests/editing/deleting/5890684.html
+/sdcard/android/layout_tests/editing/deleting/skip-virama-001.html
/sdcard/android/layout_tests/editing/deleting/smart-editing-disabled.html
/sdcard/android/layout_tests/editing/deleting/delete-ligature-002.html
/sdcard/android/layout_tests/editing/deleting/delete-all-text-in-text-field-assertion.html
-/sdcard/android/layout_tests/accessibility/image-map1.html
-/sdcard/android/layout_tests/accessibility/aria-labelledby-on-input.html
-/sdcard/android/layout_tests/accessibility/content-editable.html
-/sdcard/android/layout_tests/accessibility/frame-with-title.html
-/sdcard/android/layout_tests/accessibility/textarea-insertion-point-line-number.html
-/sdcard/android/layout_tests/accessibility/table-with-rules.html
-/sdcard/android/layout_tests/accessibility/aria-describedby-on-input.html
-/sdcard/android/layout_tests/accessibility/radio-button-checkbox-size.html
-/sdcard/android/layout_tests/accessibility/table-detection.html
-/sdcard/android/layout_tests/accessibility/th-as-title-ui.html
-/sdcard/android/layout_tests/accessibility/table-with-aria-role.html
-/sdcard/android/layout_tests/accessibility/accesskey.html
-/sdcard/android/layout_tests/accessibility/image-map2.html
-/sdcard/android/layout_tests/accessibility/iframe-bastardization.html
-/sdcard/android/layout_tests/accessibility/aria-spinbutton.html
-/sdcard/android/layout_tests/accessibility/button-press-action.html
-/sdcard/android/layout_tests/accessibility/table-cell-spans.html
-/sdcard/android/layout_tests/accessibility/table-cells.html
-/sdcard/android/layout_tests/accessibility/double-title.html
-/sdcard/android/layout_tests/accessibility/lists.html
-/sdcard/android/layout_tests/accessibility/plugin.html
-/sdcard/android/layout_tests/accessibility/table-sections.html
-/sdcard/android/layout_tests/accessibility/textarea-selected-text-range.html
-/sdcard/android/layout_tests/accessibility/input-image-url.html
-/sdcard/android/layout_tests/accessibility/aria-range-value.html
-/sdcard/android/layout_tests/accessibility/table-one-cell.html
-/sdcard/android/layout_tests/accessibility/internal-link-anchors2.html
-/sdcard/android/layout_tests/accessibility/table-nofirstbody.html
-/sdcard/android/layout_tests/accessibility/table-modification-crash.html
-/sdcard/android/layout_tests/accessibility/radio-button-group-members.html
-/sdcard/android/layout_tests/accessibility/aria-link-supports-press.html
-/sdcard/android/layout_tests/accessibility/document-attributes.html
-/sdcard/android/layout_tests/accessibility/table-notbody.html
-/sdcard/android/layout_tests/accessibility/aria-range.html
-/sdcard/android/layout_tests/accessibility/bounds-for-range.html
-/sdcard/android/layout_tests/accessibility/table-attributes.html
-/sdcard/android/layout_tests/accessibility/textarea-line-for-index.html
-/sdcard/android/layout_tests/accessibility/aria-slider.html
-/sdcard/android/layout_tests/accessibility/document-links.html
-/sdcard/android/layout_tests/accessibility/legend.html
-/sdcard/android/layout_tests/accessibility/aria-roles.html
-/sdcard/android/layout_tests/accessibility/nochildren-elements.html
-/sdcard/android/layout_tests/accessibility/internal-link-anchors.html
+/sdcard/android/layout_tests/editing/text-iterator/basic-iteration.html
+/sdcard/android/layout_tests/editing/text-iterator/thai-cursor-movement.html
+/sdcard/android/layout_tests/fast/replaced/table-percent-height-text-controls.html
+/sdcard/android/layout_tests/fast/replaced/image-map-2.html
/sdcard/android/layout_tests/fast/replaced/image-map-bug16782.html
/sdcard/android/layout_tests/fast/replaced/table-percent-height.html
/sdcard/android/layout_tests/fast/replaced/image-map.html
/sdcard/android/layout_tests/fast/dynamic/paused-event-dispatch.html
+/sdcard/android/layout_tests/fast/text/international/thai-offsetForPosition-inside-character.html
/sdcard/android/layout_tests/fast/text/plain-text-line-breaks.html
+/sdcard/android/layout_tests/fast/text/offsetForPosition-cluster-at-zero.html
/sdcard/android/layout_tests/fast/text/zero-width-characters.html
/sdcard/android/layout_tests/fast/text/reset-drag-on-mouse-down.html
/sdcard/android/layout_tests/fast/encoding/invalid-xml.html
/sdcard/android/layout_tests/fast/encoding/char-decoding-mac.html
-/sdcard/android/layout_tests/fast/encoding/frame-default-enc.html
/sdcard/android/layout_tests/fast/encoding/mailto-always-utf-8.html
+/sdcard/android/layout_tests/fast/encoding/percent-escaping.html
+/sdcard/android/layout_tests/fast/encoding/utf-32-big-endian-nobom.xml
+/sdcard/android/layout_tests/fast/encoding/hanarei-blog32-fc2-com.html
+/sdcard/android/layout_tests/fast/encoding/frame-default-enc.html
/sdcard/android/layout_tests/fast/encoding/char-decoding.html
/sdcard/android/layout_tests/fast/encoding/url-host-name-non-ascii.html
/sdcard/android/layout_tests/fast/encoding/idn-security.html
-/sdcard/android/layout_tests/fast/encoding/percent-escaping.html
-/sdcard/android/layout_tests/fast/encoding/xml-utf-8-default.xml
+/sdcard/android/layout_tests/fast/encoding/utf-32-little-endian-nobom.xml
/sdcard/android/layout_tests/fast/encoding/char-encoding-mac.html
-/sdcard/android/layout_tests/fast/encoding/yahoo-mail.html
/sdcard/android/layout_tests/fast/encoding/charset-koi8-u.html
-/sdcard/android/layout_tests/fast/encoding/ahram-org-eg.html
-/sdcard/android/layout_tests/fast/encoding/noscript-in-head.html
-/sdcard/android/layout_tests/fast/workers/worker-location.html
-/sdcard/android/layout_tests/fast/workers/worker-constructor.html
-/sdcard/android/layout_tests/fast/workers/stress-js-execution.html
-/sdcard/android/layout_tests/fast/workers/worker-terminate.html
-/sdcard/android/layout_tests/fast/workers/worker-gc.html
-/sdcard/android/layout_tests/fast/workers/worker-navigator.html
-/sdcard/android/layout_tests/fast/workers/worker-replace-global-constructor.html
-/sdcard/android/layout_tests/fast/workers/worker-replace-self.html
-/sdcard/android/layout_tests/fast/workers/worker-event-listener.html
/sdcard/android/layout_tests/fast/selectors/lang-inheritance.html
/sdcard/android/layout_tests/fast/selectors/lang-vs-xml-lang.html
/sdcard/android/layout_tests/fast/selectors/lang-inheritance2.html
@@ -238,7 +175,6 @@
/sdcard/android/layout_tests/fast/events/onunload.html
/sdcard/android/layout_tests/fast/events/mouseup-outside-document.html
/sdcard/android/layout_tests/fast/events/offsetX-offsetY.html
-/sdcard/android/layout_tests/fast/events/scroll-event-does-not-bubble.html
/sdcard/android/layout_tests/fast/events/mouseover-mouseout.html
/sdcard/android/layout_tests/fast/events/option-tab.html
/sdcard/android/layout_tests/fast/events/popup-blocking-click-in-iframe.html
@@ -251,11 +187,15 @@
/sdcard/android/layout_tests/fast/events/fire-scroll-event.html
/sdcard/android/layout_tests/fast/events/attempt-scroll-with-no-scrollbars.html
/sdcard/android/layout_tests/fast/events/mouseclick-target-and-positioning.html
-/sdcard/android/layout_tests/fast/events/keydown-keypress-focus-change.html
+/sdcard/android/layout_tests/fast/events/anchor-empty-focus.html
/sdcard/android/layout_tests/fast/events/input-image-scrolled-x-y.html
/sdcard/android/layout_tests/fast/events/dblclick-addEventListener.html
/sdcard/android/layout_tests/fast/events/frame-programmatic-focus.html
+/sdcard/android/layout_tests/fast/events/related-target.html
/sdcard/android/layout_tests/fast/events/context-onmousedown-event.html
+/sdcard/android/layout_tests/fast/events/mouse-drag-from-frame-to-other-frame.html
+/sdcard/android/layout_tests/fast/events/prevent-drag-to-navigate.html
+/sdcard/android/layout_tests/fast/events/stop-load-in-unload-handler-using-window-stop.html
/sdcard/android/layout_tests/fast/events/content-changed-during-drop.html
/sdcard/android/layout_tests/fast/events/autoscroll-with-non-scrollable-parent.html
/sdcard/android/layout_tests/fast/events/window-events-capture.html
@@ -268,23 +208,26 @@
/sdcard/android/layout_tests/fast/events/access-key-self-destruct.html
/sdcard/android/layout_tests/fast/events/scrollbar-double-click.html
/sdcard/android/layout_tests/fast/events/onunload-clears-onbeforeunload.html
+/sdcard/android/layout_tests/fast/events/stop-load-in-unload-handler-using-document-write.html
/sdcard/android/layout_tests/fast/events/tabindex-focus-chain.html
/sdcard/android/layout_tests/fast/events/capture-on-target.html
/sdcard/android/layout_tests/fast/events/window-events-bubble.html
+/sdcard/android/layout_tests/fast/events/event-function-toString.html
+/sdcard/android/layout_tests/fast/events/right-click-focus.html
/sdcard/android/layout_tests/fast/events/mouseup-from-button2.html
/sdcard/android/layout_tests/fast/events/frame-click-focus.html
+/sdcard/android/layout_tests/fast/events/crash-on-mutate-during-drop.html
/sdcard/android/layout_tests/fast/events/mouseout-on-window.html
/sdcard/android/layout_tests/fast/events/keypress-insert-tab.html
/sdcard/android/layout_tests/fast/events/mouseout-dead-subframe.html
-/sdcard/android/layout_tests/fast/events/iframe-object-onload.html
/sdcard/android/layout_tests/fast/events/onunload-not-on-body.html
/sdcard/android/layout_tests/fast/events/mousemove-after-drag-over-scrollbar.html
/sdcard/android/layout_tests/fast/events/contextmenu-scrolled-page-with-frame.html
+/sdcard/android/layout_tests/fast/events/drag-to-navigate.html
/sdcard/android/layout_tests/fast/events/key-events-in-input-button.html
/sdcard/android/layout_tests/fast/events/arrow-keys-on-body.html
/sdcard/android/layout_tests/fast/events/ondragenter.html
/sdcard/android/layout_tests/fast/events/pointer-events.html
-/sdcard/android/layout_tests/fast/events/scroll-to-anchor-in-overflow-hidden.html
/sdcard/android/layout_tests/fast/events/autoscroll-nonscrollable-iframe-in-scrollable-div.html
/sdcard/android/layout_tests/fast/events/keypress-focus-change.html
/sdcard/android/layout_tests/fast/events/key-events-in-input-text.html
@@ -293,118 +236,83 @@
/sdcard/android/layout_tests/fast/events/click-count.html
/sdcard/android/layout_tests/fast/events/onchange-searchfield.html
/sdcard/android/layout_tests/fast/events/special-key-events-in-input-text.html
+/sdcard/android/layout_tests/fast/events/mouse-drag-from-frame.html
/sdcard/android/layout_tests/fast/events/keydown-keypress-preventDefault.html
-/sdcard/android/layout_tests/fast/events/mouse-click-events.html
/sdcard/android/layout_tests/fast/events/onsearch-enter.html
+/sdcard/android/layout_tests/fast/events/mouse-click-events.html
/sdcard/android/layout_tests/fast/events/mouseover-mouseout2.html
/sdcard/android/layout_tests/fast/events/open-window-from-another-frame.html
-/sdcard/android/layout_tests/fast/events/init-events.html
+/sdcard/android/layout_tests/fast/events/resize-subframe.html
/sdcard/android/layout_tests/fast/events/onchange-textfield.html
/sdcard/android/layout_tests/fast/events/onclick-list-marker.html
/sdcard/android/layout_tests/fast/events/anchor-image-scrolled-x-y.html
-/sdcard/android/layout_tests/fast/html/tab-order.html
-/sdcard/android/layout_tests/fast/regex/test1.html
-/sdcard/android/layout_tests/fast/js/kde/garbage-n.html
+/sdcard/android/layout_tests/fast/images/image-map-zoom.html
/sdcard/android/layout_tests/fast/js/kde/Number.html
-/sdcard/android/layout_tests/fast/js/kde/string-2-n.html
-/sdcard/android/layout_tests/fast/js/kde/encode_decode_uri.html
-/sdcard/android/layout_tests/fast/js/kde/string-1-n.html
-/sdcard/android/layout_tests/fast/js/exception-sequencing-binops.html
-/sdcard/android/layout_tests/fast/js/recursion-limit-equal.html
-/sdcard/android/layout_tests/fast/js/exception-sequencing-binops2.html
-/sdcard/android/layout_tests/fast/js/math-transforms.html
-/sdcard/android/layout_tests/fast/js/try-catch-crash.html
-/sdcard/android/layout_tests/fast/js/array-iterate-backwards.html
+/sdcard/android/layout_tests/fast/js/instanceof-operator.html
/sdcard/android/layout_tests/fast/js/navigator-mimeTypes-length.html
/sdcard/android/layout_tests/fast/js/global-constructors.html
-/sdcard/android/layout_tests/fast/js/uncaught-exception-line-number.html
-/sdcard/android/layout_tests/fast/js/exceptions-thrown-in-callbacks.html
-/sdcard/android/layout_tests/fast/js/toString-and-valueOf-override.html
-/sdcard/android/layout_tests/fast/js/function-toString-parentheses.html
-/sdcard/android/layout_tests/fast/js/large-expressions.html
-/sdcard/android/layout_tests/fast/js/exception-sequencing.html
-/sdcard/android/layout_tests/fast/js/exception-codegen-crash.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/activeElement.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-special-properties.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/url-getset.html
+/sdcard/android/layout_tests/fast/js/convert-nan-to-bool.html
/sdcard/android/layout_tests/fast/dom/HTMLDocument/hasFocus.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/listbox-select-reset.html
/sdcard/android/layout_tests/fast/dom/Document/early-document-access.html
-/sdcard/android/layout_tests/fast/dom/Element/offsetLeft-offsetTop-body-quirk.html
/sdcard/android/layout_tests/fast/dom/DOMException/XPathException.html
+/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/nested-execution.html
+/sdcard/android/layout_tests/fast/dom/HTMLDataGridElement/DataGridColumns-dom.html
+/sdcard/android/layout_tests/fast/dom/HTMLDataGridElement/DataGridColumns-basic.html
+/sdcard/android/layout_tests/fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html
+/sdcard/android/layout_tests/fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html
/sdcard/android/layout_tests/fast/dom/getElementsByClassName/010.xml
/sdcard/android/layout_tests/fast/dom/getElementsByClassName/011.xml
-/sdcard/android/layout_tests/fast/dom/Window/window-resize-and-move-arguments.html
-/sdcard/android/layout_tests/fast/dom/Window/timeout-released-on-close.html
-/sdcard/android/layout_tests/fast/dom/Window/window-function-name-getter-precedence.html
/sdcard/android/layout_tests/fast/dom/Window/window-xy-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/console-functions.html
/sdcard/android/layout_tests/fast/dom/Window/window-screen-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/window-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/window-onFocus.html
/sdcard/android/layout_tests/fast/dom/Window/new-window-opener.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-pending-url.html
-/sdcard/android/layout_tests/fast/dom/Window/setting-properties-on-closed-window.html
/sdcard/android/layout_tests/fast/dom/Window/dom-access-from-closure-window.html
/sdcard/android/layout_tests/fast/dom/Window/window-resize.html
/sdcard/android/layout_tests/fast/dom/Window/closure-access-after-navigation-window.html
-/sdcard/android/layout_tests/fast/dom/Window/window-special-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/dom-access-from-closure-iframe.html
/sdcard/android/layout_tests/fast/dom/Window/Plug-ins.html
/sdcard/android/layout_tests/fast/dom/Window/get-set-properties.html
/sdcard/android/layout_tests/fast/dom/Window/window-scroll-arguments.html
+/sdcard/android/layout_tests/fast/dom/Window/window-lookup-precedence.html
+/sdcard/android/layout_tests/fast/dom/Window/window-resize-and-move-arguments.html
+/sdcard/android/layout_tests/fast/dom/Window/custom-constructors.html
+/sdcard/android/layout_tests/fast/dom/Window/webkitConvertPoint.html
+/sdcard/android/layout_tests/fast/dom/Window/window-properties.html
+/sdcard/android/layout_tests/fast/dom/Window/window-onFocus.html
+/sdcard/android/layout_tests/fast/dom/Window/dom-access-from-closure-iframe.html
/sdcard/android/layout_tests/fast/dom/Window/window-early-properties.html
/sdcard/android/layout_tests/fast/dom/StyleSheet/ownerNode-lifetime-2.html
/sdcard/android/layout_tests/fast/dom/dom-constructors.html
/sdcard/android/layout_tests/fast/dom/assign-to-window-status.html
-/sdcard/android/layout_tests/fast/dom/gc-8.html
+/sdcard/android/layout_tests/fast/dom/navigator-detached-no-crash.html
/sdcard/android/layout_tests/fast/dom/object-embed-plugin-scripting.html
/sdcard/android/layout_tests/fast/dom/node-filter-gc.html
-/sdcard/android/layout_tests/fast/dom/noscript-canvas-in-created-html-document.html
-/sdcard/android/layout_tests/fast/dom/DOMParser-assign-variable.html
-/sdcard/android/layout_tests/fast/dom/timer-clear-interval-in-handler.html
-/sdcard/android/layout_tests/fast/dom/implementation-createHTMLDocument.html
-/sdcard/android/layout_tests/fast/dom/iframe-document.html
-/sdcard/android/layout_tests/fast/dom/document-all-input.html
-/sdcard/android/layout_tests/fast/dom/null-document-location-href-put-crash.html
-/sdcard/android/layout_tests/fast/dom/getelementsbytagnamens-mixed-namespaces.html
-/sdcard/android/layout_tests/fast/dom/object-plugin-hides-properties.html
-/sdcard/android/layout_tests/fast/dom/gc-2.html
-/sdcard/android/layout_tests/fast/dom/computed-style-set-property.html
-/sdcard/android/layout_tests/fast/dom/inner-text-001.html
-/sdcard/android/layout_tests/fast/dom/css-selectorText.html
-/sdcard/android/layout_tests/fast/dom/replace-first-child.html
-/sdcard/android/layout_tests/fast/dom/importNode-null.html
-/sdcard/android/layout_tests/fast/dom/select-selectedIndex-multiple.html
+/sdcard/android/layout_tests/fast/dom/getClientRects.html
+/sdcard/android/layout_tests/fast/dom/prototype-inheritance-2.html
+/sdcard/android/layout_tests/fast/dom/location-new-window-no-crash.html
/sdcard/android/layout_tests/fast/dom/gc-9.html
-/sdcard/android/layout_tests/fast/dom/NamedNodeMap-setNamedItem-crash.html
/sdcard/android/layout_tests/fast/dom/wrapper-classes.html
-/sdcard/android/layout_tests/fast/dom/select-selectedIndex.html
/sdcard/android/layout_tests/fast/dom/document-width-height-force-layout.html
-/sdcard/android/layout_tests/fast/dom/gc-acid3.html
/sdcard/android/layout_tests/fast/dom/client-width-height.html
+/sdcard/android/layout_tests/fast/dom/constructed-objects-prototypes.html
/sdcard/android/layout_tests/fast/dom/global-constructors.html
/sdcard/android/layout_tests/fast/dom/client-width-height-quirks.html
/sdcard/android/layout_tests/fast/dom/javascript-url-crash-function.html
+/sdcard/android/layout_tests/fast/dom/getBoundingClientRect.html
/sdcard/android/layout_tests/fast/dom/location-hash.html
-/sdcard/android/layout_tests/fast/dom/constructors-cached.html
-/sdcard/android/layout_tests/fast/dom/non-numeric-values-numeric-parameters.html
/sdcard/android/layout_tests/fast/dom/documenturi-can-hold-arbitrary-string.html
/sdcard/android/layout_tests/fast/dom/documenturi-not-affected-by-base-tag.html
/sdcard/android/layout_tests/fast/dom/open-and-close-by-DOM.html
/sdcard/android/layout_tests/fast/dom/set-frame-src-while-running-script-in-frame.html
-/sdcard/android/layout_tests/fast/dom/document_write_params.html
-/sdcard/android/layout_tests/fast/dom/namednodemap-namelookup.html
-/sdcard/android/layout_tests/fast/dom/null-document-location-replace-crash.html
-/sdcard/android/layout_tests/fast/dom/htmlcollection-detectability.html
-/sdcard/android/layout_tests/fast/dom/documenturi-assigned-junk-implies-relative-urls-do-not-resolve.html
-/sdcard/android/layout_tests/fast/dom/collection-namedItem-via-item.html
-/sdcard/android/layout_tests/fast/dom/set-inner-text-newlines.html
-/sdcard/android/layout_tests/fast/dom/document-dir-property.html
-/sdcard/android/layout_tests/fast/dom/undetectable-style-filter.html
-/sdcard/android/layout_tests/fast/dom/tabindex-clamp.html
-/sdcard/android/layout_tests/fast/dom/constructors-cached-navigate.html
+/sdcard/android/layout_tests/fast/dom/prototype-inheritance.html
+/sdcard/android/layout_tests/fast/dom/getBoundingClientRect-getClientRects-relative-to-viewport.html
/sdcard/android/layout_tests/fast/dom/frame-loading-via-document-write.html
+/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/paths.html
+/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/expressions.html
+/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/predicates.html
+/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/abbreviations.html
+/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/axes.html
+/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/functions.html
+/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/nodetests.html
+/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/data.html
/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/od_20000608.html
/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/namespace-nodes.html
/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/rs_20010831.html
@@ -421,25 +329,30 @@
/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_nodeset_expr.html
/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_numeric_expr.html
/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_step.html
+/sdcard/android/layout_tests/fast/xpath/detached-subtree-invalidate-iterator.html
/sdcard/android/layout_tests/fast/xpath/ancestor-axis.html
/sdcard/android/layout_tests/fast/xpath/string-value.html
-/sdcard/android/layout_tests/fast/xpath/name-null-namespace.html
/sdcard/android/layout_tests/fast/xpath/id-simple.html
/sdcard/android/layout_tests/fast/xpath/id-path.html
-/sdcard/android/layout_tests/fast/xpath/implicit-node-args.html
-/sdcard/android/layout_tests/fast/xpath/text-nodes.html
/sdcard/android/layout_tests/fast/xpath/invalid-functions.html
/sdcard/android/layout_tests/fast/xpath/xpath-namespaces.html
-/sdcard/android/layout_tests/fast/xpath/xpath-functional-test.html
+/sdcard/android/layout_tests/fast/xpath/node-name-case-sensitivity.html
+/sdcard/android/layout_tests/fast/xpath/xpath-empty-string.html
+/sdcard/android/layout_tests/fast/xpath/attribute-node-predicate.html
+/sdcard/android/layout_tests/fast/xpath/nodeset-duplicates.html
+/sdcard/android/layout_tests/fast/xpath/name-null-namespace.html
+/sdcard/android/layout_tests/fast/xpath/implicit-node-args.html
+/sdcard/android/layout_tests/fast/xpath/text-nodes.html
/sdcard/android/layout_tests/fast/xpath/complex-id.html
+/sdcard/android/layout_tests/fast/xpath/xpath-functional-test.html
/sdcard/android/layout_tests/fast/xpath/attr-namespace.html
-/sdcard/android/layout_tests/fast/xpath/substring-after.html
+/sdcard/android/layout_tests/fast/xpath/position.html
/sdcard/android/layout_tests/fast/xpath/evaluate-twice.html
+/sdcard/android/layout_tests/fast/xpath/substring-after.html
/sdcard/android/layout_tests/fast/xpath/empty-string-substring.html
/sdcard/android/layout_tests/fast/xpath/document-order.html
-/sdcard/android/layout_tests/fast/xpath/nodeset-duplicates.html
-/sdcard/android/layout_tests/fast/xpath/nan-to-boolean.html
/sdcard/android/layout_tests/fast/xpath/reverse-axes.html
+/sdcard/android/layout_tests/fast/xpath/nan-to-boolean.html
/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii-text-plain.html
/sdcard/android/layout_tests/fast/forms/mailto/advanced-get.html
/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii-text-plain-latin-1.html
@@ -459,86 +372,85 @@
/sdcard/android/layout_tests/fast/forms/mailto/advanced-put.html
/sdcard/android/layout_tests/fast/forms/listbox-typeahead-scroll.html
/sdcard/android/layout_tests/fast/forms/select-empty-list.html
-/sdcard/android/layout_tests/fast/forms/select-accesskey.html
/sdcard/android/layout_tests/fast/forms/focus2.html
-/sdcard/android/layout_tests/fast/forms/password-doubleclick-selection.html
-/sdcard/android/layout_tests/fast/forms/textfield-inside-anchor.html
-/sdcard/android/layout_tests/fast/forms/textarea-trailing-newline.html
/sdcard/android/layout_tests/fast/forms/legend-access-key.html
-/sdcard/android/layout_tests/fast/forms/input-maxlength.html
-/sdcard/android/layout_tests/fast/forms/selection-functions.html
-/sdcard/android/layout_tests/fast/forms/textfield-to-password-on-focus.html
-/sdcard/android/layout_tests/fast/forms/select-reset.html
/sdcard/android/layout_tests/fast/forms/focus-selection-textarea.html
-/sdcard/android/layout_tests/fast/forms/enter-clicks-buttons.html
-/sdcard/android/layout_tests/fast/forms/radio_checked_name.html
-/sdcard/android/layout_tests/fast/forms/radio-check-click-and-drag.html
+/sdcard/android/layout_tests/fast/forms/select-popup-pagekeys.html
/sdcard/android/layout_tests/fast/forms/select-double-onchange.html
/sdcard/android/layout_tests/fast/forms/button-enter-click.html
-/sdcard/android/layout_tests/fast/forms/search-click-in-placeholder.html
/sdcard/android/layout_tests/fast/forms/autofocus-opera-003.html
-/sdcard/android/layout_tests/fast/forms/search-hidden-cancel-button.html
-/sdcard/android/layout_tests/fast/forms/dragging-to-file-input.html
-/sdcard/android/layout_tests/fast/forms/textarea-paste-newline.html
-/sdcard/android/layout_tests/fast/forms/drag-into-textarea.html
+/sdcard/android/layout_tests/fast/forms/search-click-in-placeholder.html
/sdcard/android/layout_tests/fast/forms/onselect-textfield.html
-/sdcard/android/layout_tests/fast/forms/input-implicit-length-limit.html
-/sdcard/android/layout_tests/fast/forms/form-and-frame-interaction-retains-values.html
-/sdcard/android/layout_tests/fast/forms/slider-transformed.html
-/sdcard/android/layout_tests/fast/forms/listbox-select-all.html
/sdcard/android/layout_tests/fast/forms/textfield-onchange-deletion.html
-/sdcard/android/layout_tests/fast/forms/focus-control-to-page.html
-/sdcard/android/layout_tests/fast/forms/select-type-ahead-non-latin.html
-/sdcard/android/layout_tests/fast/forms/textarea-no-scroll-on-blur.html
-/sdcard/android/layout_tests/fast/forms/focus-selection-input.html
/sdcard/android/layout_tests/fast/forms/listbox-onchange.html
/sdcard/android/layout_tests/fast/forms/button-spacebar-click.html
-/sdcard/android/layout_tests/fast/forms/search-event-delay.html
/sdcard/android/layout_tests/fast/forms/search-cancel-button-mouseup.html
+/sdcard/android/layout_tests/fast/forms/get-file-upload.html
/sdcard/android/layout_tests/fast/forms/select-enter-key.html
/sdcard/android/layout_tests/fast/forms/drag-out-of-textarea.html
-/sdcard/android/layout_tests/fast/forms/textarea-hard-linewrap.html
-/sdcard/android/layout_tests/fast/forms/dragging-to-disabled-file-input.html
+/sdcard/android/layout_tests/fast/forms/option-mouseevents.html
/sdcard/android/layout_tests/fast/forms/input-radio-checked-tab.html
/sdcard/android/layout_tests/fast/forms/plaintext-mode-1.html
-/sdcard/android/layout_tests/fast/forms/check-box-enter-key.html
/sdcard/android/layout_tests/fast/forms/input-select-on-click.html
-/sdcard/android/layout_tests/fast/forms/button-state-restore.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-elementFromPoint.html
-/sdcard/android/layout_tests/fast/forms/select-set-inner.html
-/sdcard/android/layout_tests/fast/forms/missing-action.html
-/sdcard/android/layout_tests/fast/forms/access-key.html
/sdcard/android/layout_tests/fast/forms/textarea-scrolled-endline-caret.html
/sdcard/android/layout_tests/fast/forms/textarea-scrollbar-height.html
/sdcard/android/layout_tests/fast/forms/textarea-type-spaces.html
/sdcard/android/layout_tests/fast/forms/slider-mouse-events.html
-/sdcard/android/layout_tests/fast/forms/textarea-selection-preservation.html
/sdcard/android/layout_tests/fast/forms/slider-onchange-event.html
-/sdcard/android/layout_tests/fast/forms/add-remove-form-elements-stress-test.html
+/sdcard/android/layout_tests/fast/forms/textarea-input-event.html
+/sdcard/android/layout_tests/fast/forms/search-delete-while-cancel-button-clicked.html
+/sdcard/android/layout_tests/fast/forms/select-accesskey.html
+/sdcard/android/layout_tests/fast/forms/password-doubleclick-selection.html
+/sdcard/android/layout_tests/fast/forms/textfield-inside-anchor.html
+/sdcard/android/layout_tests/fast/forms/slider-delete-while-dragging-thumb.html
+/sdcard/android/layout_tests/fast/forms/textfield-to-password-on-focus.html
+/sdcard/android/layout_tests/fast/forms/textarea-arrow-navigation.html
+/sdcard/android/layout_tests/fast/forms/search-abs-pos-cancel-button.html
+/sdcard/android/layout_tests/fast/forms/enter-clicks-buttons.html
+/sdcard/android/layout_tests/fast/forms/radio_checked_name.html
+/sdcard/android/layout_tests/fast/forms/search-hidden-cancel-button.html
+/sdcard/android/layout_tests/fast/forms/select-script-onchange.html
+/sdcard/android/layout_tests/fast/forms/textarea-paste-newline.html
+/sdcard/android/layout_tests/fast/forms/drag-into-textarea.html
+/sdcard/android/layout_tests/fast/forms/form-and-frame-interaction-retains-values.html
+/sdcard/android/layout_tests/fast/forms/slider-transformed.html
+/sdcard/android/layout_tests/fast/forms/focus-control-to-page.html
+/sdcard/android/layout_tests/fast/forms/select-type-ahead-non-latin.html
+/sdcard/android/layout_tests/fast/forms/focus-selection-input.html
+/sdcard/android/layout_tests/fast/forms/slider-zoomed.html
+/sdcard/android/layout_tests/fast/forms/search-event-delay.html
+/sdcard/android/layout_tests/fast/forms/empty-textarea-toggle-disabled.html
+/sdcard/android/layout_tests/fast/forms/25153.html
+/sdcard/android/layout_tests/fast/forms/select-cache-desynchronization.html
+/sdcard/android/layout_tests/fast/forms/check-box-enter-key.html
+/sdcard/android/layout_tests/fast/forms/button-state-restore.html
+/sdcard/android/layout_tests/fast/forms/access-key.html
+/sdcard/android/layout_tests/fast/forms/textarea-selection-preservation.html
+/sdcard/android/layout_tests/fast/forms/textarea-metrics.html
/sdcard/android/layout_tests/fast/forms/onchange-enter-submit.html
-/sdcard/android/layout_tests/fast/forms/textarea-appearance-wrap.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-006.html
/sdcard/android/layout_tests/fast/forms/onselect-textarea.html
-/sdcard/android/layout_tests/fast/forms/textarea-initial-caret-position.html
/sdcard/android/layout_tests/fast/forms/listbox-selection.html
-/sdcard/android/layout_tests/fast/css/variables/color-hex-test.html
-/sdcard/android/layout_tests/fast/css/dashboard-region-parser.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style-without-renderer.html
/sdcard/android/layout_tests/fast/css/text-align.html
/sdcard/android/layout_tests/fast/css/hover-affects-child.html
-/sdcard/android/layout_tests/fast/css/html-attr-case-sensitivity.html
-/sdcard/android/layout_tests/fast/css/computed-style.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-transform.html
-/sdcard/android/layout_tests/fast/css/computed-style-without-renderer.html
+/sdcard/android/layout_tests/fast/css/resize-single-axis.html
+/sdcard/android/layout_tests/fast/css/percent-character-as-value.html
+/sdcard/android/layout_tests/fast/css/uri-token-parsing.html
+/sdcard/android/layout_tests/fast/css/mask-missing-image-crash.html
+/sdcard/android/layout_tests/fast/css/parse-timing-function-crash.html
+/sdcard/android/layout_tests/fast/css/background-position-inherit.html
+/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-003.html
+/sdcard/android/layout_tests/fast/css/zoom-body-scroll.html
+/sdcard/android/layout_tests/fast/css/font-family-builtins.html
/sdcard/android/layout_tests/fast/css/invalid-percentage-property.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-iframe.html
-/sdcard/android/layout_tests/fast/parser/external-entities.xml
-/sdcard/android/layout_tests/fast/parser/script-tag-with-trailing-slash.html
-/sdcard/android/layout_tests/fast/parser/comment-in-iframe.html
+/sdcard/android/layout_tests/fast/css/remove-shorthand.html
+/sdcard/android/layout_tests/fast/css/overflow-property.html
/sdcard/android/layout_tests/fast/parser/external-entities-in-xslt.xml
/sdcard/android/layout_tests/fast/parser/xml-declaration-missing-ending-mark.html
-/sdcard/android/layout_tests/fast/parser/entity-end-script-tag.html
/sdcard/android/layout_tests/fast/parser/tabindex-parsing.html
-/sdcard/android/layout_tests/fast/history/subframe-is-visited.html
+/sdcard/android/layout_tests/fast/history/saves-state-after-fragment-nav.html
+/sdcard/android/layout_tests/fast/history/back-forward-is-asynchronous.html
/sdcard/android/layout_tests/fast/history/window-open.html
/sdcard/android/layout_tests/fast/history/history_reload.html
/sdcard/android/layout_tests/fast/history/go-back-to-changed-name.html
@@ -546,15 +458,21 @@
/sdcard/android/layout_tests/fast/loader/local-iFrame-source-from-local.html
/sdcard/android/layout_tests/fast/loader/null-request-after-willSendRequest.html
/sdcard/android/layout_tests/fast/loader/stop-provisional-loads.html
-/sdcard/android/layout_tests/fast/loader/xmlhttprequest-missing-file-exception.html
+/sdcard/android/layout_tests/fast/loader/user-style-sheet-resource-load-callbacks.html
+/sdcard/android/layout_tests/fast/loader/policy-delegate-action-hit-test-zoomed.html
+/sdcard/android/layout_tests/fast/loader/subframe-navigate-during-main-frame-load.html
/sdcard/android/layout_tests/fast/loader/onunload-form-submit-crash-2.html
+/sdcard/android/layout_tests/fast/loader/javascript-url-hierarchical-execution.html
/sdcard/android/layout_tests/fast/loader/plain-text-document.html
/sdcard/android/layout_tests/fast/loader/onunload-form-submit-crash.html
-/sdcard/android/layout_tests/fast/loader/frame-creation-removal.html
+/sdcard/android/layout_tests/fast/loader/subframe-self-close.html
/sdcard/android/layout_tests/fast/loader/local-image-from-local.html
/sdcard/android/layout_tests/fast/loader/local-CSS-from-local.html
+/sdcard/android/layout_tests/fast/loader/reload-policy-delegate.html
/sdcard/android/layout_tests/fast/loader/local-JavaScript-from-local.html
+/sdcard/android/layout_tests/fast/loader/main-document-url-for-non-http-loads.html
/sdcard/android/layout_tests/fast/loader/data-url-encoding-svg.html
+/sdcard/android/layout_tests/fast/loader/data-url-encoding-html.html
/sdcard/android/layout_tests/fast/loader/opaque-base-url.html
/sdcard/android/layout_tests/fast/xsl/sort-locale.xml
/sdcard/android/layout_tests/fast/xsl/transformToFragment-XML-declaration.html
@@ -576,123 +494,159 @@
/sdcard/android/layout_tests/fast/xsl/subframe-location.html
/sdcard/android/layout_tests/fast/xsl/xslt-second-level-import.xml
/sdcard/android/layout_tests/fast/xsl/dtd-in-source-document.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-fragment-in-empty-doc.html
/sdcard/android/layout_tests/fast/xsl/mozilla-tests.xml
+/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-bad-mimetype.html
+/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-gc.html
/sdcard/android/layout_tests/fast/canvas/canvas-alphaImageData-behavior.html
+/sdcard/android/layout_tests/fast/canvas/canvas-gradient-addStop-error.html
+/sdcard/android/layout_tests/fast/canvas/canvas-pattern-behaviour.html
/sdcard/android/layout_tests/fast/canvas/canvas-transform-non-invertible.html
/sdcard/android/layout_tests/fast/canvas/pointInPath.html
/sdcard/android/layout_tests/fast/canvas/canvas-transform-infinity.html
+/sdcard/android/layout_tests/fast/canvas/translate-text.html
/sdcard/android/layout_tests/fast/canvas/toDataURL-supportedTypes.html
/sdcard/android/layout_tests/fast/canvas/canvas-getImageData.html
+/sdcard/android/layout_tests/fast/canvas/canvas-empty-image-pattern.html
/sdcard/android/layout_tests/fast/canvas/canvas-transform-skewed.html
+/sdcard/android/layout_tests/fast/canvas/canvas-ImageData-behaviour.html
+/sdcard/android/layout_tests/fast/canvas/canvas-putImageData.html
+/sdcard/android/layout_tests/fast/canvas/canvas-pattern-modify.html
/sdcard/android/layout_tests/fast/canvas/canvas-longlived-context.html
/sdcard/android/layout_tests/fast/canvas/canvas-save-restore-with-path.html
-/sdcard/android/layout_tests/fast/canvas/set-colors.html
/sdcard/android/layout_tests/fast/canvas/canvas-transform-nan.html
+/sdcard/android/layout_tests/fast/canvas/canvas-pattern-transform.html
/sdcard/android/layout_tests/fast/canvas/canvas-transform-identity.html
+/sdcard/android/layout_tests/fast/canvas/set-colors.html
/sdcard/android/layout_tests/fast/canvas/canvas-transform-multiply.html
/sdcard/android/layout_tests/fast/frames/viewsource-empty-attribute-value.html
+/sdcard/android/layout_tests/fast/frames/location-put-after-removal.html
/sdcard/android/layout_tests/fast/frames/frame-deep-nested-resize.html
/sdcard/android/layout_tests/fast/frames/iframe-window-focus.html
+/sdcard/android/layout_tests/fast/frames/frame-dead-region.html
/sdcard/android/layout_tests/fast/frames/frameElement-widthheight.html
/sdcard/android/layout_tests/fast/frames/removal-before-attach-crash.html
+/sdcard/android/layout_tests/fast/frames/frame-unload-crash.html
/sdcard/android/layout_tests/fast/frames/frame-js-url-clientWidth.html
+/sdcard/android/layout_tests/fast/frames/iframe-js-url-clientWidth.html
/sdcard/android/layout_tests/fast/frames/frame-length-fractional.html
-/sdcard/android/layout_tests/fast/frames/frame-limit.html
-/sdcard/android/layout_tests/fast/frames/frame-display-none-focus.html
/sdcard/android/layout_tests/fast/frames/iframe-name-and-id.html
-/sdcard/android/layout_tests/fast/reflections/teardown-crash.html
-/sdcard/android/layout_tests/fast/reflections/reflection-computed-style.html
-/sdcard/android/layout_tests/transforms/2d/transform-2d.html
-/sdcard/android/layout_tests/transforms/2d/compound-2d-transforms.html
-/sdcard/android/layout_tests/transforms/2d/transform-value-types.html
-/sdcard/android/layout_tests/transforms/2d/computed-style-origin.html
-/sdcard/android/layout_tests/transforms/2d/transform-accuracy.html
-/sdcard/android/layout_tests/wml/variable-reference-valid.html
-/sdcard/android/layout_tests/wml/go-task-get-method-external-deck-with-href.html
-/sdcard/android/layout_tests/wml/variable-reference-invalid-character.html
-/sdcard/android/layout_tests/wml/go-task-animation.html
-/sdcard/android/layout_tests/wml/go-task-get-method-external-deck.html
-/sdcard/android/layout_tests/wml/go-task-get-method-same-deck.html
-/sdcard/android/layout_tests/animations/animation-css-rule-types.html
-/sdcard/android/layout_tests/animations/animation-events-create.html
-/sdcard/android/layout_tests/animations/animation-start-event-destroy-renderer.html
-/sdcard/android/layout_tests/animations/combo-transform-translate+scale.html
-/sdcard/android/layout_tests/animations/simultaneous-start-transform.html
-/sdcard/android/layout_tests/animations/lineheight-animation.html
-/sdcard/android/layout_tests/animations/import.html
-/sdcard/android/layout_tests/animations/simultaneous-start-left.html
-/sdcard/android/layout_tests/animations/fill-unset-properties.html
-/sdcard/android/layout_tests/animations/keyframes-to-missing.html
-/sdcard/android/layout_tests/animations/multiple-keyframes.html
-/sdcard/android/layout_tests/animations/matrix-anim.html
-/sdcard/android/layout_tests/animations/keyframes-comma-separated.html
-/sdcard/android/layout_tests/animations/change-one-anim.html
-/sdcard/android/layout_tests/animations/keyframes-rule.html
-/sdcard/android/layout_tests/animations/generic-from-to.html
-/sdcard/android/layout_tests/animations/big-rotation.html
-/sdcard/android/layout_tests/animations/animation-controller-drt-api.html
-/sdcard/android/layout_tests/animations/keyframe-timing-functions.html
-/sdcard/android/layout_tests/animations/keyframes-from-missing.html
-/sdcard/android/layout_tests/animations/transition-and-animation-1.html
-/sdcard/android/layout_tests/animations/computed-style.html
-/sdcard/android/layout_tests/animations/animation-iteration-event-destroy-renderer.html
-/sdcard/android/layout_tests/animations/keyframes.html
-/sdcard/android/layout_tests/animations/multiple-animations.html
-/sdcard/android/layout_tests/animations/animation-end-event-destroy-renderer.html
-/sdcard/android/layout_tests/animations/change-keyframes-name.html
-/sdcard/android/layout_tests/animations/combo-transform-rotate+scale.html
-/sdcard/android/layout_tests/animations/change-keyframes.html
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/010.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/001.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/002.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/003.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/004.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/005.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/006.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/007.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/008.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/009.xml
-/sdcard/android/layout_tests/storage/domstorage/localstorage/index-get-and-set.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/onstorage-attribute-setattribute.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/clear.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/enumerate-storage.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/simple-usage.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/simple-events.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/onstorage-attribute-markup.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/iframe-events.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/delete-removal.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/window-open.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/index-get-and-set.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/clear.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/enumerate-storage.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/simple-usage.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/simple-events.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/onstorage-attribute-markup.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/iframe-events.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/delete-removal.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/window-open.html
-/sdcard/android/layout_tests/storage/domstorage/window-attributes-exist.html
-/sdcard/android/layout_tests/storage/open-database-empty-version.html
-/sdcard/android/layout_tests/storage/close-during-stress-test.html
-/sdcard/android/layout_tests/storage/execute-sql-args.html
-/sdcard/android/layout_tests/storage/quota-tracking.html
-/sdcard/android/layout_tests/storage/transaction_callback_exception_crash.html
-/sdcard/android/layout_tests/storage/multiple-databases-garbage-collection.html
-/sdcard/android/layout_tests/storage/empty-statement.html
-/sdcard/android/layout_tests/storage/multiple-transactions.html
-/sdcard/android/layout_tests/storage/success-callback.html
-/sdcard/android/layout_tests/storage/sql-data-types.html
+/sdcard/android/layout_tests/fast/loading/subframe-removes-itself.html
+/sdcard/android/layout_tests/media/video-error-does-not-exist.html
+/sdcard/android/layout_tests/media/audio-constructor.html
+/sdcard/android/layout_tests/media/video-append-source.html
+/sdcard/android/layout_tests/media/media-load-event.html
+/sdcard/android/layout_tests/media/unsupported-rtsp.html
+/sdcard/android/layout_tests/media/video-currentTime-set2.html
+/sdcard/android/layout_tests/media/video-muted.html
+/sdcard/android/layout_tests/media/progress-event.html
+/sdcard/android/layout_tests/media/video-source-type.html
+/sdcard/android/layout_tests/media/audio-delete-while-step-button-clicked.html
+/sdcard/android/layout_tests/media/video-played-reset.html
+/sdcard/android/layout_tests/media/video-seek-past-end-playing.html
+/sdcard/android/layout_tests/media/video-dom-src.html
+/sdcard/android/layout_tests/media/remove-from-document.html
+/sdcard/android/layout_tests/media/video-loop.html
+/sdcard/android/layout_tests/media/video-src-change.html
+/sdcard/android/layout_tests/media/video-seekable.html
+/sdcard/android/layout_tests/media/video-played.html
+/sdcard/android/layout_tests/media/video-played-collapse.html
+/sdcard/android/layout_tests/media/video-click-dblckick-standalone.html
+/sdcard/android/layout_tests/media/video-can-play-type.html
+/sdcard/android/layout_tests/media/video-seeking.html
+/sdcard/android/layout_tests/media/video-controls-transformed.html
+/sdcard/android/layout_tests/media/video-controls-zoomed.html
+/sdcard/android/layout_tests/media/video-src-invalid-remove.html
+/sdcard/android/layout_tests/media/video-volume.html
+/sdcard/android/layout_tests/media/controls-right-click-on-timebar.html
+/sdcard/android/layout_tests/media/video-currentTime.html
+/sdcard/android/layout_tests/media/audio-constructor-autobuffer.html
+/sdcard/android/layout_tests/media/broken-video.html
+/sdcard/android/layout_tests/media/video-buffered.html
+/sdcard/android/layout_tests/media/video-load-networkState.html
+/sdcard/android/layout_tests/media/unsupported-tracks.html
+/sdcard/android/layout_tests/media/video-source-add-src.html
+/sdcard/android/layout_tests/media/video-seek-past-end-paused.html
+/sdcard/android/layout_tests/media/video-source-error.html
+/sdcard/android/layout_tests/media/video-controls.html
+/sdcard/android/layout_tests/media/video-canvas-source.html
+/sdcard/android/layout_tests/media/video-currentTime-set.html
+/sdcard/android/layout_tests/media/video-source-type-params.html
+/sdcard/android/layout_tests/media/event-attributes.html
+/sdcard/android/layout_tests/media/audio-data-url.html
+/sdcard/android/layout_tests/media/video-src-plus-source.html
+/sdcard/android/layout_tests/media/video-no-autoplay.html
+/sdcard/android/layout_tests/media/video-document-types.html
+/sdcard/android/layout_tests/media/audio-delete-while-slider-thumb-clicked.html
+/sdcard/android/layout_tests/media/video-error-abort.html
+/sdcard/android/layout_tests/media/video-size-intrinsic-scale.html
+/sdcard/android/layout_tests/media/progress-event-total.html
+/sdcard/android/layout_tests/media/audio-constructor-src.html
+/sdcard/android/layout_tests/media/audio-mpeg-supported.html
+/sdcard/android/layout_tests/plugins/throw-on-dealloc.html
+/sdcard/android/layout_tests/plugins/invoke.html
+/sdcard/android/layout_tests/plugins/plugin-remove-subframe.html
+/sdcard/android/layout_tests/plugins/netscape-identifier-conversion.html
+/sdcard/android/layout_tests/plugins/netscape-invoke-browserfuncs.html
+/sdcard/android/layout_tests/plugins/call-as-function-test.html
+/sdcard/android/layout_tests/plugins/npruntime.html
+/sdcard/android/layout_tests/plugins/netscape-construct.html
+/sdcard/android/layout_tests/plugins/root-object-premature-delete-crash.html
+/sdcard/android/layout_tests/plugins/netscape-get-property-return-value.html
+/sdcard/android/layout_tests/plugins/mouse-events.html
+/sdcard/android/layout_tests/plugins/return-error-from-new-stream-doesnt-invoke-destroy-stream.html
+/sdcard/android/layout_tests/plugins/destroy-stream-twice.html
+/sdcard/android/layout_tests/plugins/jsobjc-simple.html
+/sdcard/android/layout_tests/plugins/embed-attributes-setting.html
+/sdcard/android/layout_tests/plugins/inner-html-display-none.html
+/sdcard/android/layout_tests/plugins/netscape-invoke-default.html
+/sdcard/android/layout_tests/plugins/undefined-property-crash.html
+/sdcard/android/layout_tests/plugins/netscape-plugin-map-data-to-src.html
+/sdcard/android/layout_tests/plugins/netscape-plugin-setwindow-size-2.html
+/sdcard/android/layout_tests/plugins/jsobjc-dom-wrappers.html
+/sdcard/android/layout_tests/plugins/plugin-javascript-access.html
+/sdcard/android/layout_tests/plugins/getintidentifier-special-values.html
+/sdcard/android/layout_tests/plugins/get-empty-url.html
+/sdcard/android/layout_tests/plugins/geturl-replace-query.html
+/sdcard/android/layout_tests/plugins/netscape-destroy-plugin-script-objects.html
+/sdcard/android/layout_tests/plugins/open-and-close-window-with-plugin.html
+/sdcard/android/layout_tests/plugins/netscape-enumerate.html
+/sdcard/android/layout_tests/plugins/get-url-that-the-resource-load-delegate-will-disallow.html
+/sdcard/android/layout_tests/plugins/netscape-plugin-setwindow-size.html
+/sdcard/android/layout_tests/plugins/embed-inside-object.html
+/sdcard/android/layout_tests/plugins/netscape-throw-exception.html
+/sdcard/android/layout_tests/plugins/get-url-with-blank-target.html
+/sdcard/android/layout_tests/plugins/bindings-test.html
+/sdcard/android/layout_tests/scrollbars/scrollbar-miss-mousemove-disabled.html
/sdcard/android/layout_tests/security/set-form-autocomplete-attribute.html
-/sdcard/android/layout_tests/security/autocomplete-cleared-on-back.html
-/sdcard/android/layout_tests/security/block-test.html
+/sdcard/android/layout_tests/storage/execute-sql-args.html
/sdcard/android/layout_tests/transitions/transition-shorthand-delay.html
/sdcard/android/layout_tests/transitions/transition-drt-api-delay.html
+/sdcard/android/layout_tests/transitions/transition-hit-test.html
/sdcard/android/layout_tests/transitions/opacity-transition-zindex.html
-/sdcard/android/layout_tests/transitions/shorthand-transitions.html
+/sdcard/android/layout_tests/transitions/interrupted-all-transition.html
+/sdcard/android/layout_tests/transitions/mask-transitions.html
+/sdcard/android/layout_tests/transitions/zero-duration-with-non-zero-delay-start.html
/sdcard/android/layout_tests/transitions/hang-with-bad-transition-list.html
-/sdcard/android/layout_tests/transitions/zero-duration-in-list.html
-/sdcard/android/layout_tests/transitions/shorthand-border-transitions.html
/sdcard/android/layout_tests/transitions/zero-duration-with-non-zero-delay-end.html
+/sdcard/android/layout_tests/transitions/remove-transition-style.html
+/sdcard/android/layout_tests/transitions/transition-hit-test-transform.html
/sdcard/android/layout_tests/transitions/repeated-firing-background-color.html
-/sdcard/android/layout_tests/transitions/start-transform-transition.html
+/sdcard/android/layout_tests/webarchive/loading/test-loading-archive.html
+/sdcard/android/layout_tests/wml/onenterforward-event.html
+/sdcard/android/layout_tests/wml/go-task-get-method-external-deck-with-href.html
+/sdcard/android/layout_tests/wml/option-element-onpick.html
+/sdcard/android/layout_tests/wml/enter-first-card-with-events.html
+/sdcard/android/layout_tests/wml/go-task-get-method-external-deck.html
+/sdcard/android/layout_tests/wml/go-task-get-method-same-deck.html
+/sdcard/android/layout_tests/wml/onenterforward-inline-event.html
+/sdcard/android/layout_tests/wml/ontimer-event.html
+/sdcard/android/layout_tests/wml/variable-reference-invalid-character.html
+/sdcard/android/layout_tests/wml/enter-card-with-events.html
+/sdcard/android/layout_tests/wml/ontimer-inline-event.html
+/sdcard/android/layout_tests/wml/select-element-variables.html
+/sdcard/android/layout_tests/wml/variable-reference-valid.html
+/sdcard/android/layout_tests/wml/access-target-deny.html
+/sdcard/android/layout_tests/wml/input-format.html
+/sdcard/android/layout_tests/wml/access-target.html
+/sdcard/android/layout_tests/wml/newcontext-same-deck.html
diff --git a/tests/DumpRenderTree/assets/results/layout_tests_nontext.txt b/tests/DumpRenderTree/assets/results/layout_tests_nontext.txt
index eb5b6e0..121b5a1 100644
--- a/tests/DumpRenderTree/assets/results/layout_tests_nontext.txt
+++ b/tests/DumpRenderTree/assets/results/layout_tests_nontext.txt
@@ -1,2533 +1,149 @@
-/sdcard/android/layout_tests/webarchive/loading/cache-expired-subresource.html
-/sdcard/android/layout_tests/webarchive/test-css-import.html
-/sdcard/android/layout_tests/webarchive/test-img-src.html
-/sdcard/android/layout_tests/webarchive/archive-empty-frame-dom.html
-/sdcard/android/layout_tests/webarchive/test-frameset.html
-/sdcard/android/layout_tests/webarchive/test-body-background.html
-/sdcard/android/layout_tests/webarchive/test-input-src.html
-/sdcard/android/layout_tests/webarchive/archive-empty-frame-source.html
-/sdcard/android/layout_tests/webarchive/doctype.html
-/sdcard/android/layout_tests/webarchive/test-css-url-resources-inline-styles.html
-/sdcard/android/layout_tests/webarchive/test-table-background.html
-/sdcard/android/layout_tests/webarchive/test-object-data.html
-/sdcard/android/layout_tests/webarchive/test-css-url-resources-in-stylesheets.html
-/sdcard/android/layout_tests/webarchive/archive-with-unencoded-url.html
-/sdcard/android/layout_tests/webarchive/test-link-href.html
-/sdcard/android/layout_tests/webarchive/test-duplicate-resources.html
-/sdcard/android/layout_tests/webarchive/test-xml-stylesheet.xml
-/sdcard/android/layout_tests/webarchive/test-td-background.html
-/sdcard/android/layout_tests/webarchive/test-script-src.html
-/sdcard/android/layout_tests/media/video-transformed.html
-/sdcard/android/layout_tests/media/video-display-toggle.html
-/sdcard/android/layout_tests/media/audio-controls-rendering.html
-/sdcard/android/layout_tests/media/video-controls-visible-audio-only.html
-/sdcard/android/layout_tests/media/video-zoom.html
-/sdcard/android/layout_tests/media/video-controls-rendering.html
-/sdcard/android/layout_tests/media/video-aspect-ratio.html
-/sdcard/android/layout_tests/media/video-layer-crash.html
-/sdcard/android/layout_tests/plugins/netscape-dom-access.html
-/sdcard/android/layout_tests/plugins/embed-attributes-style.html
-/sdcard/android/layout_tests/editing/input/emacs-ctrl-o.html
-/sdcard/android/layout_tests/editing/style/style-3681552-fix-001.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-013.html
-/sdcard/android/layout_tests/editing/style/style-3690704-fix.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-005.html
-/sdcard/android/layout_tests/editing/style/style-boundary-002.html
-/sdcard/android/layout_tests/editing/style/remove-underline-after-paragraph.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-009.html
-/sdcard/android/layout_tests/editing/style/5228141.html
-/sdcard/android/layout_tests/editing/style/block-style-004.html
-/sdcard/android/layout_tests/editing/style/apple-style-editable-mix.html
-/sdcard/android/layout_tests/editing/style/unbold-in-bold.html
-/sdcard/android/layout_tests/editing/style/typing-style-001.html
-/sdcard/android/layout_tests/editing/style/remove-underline-from-stylesheet.html
-/sdcard/android/layout_tests/editing/style/relative-font-size-change-004.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-010.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-002.html
-/sdcard/android/layout_tests/editing/style/style-3681552-fix-002.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-006.html
-/sdcard/android/layout_tests/editing/style/style-boundary-003.html
-/sdcard/android/layout_tests/editing/style/block-style-001.html
-/sdcard/android/layout_tests/editing/style/smoosh-styles-001.html
-/sdcard/android/layout_tests/editing/style/font-family-with-space.html
-/sdcard/android/layout_tests/editing/style/5084241.html
-/sdcard/android/layout_tests/editing/style/5065910.html
-/sdcard/android/layout_tests/editing/style/block-style-005.html
-/sdcard/android/layout_tests/editing/style/remove-underline-across-paragraph-in-bold.html
-/sdcard/android/layout_tests/editing/style/5279521.html
-/sdcard/android/layout_tests/editing/style/non-inheritable-styles.html
-/sdcard/android/layout_tests/editing/style/5046875-1.html
-/sdcard/android/layout_tests/editing/style/style-3998892-fix.html
-/sdcard/android/layout_tests/editing/style/remove-underline-in-bold.html
-/sdcard/android/layout_tests/editing/style/typing-style-002.html
-/sdcard/android/layout_tests/editing/style/relative-font-size-change-001.html
-/sdcard/android/layout_tests/editing/style/4916887.html
-/sdcard/android/layout_tests/editing/style/remove-underline-across-paragraph.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-011.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-003.html
-/sdcard/android/layout_tests/editing/style/remove-underline.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-007.html
-/sdcard/android/layout_tests/editing/style/style-boundary-004.html
-/sdcard/android/layout_tests/editing/style/5017613-1.html
-/sdcard/android/layout_tests/editing/style/block-style-002.html
-/sdcard/android/layout_tests/editing/style/smoosh-styles-002.html
-/sdcard/android/layout_tests/editing/style/block-style-006.html
-/sdcard/android/layout_tests/editing/style/fontsize-1.html
-/sdcard/android/layout_tests/editing/style/5046875-2.html
-/sdcard/android/layout_tests/editing/style/typing-style-003.html
-/sdcard/android/layout_tests/editing/style/relative-font-size-change-002.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-012.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-004.html
-/sdcard/android/layout_tests/editing/style/designmode.html
-/sdcard/android/layout_tests/editing/style/block-styles-007.html
-/sdcard/android/layout_tests/editing/style/style-boundary-001.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-008.html
-/sdcard/android/layout_tests/editing/style/style-boundary-005.html
-/sdcard/android/layout_tests/editing/style/underline.html
-/sdcard/android/layout_tests/editing/style/5017613-2.html
-/sdcard/android/layout_tests/editing/style/block-style-003.html
-/sdcard/android/layout_tests/editing/style/smoosh-styles-003.html
-/sdcard/android/layout_tests/editing/style/remove-underline-after-paragraph-in-bold.html
-/sdcard/android/layout_tests/editing/style/highlight.html
-/sdcard/android/layout_tests/editing/style/table-selection.html
-/sdcard/android/layout_tests/editing/style/relative-font-size-change-003.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-001.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-delete-001.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-type-after.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-delete-002.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-type-before.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-delete-003.html
-/sdcard/android/layout_tests/editing/unsupported-content/list-delete-001.html
-/sdcard/android/layout_tests/editing/unsupported-content/list-type-after.html
-/sdcard/android/layout_tests/editing/unsupported-content/list-type-before.html
-/sdcard/android/layout_tests/editing/unsupported-content/list-delete-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-011.html
-/sdcard/android/layout_tests/editing/inserting/4960120-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-023.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-04.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-007.html
-/sdcard/android/layout_tests/editing/inserting/5058163-2.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-019.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-003.html
-/sdcard/android/layout_tests/editing/inserting/5607069-2.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-003.html
-/sdcard/android/layout_tests/editing/inserting/4875189-1.html
-/sdcard/android/layout_tests/editing/inserting/typing-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-3907422-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-020.html
-/sdcard/android/layout_tests/editing/inserting/before-after-input-element.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-004.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-01.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-016.html
-/sdcard/android/layout_tests/editing/inserting/4959067.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-008.html
-/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-001.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-02.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-013.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-025.html
-/sdcard/android/layout_tests/editing/inserting/insert-3654864-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-009.html
-/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-002.html
-/sdcard/android/layout_tests/editing/inserting/editable-html-element.html
-/sdcard/android/layout_tests/editing/inserting/5418891.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-005.html
-/sdcard/android/layout_tests/editing/inserting/insert-tab-002.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-005.html
-/sdcard/android/layout_tests/editing/inserting/line-break.html
-/sdcard/android/layout_tests/editing/inserting/5549929-3.html
-/sdcard/android/layout_tests/editing/inserting/typing-tab-designmode-forms.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-010.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-022.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-03.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-006.html
-/sdcard/android/layout_tests/editing/inserting/5058163-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-018.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-in-table-2.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-002.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-002.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-002.html
-/sdcard/android/layout_tests/editing/inserting/typing-002.html
-/sdcard/android/layout_tests/editing/inserting/insert-3800346-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-003.html
-/sdcard/android/layout_tests/editing/inserting/typing-around-image-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-text-with-newlines.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-015.html
-/sdcard/android/layout_tests/editing/inserting/insert-at-end-02.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-027.html
-/sdcard/android/layout_tests/editing/inserting/insert-3659587-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-007.html
-/sdcard/android/layout_tests/editing/inserting/insert-tab-004.html
-/sdcard/android/layout_tests/editing/inserting/editable-inline-element.html
-/sdcard/android/layout_tests/editing/inserting/insert-3851164-fix.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-01.html
-/sdcard/android/layout_tests/editing/inserting/5156401-2.html
-/sdcard/android/layout_tests/editing/inserting/4960120-2.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-012.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-024.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-008.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-05.html
-/sdcard/android/layout_tests/editing/inserting/multiple-lines-selected.html
-/sdcard/android/layout_tests/editing/inserting/insert-3778059-fix.html
-/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-001.html
-/sdcard/android/layout_tests/editing/inserting/5607069-3.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-004.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-004.html
-/sdcard/android/layout_tests/editing/inserting/insert-tab-001.html
-/sdcard/android/layout_tests/editing/inserting/4875189-2.html
-/sdcard/android/layout_tests/editing/inserting/5549929-2.html
-/sdcard/android/layout_tests/editing/inserting/editing-empty-divs.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-021.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-005.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-02.html
-/sdcard/android/layout_tests/editing/inserting/insert-3786362-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-017.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-in-table-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-space-in-empty-doc.html
-/sdcard/android/layout_tests/editing/inserting/insert-after-delete-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-001.html
-/sdcard/android/layout_tests/editing/inserting/typing-001.html
-/sdcard/android/layout_tests/editing/inserting/4278698.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-009.html
-/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-002.html
-/sdcard/android/layout_tests/editing/inserting/5002441.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-002.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-03.html
-/sdcard/android/layout_tests/editing/inserting/12882.html
-/sdcard/android/layout_tests/editing/inserting/insert-3775316-fix.html
-/sdcard/android/layout_tests/editing/inserting/edited-whitespace-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-014.html
-/sdcard/android/layout_tests/editing/inserting/insert-at-end-01.html
-/sdcard/android/layout_tests/editing/inserting/redo.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-026.html
-/sdcard/android/layout_tests/editing/inserting/4840662.html
-/sdcard/android/layout_tests/editing/inserting/typing-around-br-001.html
-/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-006.html
-/sdcard/android/layout_tests/editing/inserting/insert-tab-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-006.html
-/sdcard/android/layout_tests/editing/execCommand/5142012-1.html
-/sdcard/android/layout_tests/editing/execCommand/hilitecolor.html
-/sdcard/android/layout_tests/editing/execCommand/5120591.html
-/sdcard/android/layout_tests/editing/execCommand/format-block-with-braces.html
-/sdcard/android/layout_tests/editing/execCommand/4920742-1.html
-/sdcard/android/layout_tests/editing/execCommand/4924441.html
-/sdcard/android/layout_tests/editing/execCommand/create-list-with-hr.html
-/sdcard/android/layout_tests/editing/execCommand/5207369.html
-/sdcard/android/layout_tests/editing/execCommand/format-block-with-trailing-br.html
-/sdcard/android/layout_tests/editing/execCommand/4916583.html
-/sdcard/android/layout_tests/editing/execCommand/remove-formatting-2.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-selection.html
-/sdcard/android/layout_tests/editing/execCommand/strikethroughSelection.html
-/sdcard/android/layout_tests/editing/execCommand/insert-list-with-id.html
-/sdcard/android/layout_tests/editing/execCommand/5432254-1.html
-/sdcard/android/layout_tests/editing/execCommand/5482023.html
-/sdcard/android/layout_tests/editing/execCommand/5062376.html
-/sdcard/android/layout_tests/editing/execCommand/4786404-1.html
-/sdcard/android/layout_tests/editing/execCommand/remove-formatting.html
-/sdcard/android/layout_tests/editing/execCommand/findString.html
-/sdcard/android/layout_tests/editing/execCommand/5142012-3.html
-/sdcard/android/layout_tests/editing/execCommand/5700414-1.html
-/sdcard/android/layout_tests/editing/execCommand/italicizeByCharacter.html
-/sdcard/android/layout_tests/editing/execCommand/switch-list-type.html
-/sdcard/android/layout_tests/editing/execCommand/create-list-from-range-selection.html
-/sdcard/android/layout_tests/editing/execCommand/5190926.html
-/sdcard/android/layout_tests/editing/execCommand/remove-list-1.html
-/sdcard/android/layout_tests/editing/execCommand/insertHorizontalRule.html
-/sdcard/android/layout_tests/editing/execCommand/paste-1.html
-/sdcard/android/layout_tests/editing/execCommand/nsresponder-outdent.html
-/sdcard/android/layout_tests/editing/execCommand/5080333-2.html
-/sdcard/android/layout_tests/editing/execCommand/5119244.html
-/sdcard/android/layout_tests/editing/execCommand/5049671.html
-/sdcard/android/layout_tests/editing/execCommand/4920488.html
-/sdcard/android/layout_tests/editing/execCommand/5164796.html
-/sdcard/android/layout_tests/editing/execCommand/nsresponder-indent.html
-/sdcard/android/layout_tests/editing/execCommand/indent-list-item.html
-/sdcard/android/layout_tests/editing/execCommand/insert-list-empty-div.html
-/sdcard/android/layout_tests/editing/execCommand/5138441.html
-/sdcard/android/layout_tests/editing/execCommand/4916402.html
-/sdcard/android/layout_tests/editing/execCommand/5481523.html
-/sdcard/android/layout_tests/editing/execCommand/print.html
-/sdcard/android/layout_tests/editing/execCommand/4641880-2.html
-/sdcard/android/layout_tests/editing/execCommand/4580583-2.html
-/sdcard/android/layout_tests/editing/execCommand/remove-list-item-1.html
-/sdcard/android/layout_tests/editing/execCommand/5569741.html
-/sdcard/android/layout_tests/editing/execCommand/findString-2.html
-/sdcard/android/layout_tests/editing/execCommand/modifyForeColorByCharacter.html
-/sdcard/android/layout_tests/editing/execCommand/5142012-2.html
-/sdcard/android/layout_tests/editing/execCommand/find-after-replace.html
-/sdcard/android/layout_tests/editing/execCommand/format-block.html
-/sdcard/android/layout_tests/editing/execCommand/5080333-1.html
-/sdcard/android/layout_tests/editing/execCommand/remove-list-from-range-selection.html
-/sdcard/android/layout_tests/editing/execCommand/remove-list-items.html
-/sdcard/android/layout_tests/editing/execCommand/5432254-2.html
-/sdcard/android/layout_tests/editing/execCommand/5144139-1.html
-/sdcard/android/layout_tests/editing/execCommand/5136770.html
-/sdcard/android/layout_tests/editing/execCommand/4916541.html
-/sdcard/android/layout_tests/editing/execCommand/4786404-2.html
-/sdcard/android/layout_tests/editing/execCommand/insertImage.html
-/sdcard/android/layout_tests/editing/execCommand/insert-list-and-stitch.html
-/sdcard/android/layout_tests/editing/execCommand/5573879.html
-/sdcard/android/layout_tests/editing/execCommand/5210032.html
-/sdcard/android/layout_tests/editing/execCommand/5700414-2.html
-/sdcard/android/layout_tests/editing/execCommand/boldSelection.html
-/sdcard/android/layout_tests/editing/execCommand/insertHTML.html
-/sdcard/android/layout_tests/editing/execCommand/4641880-1.html
-/sdcard/android/layout_tests/editing/execCommand/4747450.html
-/sdcard/android/layout_tests/editing/execCommand/4580583-1.html
-/sdcard/android/layout_tests/editing/execCommand/format-block-from-range-selection.html
-/sdcard/android/layout_tests/editing/execCommand/indent-empty-root.html
-/sdcard/android/layout_tests/editing/execCommand/indent-selection.html
-/sdcard/android/layout_tests/editing/execCommand/selectAll.html
-/sdcard/android/layout_tests/editing/execCommand/paste-2.html
-/sdcard/android/layout_tests/editing/pasteboard/subframe-dragndrop-1.html
-/sdcard/android/layout_tests/editing/pasteboard/innerText-inline-table.html
-/sdcard/android/layout_tests/editing/pasteboard/5156401-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-list-001.html
-/sdcard/android/layout_tests/editing/pasteboard/5032095.html
-/sdcard/android/layout_tests/editing/pasteboard/4242293-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-004.html
-/sdcard/android/layout_tests/editing/pasteboard/5247341.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-4035648-fix.html
-/sdcard/android/layout_tests/editing/pasteboard/4700297.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-003.html
-/sdcard/android/layout_tests/editing/pasteboard/drop-link.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-3.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/4944770-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-015.html
-/sdcard/android/layout_tests/editing/pasteboard/5075944.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-match-style-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-4039777-fix.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-3.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-007.html
-/sdcard/android/layout_tests/editing/pasteboard/5483567.html
-/sdcard/android/layout_tests/editing/pasteboard/7955.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/testcase-9507.html
-/sdcard/android/layout_tests/editing/pasteboard/input-field-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-001.html
-/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-2.html
-/sdcard/android/layout_tests/editing/pasteboard/block-wrappers-necessary.html
-/sdcard/android/layout_tests/editing/pasteboard/4861080.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-009.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete.html
-/sdcard/android/layout_tests/editing/pasteboard/5478250.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-012.html
-/sdcard/android/layout_tests/editing/pasteboard/prevent-block-nesting-01.html
-/sdcard/android/layout_tests/editing/pasteboard/8145-2.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-borders.html
-/sdcard/android/layout_tests/editing/pasteboard/5027857.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-004.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-start-list.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-008.html
-/sdcard/android/layout_tests/editing/pasteboard/4806874.html
-/sdcard/android/layout_tests/editing/pasteboard/emacs-ctrl-a-k-y.html
-/sdcard/android/layout_tests/editing/pasteboard/bad-placeholder.html
-/sdcard/android/layout_tests/editing/pasteboard/displaced-placeholder.html
-/sdcard/android/layout_tests/editing/pasteboard/5387578.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-010.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-006.html
-/sdcard/android/layout_tests/editing/pasteboard/5601583-1.html
-/sdcard/android/layout_tests/editing/pasteboard/4947130.html
-/sdcard/android/layout_tests/editing/pasteboard/pasting-tabs.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete-2.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-001.html
-/sdcard/android/layout_tests/editing/pasteboard/4076267-2.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-table-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-005.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-017.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-5.html
-/sdcard/android/layout_tests/editing/pasteboard/drop-text-without-selection.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-003.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-003.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-drop-modifies-page.html
-/sdcard/android/layout_tests/editing/pasteboard/emacs-ctrl-k-y-001.html
-/sdcard/android/layout_tests/editing/pasteboard/5071074.html
-/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-4.html
-/sdcard/android/layout_tests/editing/pasteboard/styled-element-markup.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-4038267-fix.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-002.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-2.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-pre-002.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-014.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-drop-dead-frame.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-2.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-006.html
-/sdcard/android/layout_tests/editing/pasteboard/5368833.html
-/sdcard/android/layout_tests/editing/pasteboard/select-element-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-3.html
-/sdcard/android/layout_tests/editing/pasteboard/4641033.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-image-to-contenteditable-in-iframe.html
-/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-1.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-paste-bidi.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-008.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-011.html
-/sdcard/android/layout_tests/editing/pasteboard/8145-1.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-003.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-table-003.html
-/sdcard/android/layout_tests/editing/pasteboard/5075944-3.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-007.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-TIFF.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-019.html
-/sdcard/android/layout_tests/editing/pasteboard/undoable-fragment-removes.html
-/sdcard/android/layout_tests/editing/pasteboard/nested-blocks-with-text-field.html
-/sdcard/android/layout_tests/editing/pasteboard/4989774.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-unrendered-select.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-005.html
-/sdcard/android/layout_tests/editing/pasteboard/emacs-cntl-y-001.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete-1.html
-/sdcard/android/layout_tests/editing/pasteboard/unrendered-br.html
-/sdcard/android/layout_tests/editing/pasteboard/4631972.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-004.html
-/sdcard/android/layout_tests/editing/pasteboard/quirks-mode-br-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-4.html
-/sdcard/android/layout_tests/editing/pasteboard/4944770-2.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-table-cells.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-016.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-match-style-002.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-4.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-selected-image-to-contenteditable.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-008.html
-/sdcard/android/layout_tests/editing/pasteboard/3976872.html
-/sdcard/android/layout_tests/editing/pasteboard/pasting-object.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-list.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-standalone-image.html
-/sdcard/android/layout_tests/editing/pasteboard/displaced-generic-placeholder.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-002.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-002.html
-/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-3.html
-/sdcard/android/layout_tests/editing/pasteboard/5071074-2.html
-/sdcard/android/layout_tests/editing/pasteboard/display-block-on-spans.html
-/sdcard/android/layout_tests/editing/pasteboard/4242293.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-pre-001.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-start-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-1.html
-/sdcard/android/layout_tests/editing/pasteboard/8145-3.html
-/sdcard/android/layout_tests/editing/pasteboard/5006779.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-005.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-009.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-2.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-table.html
-/sdcard/android/layout_tests/editing/pasteboard/5065605.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-007.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-010.html
-/sdcard/android/layout_tests/editing/pasteboard/5028447.html
-/sdcard/android/layout_tests/editing/pasteboard/nested-blocks-with-text-area.html
-/sdcard/android/layout_tests/editing/pasteboard/4076267-3.html
-/sdcard/android/layout_tests/editing/pasteboard/4076267.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-002.html
-/sdcard/android/layout_tests/editing/pasteboard/5075944-2.html
-/sdcard/android/layout_tests/editing/pasteboard/5134759.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-006.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-018.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-RTFD.html
-/sdcard/android/layout_tests/editing/pasteboard/cut-text-001.html
-/sdcard/android/layout_tests/editing/selection/image-before-linebreak.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-9.html
-/sdcard/android/layout_tests/editing/selection/move-between-blocks-no-001.html
-/sdcard/android/layout_tests/editing/selection/fake-drag.html
-/sdcard/android/layout_tests/editing/selection/wrapped-line-caret-2.html
-/sdcard/android/layout_tests/editing/selection/5131716-3.html
-/sdcard/android/layout_tests/editing/selection/5081257-2.html
-/sdcard/android/layout_tests/editing/selection/3690703-2.html
-/sdcard/android/layout_tests/editing/selection/unrendered-002.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-005.html
-/sdcard/android/layout_tests/editing/selection/5354455-1.html
-/sdcard/android/layout_tests/editing/selection/caret-rtl-2.html
-/sdcard/android/layout_tests/editing/selection/paragraph-granularity.html
-/sdcard/android/layout_tests/editing/selection/expanding-selections2.html
-/sdcard/android/layout_tests/editing/selection/clear-selection.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-6.html
-/sdcard/android/layout_tests/editing/selection/display-table-text.html
-/sdcard/android/layout_tests/editing/selection/13804.html
-/sdcard/android/layout_tests/editing/selection/drag-in-iframe.html
-/sdcard/android/layout_tests/editing/selection/table-caret-2.html
-/sdcard/android/layout_tests/editing/selection/expanding-selections.html
-/sdcard/android/layout_tests/editing/selection/unrendered-space.html
-/sdcard/android/layout_tests/editing/selection/node-removal-1.html
-/sdcard/android/layout_tests/editing/selection/5240265.html
-/sdcard/android/layout_tests/editing/selection/select-all-005.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-002.html
-/sdcard/android/layout_tests/editing/selection/4932260-2.html
-/sdcard/android/layout_tests/editing/selection/5076323-3.html
-/sdcard/android/layout_tests/editing/selection/select-element-paragraph-boundary.html
-/sdcard/android/layout_tests/editing/selection/line-wrap-1.html
-/sdcard/android/layout_tests/editing/selection/replace-selection-1.html
-/sdcard/android/layout_tests/editing/selection/caret-rtl.html
-/sdcard/android/layout_tests/editing/selection/5109817.html
-/sdcard/android/layout_tests/editing/selection/extend-by-sentence-001.html
-/sdcard/android/layout_tests/editing/selection/3690719.html
-/sdcard/android/layout_tests/editing/selection/5136696.html
-/sdcard/android/layout_tests/editing/selection/editable-non-editable-crash.html
-/sdcard/android/layout_tests/editing/selection/4397952.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-3.html
-/sdcard/android/layout_tests/editing/selection/caret-and-focus-ring.html
-/sdcard/android/layout_tests/editing/selection/4895428-4.html
-/sdcard/android/layout_tests/editing/selection/replaced-boundaries-3.html
-/sdcard/android/layout_tests/editing/selection/4947387.html
-/sdcard/android/layout_tests/editing/selection/move-by-sentence-linebreak.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-005.html
-/sdcard/android/layout_tests/editing/selection/select-from-textfield-outwards.html
-/sdcard/android/layout_tests/editing/selection/leave-requested-block.html
-/sdcard/android/layout_tests/editing/selection/select-all-002.html
-/sdcard/android/layout_tests/editing/selection/end-of-document.html
-/sdcard/android/layout_tests/editing/selection/selectNode.html
-/sdcard/android/layout_tests/editing/selection/editable-links.html
-/sdcard/android/layout_tests/editing/selection/unrendered-004.html
-/sdcard/android/layout_tests/editing/selection/7152-2.html
-/sdcard/android/layout_tests/editing/selection/5195166-1.html
-/sdcard/android/layout_tests/editing/selection/editable-html-element.html
-/sdcard/android/layout_tests/editing/selection/4895428-1.html
-/sdcard/android/layout_tests/editing/selection/4866671.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-002.html
-/sdcard/android/layout_tests/editing/selection/extend-by-word-002.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-8.html
-/sdcard/android/layout_tests/editing/selection/wrapped-line-caret-1.html
-/sdcard/android/layout_tests/editing/selection/selection-actions.html
-/sdcard/android/layout_tests/editing/selection/14971.html
-/sdcard/android/layout_tests/editing/selection/5131716-2.html
-/sdcard/android/layout_tests/editing/selection/4402375.html
-/sdcard/android/layout_tests/editing/selection/unrendered-001.html
-/sdcard/android/layout_tests/editing/selection/move-3875641-fix.html
-/sdcard/android/layout_tests/editing/selection/5081257-1.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-004.html
-/sdcard/android/layout_tests/editing/selection/5099303.html
-/sdcard/android/layout_tests/editing/selection/contenteditable-click-inside.html
-/sdcard/android/layout_tests/editing/selection/move-by-line-002.html
-/sdcard/android/layout_tests/editing/selection/addRange.html
-/sdcard/android/layout_tests/editing/selection/select-missing-image.html
-/sdcard/android/layout_tests/editing/selection/selection-3748164-fix.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-5.html
-/sdcard/android/layout_tests/editing/selection/4983858.html
-/sdcard/android/layout_tests/editing/selection/move-by-sentence-001.html
-/sdcard/android/layout_tests/editing/selection/table-caret-1.html
-/sdcard/android/layout_tests/editing/selection/5007143.html
-/sdcard/android/layout_tests/editing/selection/fake-doubleclick.html
-/sdcard/android/layout_tests/editing/selection/move-by-word-001.html
-/sdcard/android/layout_tests/editing/selection/select-all-004.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-001.html
-/sdcard/android/layout_tests/editing/selection/4932260-1.html
-/sdcard/android/layout_tests/editing/selection/5076323-2.html
-/sdcard/android/layout_tests/editing/selection/5234383-2.html
-/sdcard/android/layout_tests/editing/selection/5057506.html
-/sdcard/android/layout_tests/editing/selection/focus_editable_html.html
-/sdcard/android/layout_tests/editing/selection/move-3875618-fix.html
-/sdcard/android/layout_tests/editing/selection/4818145.html
-/sdcard/android/layout_tests/editing/selection/move-backwords-by-word-001.html
-/sdcard/android/layout_tests/editing/selection/inline-table.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-2.html
-/sdcard/android/layout_tests/editing/selection/4895428-3.html
-/sdcard/android/layout_tests/editing/selection/replaced-boundaries-2.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-004.html
-/sdcard/android/layout_tests/editing/selection/caret-before-select.html
-/sdcard/android/layout_tests/editing/selection/4889598.html
-/sdcard/android/layout_tests/editing/selection/select-all-001.html
-/sdcard/android/layout_tests/editing/selection/5131716-4.html
-/sdcard/android/layout_tests/editing/selection/3690703.html
-/sdcard/android/layout_tests/editing/selection/5333725.html
-/sdcard/android/layout_tests/editing/selection/unrendered-003.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-006.html
-/sdcard/android/layout_tests/editing/selection/7152-1.html
-/sdcard/android/layout_tests/editing/selection/5213963.html
-/sdcard/android/layout_tests/editing/selection/5354455-2.html
-/sdcard/android/layout_tests/editing/selection/selection-background.html
-/sdcard/android/layout_tests/editing/selection/iframe.html
-/sdcard/android/layout_tests/editing/selection/extend-by-word-001.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-001.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-7.html
-/sdcard/android/layout_tests/editing/selection/doubleclick-crash.html
-/sdcard/android/layout_tests/editing/selection/table-caret-3.html
-/sdcard/android/layout_tests/editing/selection/5131716-1.html
-/sdcard/android/layout_tests/editing/selection/select-all-iframe.html
-/sdcard/android/layout_tests/editing/selection/node-removal-2.html
-/sdcard/android/layout_tests/editing/selection/drag-select-1.html
-/sdcard/android/layout_tests/editing/selection/select-all-006.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-003.html
-/sdcard/android/layout_tests/editing/selection/4932260-3.html
-/sdcard/android/layout_tests/editing/selection/4960116.html
-/sdcard/android/layout_tests/editing/selection/after-line-wrap.html
-/sdcard/android/layout_tests/editing/selection/line-wrap-2.html
-/sdcard/android/layout_tests/editing/selection/drag-to-contenteditable-iframe.html
-/sdcard/android/layout_tests/editing/selection/move-by-line-001.html
-/sdcard/android/layout_tests/editing/selection/selectNodeContents.html
-/sdcard/android/layout_tests/editing/selection/move-between-blocks-yes-001.html
-/sdcard/android/layout_tests/editing/selection/6476.html
-/sdcard/android/layout_tests/editing/selection/contains-boundaries.html
-/sdcard/android/layout_tests/editing/selection/click-start-of-line.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-4.html
-/sdcard/android/layout_tests/editing/selection/focus-body.html
-/sdcard/android/layout_tests/editing/selection/triple-click-in-pre.html
-/sdcard/android/layout_tests/editing/selection/move-past-trailing-space.html
-/sdcard/android/layout_tests/editing/selection/inline-closest-leaf-child.html
-/sdcard/android/layout_tests/editing/selection/5007143-2.html
-/sdcard/android/layout_tests/editing/selection/designmode-no-caret.html
-/sdcard/android/layout_tests/editing/selection/select-all-003.html
-/sdcard/android/layout_tests/editing/selection/5076323-1.html
-/sdcard/android/layout_tests/editing/selection/5234383-1.html
-/sdcard/android/layout_tests/editing/selection/5057506-2.html
-/sdcard/android/layout_tests/editing/selection/5232159.html
-/sdcard/android/layout_tests/editing/selection/4975120.html
-/sdcard/android/layout_tests/editing/selection/4960137.html
-/sdcard/android/layout_tests/editing/selection/unrendered-005.html
-/sdcard/android/layout_tests/editing/selection/5195166-2.html
-/sdcard/android/layout_tests/editing/selection/contenteditable-click-outside.html
-/sdcard/android/layout_tests/editing/selection/previous-line-position.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-1.html
-/sdcard/android/layout_tests/editing/selection/select-box.html
-/sdcard/android/layout_tests/editing/selection/4895428-2.html
-/sdcard/android/layout_tests/editing/selection/replaced-boundaries-1.html
-/sdcard/android/layout_tests/editing/selection/4776665.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-003.html
-/sdcard/android/layout_tests/editing/selection/word-granularity.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-6.html
-/sdcard/android/layout_tests/editing/undo/undo-misspellings.html
-/sdcard/android/layout_tests/editing/undo/undo-combined-delete.html
-/sdcard/android/layout_tests/editing/undo/undo-delete-boundary.html
-/sdcard/android/layout_tests/editing/undo/undo-forward-delete-boundary.html
-/sdcard/android/layout_tests/editing/undo/4063751.html
-/sdcard/android/layout_tests/editing/undo/redo-typing-001.html
-/sdcard/android/layout_tests/editing/undo/5378473.html
-/sdcard/android/layout_tests/editing/undo/undo-combined-delete-boundary.html
-/sdcard/android/layout_tests/editing/undo/undo-delete.html
-/sdcard/android/layout_tests/editing/undo/undo-forward-delete.html
-/sdcard/android/layout_tests/editing/undo/undo-typing-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-3608462-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-image-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-3928305-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-012.html
-/sdcard/android/layout_tests/editing/deleting/5115601.html
-/sdcard/android/layout_tests/editing/deleting/deletionUI-single-instance.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-contents-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-024.html
-/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-011.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-008.html
-/sdcard/android/layout_tests/editing/deleting/delete-listitem-001.html
-/sdcard/android/layout_tests/editing/deleting/5300379.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-007.html
-/sdcard/android/layout_tests/editing/deleting/5433862-2.html
-/sdcard/android/layout_tests/editing/deleting/5026848-1.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-012.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-008.html
-/sdcard/android/layout_tests/editing/deleting/5206311-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-start-or-end.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-021.html
-/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-005.html
-/sdcard/android/layout_tests/editing/deleting/delete-select-all-003.html
-/sdcard/android/layout_tests/editing/deleting/smart-delete-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-017.html
-/sdcard/android/layout_tests/editing/deleting/table-cells.html
-/sdcard/android/layout_tests/editing/deleting/5156801-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-leading-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-3857753-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-3959464-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-016.html
-/sdcard/android/layout_tests/editing/deleting/delete-trailing-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-005.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-008.html
-/sdcard/android/layout_tests/editing/deleting/delete-tab-004.html
-/sdcard/android/layout_tests/editing/deleting/merge-whitespace-pre.html
-/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-end-ws-002.html
-/sdcard/android/layout_tests/editing/deleting/merge-unrendered-space.html
-/sdcard/android/layout_tests/editing/deleting/delete-by-word-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-image-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-selection-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-014.html
-/sdcard/android/layout_tests/editing/deleting/merge-different-styles.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-contents-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-013.html
-/sdcard/android/layout_tests/editing/deleting/merge-into-empty-block-1.html
-/sdcard/android/layout_tests/editing/deleting/5156801.html
-/sdcard/android/layout_tests/editing/deleting/delete-3865854-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-009.html
-/sdcard/android/layout_tests/editing/deleting/5026848-3.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-005.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-tab-001.html
-/sdcard/android/layout_tests/editing/deleting/4866671.html
-/sdcard/android/layout_tests/editing/deleting/whitespace-pre-1.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-table.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-011.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-023.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-010.html
-/sdcard/android/layout_tests/editing/deleting/5032066.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-007.html
-/sdcard/android/layout_tests/editing/deleting/smart-delete-004.html
-/sdcard/android/layout_tests/editing/deleting/5144139-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-019.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-006.html
-/sdcard/android/layout_tests/editing/deleting/5126166.html
-/sdcard/android/layout_tests/editing/deleting/delete-to-end-of-paragraph.html
-/sdcard/android/layout_tests/editing/deleting/5408255.html
-/sdcard/android/layout_tests/editing/deleting/5099303.html
-/sdcard/android/layout_tests/editing/deleting/4845371.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-002.html
-/sdcard/android/layout_tests/editing/deleting/4922367.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-011.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-007.html
-/sdcard/android/layout_tests/editing/deleting/move-nodes-001.html
-/sdcard/android/layout_tests/editing/deleting/merge-no-br.html
-/sdcard/android/layout_tests/editing/deleting/delete-3800834-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-4038408-fix.html
-/sdcard/android/layout_tests/editing/deleting/5206311-1.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-020.html
-/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-004.html
-/sdcard/android/layout_tests/editing/deleting/smart-delete-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-to-select-table.html
-/sdcard/android/layout_tests/editing/deleting/delete-select-all-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-contiguous-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-016.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-015.html
-/sdcard/android/layout_tests/editing/deleting/5390681.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-011.html
-/sdcard/android/layout_tests/editing/deleting/forward-delete.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-007.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-tab-003.html
-/sdcard/android/layout_tests/editing/deleting/collapse-whitespace-3587601-fix.html
-/sdcard/android/layout_tests/editing/deleting/pruning-after-merge-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-end-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-by-word-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-image-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-013.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-contents-002.html
-/sdcard/android/layout_tests/editing/deleting/paragraph-in-preserveNewline.html
-/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-002.html
-/sdcard/android/layout_tests/editing/deleting/5272440.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-012.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-009.html
-/sdcard/android/layout_tests/editing/deleting/delete-listitem-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-character-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-008.html
-/sdcard/android/layout_tests/editing/deleting/5483370.html
-/sdcard/android/layout_tests/editing/deleting/5026848-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-004.html
-/sdcard/android/layout_tests/editing/deleting/5091898.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-009.html
-/sdcard/android/layout_tests/editing/deleting/transpose-empty.html
-/sdcard/android/layout_tests/editing/deleting/merge-endOfParagraph.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-010.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-022.html
-/sdcard/android/layout_tests/editing/deleting/delete-3775172-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-mixed-editable-content-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-006.html
-/sdcard/android/layout_tests/editing/deleting/smart-delete-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-018.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-005.html
-/sdcard/android/layout_tests/editing/deleting/delete-first-list-item.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-017.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-trailing-ws-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-010.html
-/sdcard/android/layout_tests/editing/deleting/delete-and-undo.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-006.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-009.html
-/sdcard/android/layout_tests/editing/deleting/delete-hr.html
-/sdcard/android/layout_tests/editing/deleting/4875189.html
-/sdcard/android/layout_tests/editing/deleting/delete-4083333-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-3608445-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-image-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-select-all-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-015.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-014.html
-/sdcard/android/layout_tests/editing/deleting/merge-into-empty-block-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-010.html
-/sdcard/android/layout_tests/editing/deleting/5390681-2.html
-/sdcard/android/layout_tests/editing/deleting/5369009.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-006.html
-/sdcard/android/layout_tests/editing/deleting/delete-tab-002.html
-/sdcard/android/layout_tests/editing/deleting/list-item-1.html
-/sdcard/android/layout_tests/editing/deleting/5168598.html
-/sdcard/android/layout_tests/editing/deleting/delete-3608430-fix.html
-/sdcard/android/layout_tests/editing/spelling/spelling.html
-/sdcard/android/layout_tests/editing/spelling/inline_spelling_markers.html
-/sdcard/android/layout_tests/printing/media-queries-print.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-05.html
-/sdcard/android/layout_tests/fast/media/mq-grid-02.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-02.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-09.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-03.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-02.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-04.html
-/sdcard/android/layout_tests/fast/media/mq-min-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/implicit-media-all.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-01.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-03.html
-/sdcard/android/layout_tests/fast/media/viewport-media-query.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-05.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-01.html
-/sdcard/android/layout_tests/fast/media/mq-transition.html
-/sdcard/android/layout_tests/fast/media/mq-transform-04.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-05.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-02.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-02.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-03.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-06.html
-/sdcard/android/layout_tests/fast/media/mq-valueless.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-03.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-01.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-03.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-04.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-05.html
-/sdcard/android/layout_tests/fast/media/mq-animation.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-02.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-04.html
-/sdcard/android/layout_tests/fast/media/media-type-syntax-01.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-06.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-02.html
-/sdcard/android/layout_tests/fast/media/mq-transform-01.html
-/sdcard/android/layout_tests/fast/media/monochrome.html
-/sdcard/android/layout_tests/fast/media/mq-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-03.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-03.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-04.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-07.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-04.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-01.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-02.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-04.html
-/sdcard/android/layout_tests/fast/media/mq-max-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-01.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-03.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-05.html
-/sdcard/android/layout_tests/fast/media/media-type-syntax-02.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-03.html
-/sdcard/android/layout_tests/fast/media/mq-transform-02.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-01.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-04.html
-/sdcard/android/layout_tests/fast/media/mq-grid-01.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-01.html
-/sdcard/android/layout_tests/fast/media/mq-min-constraint.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-08.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-05.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-02.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-01.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-03.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-forward-syntax.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-02.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-04.html
-/sdcard/android/layout_tests/fast/media/mq-transform-03.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-04.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-01.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-02.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-radio.html
-/sdcard/android/layout_tests/fast/replaced/object-align-hspace-vspace.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-menulist.html
-/sdcard/android/layout_tests/fast/replaced/selection-rect.html
-/sdcard/android/layout_tests/fast/replaced/image-sizing.html
-/sdcard/android/layout_tests/fast/replaced/minheight-pxs.html
-/sdcard/android/layout_tests/fast/replaced/maxheight-pxs.html
-/sdcard/android/layout_tests/fast/replaced/inline-box-wrapper-handover.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-searchfield.html
-/sdcard/android/layout_tests/fast/replaced/selection-rect-transform.html
-/sdcard/android/layout_tests/fast/replaced/pdf-as-image.html
-/sdcard/android/layout_tests/fast/replaced/replaced-breaking-mixture.html
-/sdcard/android/layout_tests/fast/replaced/minwidth-pxs.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-textarea.html
-/sdcard/android/layout_tests/fast/replaced/maxwidth-pxs.html
-/sdcard/android/layout_tests/fast/replaced/max-width-percent.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-percentage-height.html
-/sdcard/android/layout_tests/fast/replaced/002.html
-/sdcard/android/layout_tests/fast/replaced/004.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-checkbox.html
-/sdcard/android/layout_tests/fast/replaced/applet-disabled-positioned.html
-/sdcard/android/layout_tests/fast/replaced/006.html
-/sdcard/android/layout_tests/fast/replaced/008.html
-/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block-widget.html
-/sdcard/android/layout_tests/fast/replaced/minheight-percent.html
-/sdcard/android/layout_tests/fast/replaced/maxheight-percent.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-with-auto-width-and-left-and-right.html
-/sdcard/android/layout_tests/fast/replaced/minwidth-percent.html
-/sdcard/android/layout_tests/fast/replaced/maxwidth-percent.html
-/sdcard/android/layout_tests/fast/replaced/applet-rendering-java-disabled.html
-/sdcard/android/layout_tests/fast/replaced/selection-rect-in-table-cell.html
-/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block.html
-/sdcard/android/layout_tests/fast/replaced/three-selects-break.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-button.html
-/sdcard/android/layout_tests/fast/replaced/image-tag.html
-/sdcard/android/layout_tests/fast/replaced/image-onload.html
-/sdcard/android/layout_tests/fast/replaced/image-resize-width.html
-/sdcard/android/layout_tests/fast/replaced/absolute-image-sizing.html
-/sdcard/android/layout_tests/fast/replaced/replaced-breaking.html
-/sdcard/android/layout_tests/fast/replaced/001.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-image.html
-/sdcard/android/layout_tests/fast/replaced/image-solid-color-with-alpha.html
-/sdcard/android/layout_tests/fast/replaced/003.html
-/sdcard/android/layout_tests/fast/replaced/replaced-child-of-absolute-with-auto-height.html
-/sdcard/android/layout_tests/fast/replaced/005.html
-/sdcard/android/layout_tests/fast/replaced/007.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-with-auto-height-and-top-and-bottom.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-textfield.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-percentage-width.html
-/sdcard/android/layout_tests/fast/dynamic/positioned-movement-with-positioned-children.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-table-cell-height.html
-/sdcard/android/layout_tests/fast/dynamic/move-node-with-selection.html
-/sdcard/android/layout_tests/fast/dynamic/create-renderer-for-whitespace-only-text.html
-/sdcard/android/layout_tests/fast/dynamic/outerHTML-doc.html
-/sdcard/android/layout_tests/fast/dynamic/floating-to-positioned-2.html
-/sdcard/android/layout_tests/fast/dynamic/012.html
-/sdcard/android/layout_tests/fast/dynamic/004.html
-/sdcard/android/layout_tests/fast/dynamic/008.html
-/sdcard/android/layout_tests/fast/dynamic/float-no-longer-overhanging.html
-/sdcard/android/layout_tests/fast/dynamic/float-withdrawal-2.html
-/sdcard/android/layout_tests/fast/dynamic/float-in-trailing-whitespace-after-last-line-break.html
-/sdcard/android/layout_tests/fast/dynamic/selection-highlight-adjust.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-no-common-root-static-y.html
-/sdcard/android/layout_tests/fast/dynamic/genContentDestroyChildren.html
-/sdcard/android/layout_tests/fast/dynamic/001.html
-/sdcard/android/layout_tests/fast/dynamic/link-href-change.html
-/sdcard/android/layout_tests/fast/dynamic/013.html
-/sdcard/android/layout_tests/fast/dynamic/005.html
-/sdcard/android/layout_tests/fast/dynamic/009.html
-/sdcard/android/layout_tests/fast/dynamic/float-withdrawal.html
-/sdcard/android/layout_tests/fast/dynamic/anonymous-block-layer-lost.html
-/sdcard/android/layout_tests/fast/dynamic/layer-hit-test-crash.html
-/sdcard/android/layout_tests/fast/dynamic/view-overflow.html
-/sdcard/android/layout_tests/fast/dynamic/010.html
-/sdcard/android/layout_tests/fast/dynamic/002.html
-/sdcard/android/layout_tests/fast/dynamic/014.html
-/sdcard/android/layout_tests/fast/dynamic/006.html
-/sdcard/android/layout_tests/fast/dynamic/flash-replacement-test.html
-/sdcard/android/layout_tests/fast/dynamic/insertAdjacentElement.html
-/sdcard/android/layout_tests/fast/dynamic/insert-before-table-part-in-continuation.html
-/sdcard/android/layout_tests/fast/dynamic/staticY.html
-/sdcard/android/layout_tests/fast/dynamic/anonymous-block-orphaned-lines.html
-/sdcard/android/layout_tests/fast/dynamic/noninlinebadness.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-parent-static-y.html
-/sdcard/android/layout_tests/fast/dynamic/outerHTML-img.html
-/sdcard/android/layout_tests/fast/dynamic/staticY-marking-parents-regression.html
-/sdcard/android/layout_tests/fast/dynamic/floating-to-positioned.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-boundary-percent-height.html
-/sdcard/android/layout_tests/fast/dynamic/011.html
-/sdcard/android/layout_tests/fast/dynamic/containing-block-change.html
-/sdcard/android/layout_tests/fast/dynamic/015.html
-/sdcard/android/layout_tests/fast/dynamic/007.html
-/sdcard/android/layout_tests/fast/text/firstline/001.html
-/sdcard/android/layout_tests/fast/text/firstline/002.html
-/sdcard/android/layout_tests/fast/text/firstline/003.html
-/sdcard/android/layout_tests/fast/text/international/wrap-CJK-001.html
-/sdcard/android/layout_tests/fast/text/international/bidi-listbox-atsui.html
-/sdcard/android/layout_tests/fast/text/international/hindi-spacing.html
-/sdcard/android/layout_tests/fast/text/international/thai-line-breaks.html
-/sdcard/android/layout_tests/fast/text/international/bidi-neutral-run.html
-/sdcard/android/layout_tests/fast/text/international/bidi-L2-run-reordering.html
-/sdcard/android/layout_tests/fast/text/international/bidi-override.html
-/sdcard/android/layout_tests/fast/text/international/bidi-innertext.html
-/sdcard/android/layout_tests/fast/text/international/bidi-european-terminators.html
-/sdcard/android/layout_tests/fast/text/international/bidi-listbox.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-formatting-characters.html
-/sdcard/android/layout_tests/fast/text/international/bidi-AN-after-L.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-CSS.html
-/sdcard/android/layout_tests/fast/text/international/bidi-control-chars-treated-as-ZWS.html
-/sdcard/android/layout_tests/fast/text/international/rtl-caret.html
-/sdcard/android/layout_tests/fast/text/international/bidi-neutral-directionality-paragraph-start.html
-/sdcard/android/layout_tests/fast/text/international/bidi-AN-after-empty-run.html
-/sdcard/android/layout_tests/fast/text/international/001.html
-/sdcard/android/layout_tests/fast/text/international/002.html
-/sdcard/android/layout_tests/fast/text/international/bidi-ignored-for-first-child-inline.html
-/sdcard/android/layout_tests/fast/text/international/bidi-explicit-embedding.html
-/sdcard/android/layout_tests/fast/text/international/003.html
-/sdcard/android/layout_tests/fast/text/international/rtl-white-space-pre-wrap.html
-/sdcard/android/layout_tests/fast/text/international/bidi-layout-across-linebreak.html
-/sdcard/android/layout_tests/fast/text/international/bidi-CS-after-AN.html
-/sdcard/android/layout_tests/fast/text/international/bidi-menulist.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-HTML.html
-/sdcard/android/layout_tests/fast/text/international/complex-character-based-fallback.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-overflow-selection.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-newline-box-test.html
-/sdcard/android/layout_tests/fast/text/whitespace/span-in-word-space-causes-overflow.html
-/sdcard/android/layout_tests/fast/text/whitespace/nowrap-clear-float.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-line-test.html
-/sdcard/android/layout_tests/fast/text/whitespace/010.html
-/sdcard/android/layout_tests/fast/text/whitespace/020.html
-/sdcard/android/layout_tests/fast/text/whitespace/002.html
-/sdcard/android/layout_tests/fast/text/whitespace/030.html
-/sdcard/android/layout_tests/fast/text/whitespace/012.html
-/sdcard/android/layout_tests/fast/text/whitespace/022.html
-/sdcard/android/layout_tests/fast/text/whitespace/004.html
-/sdcard/android/layout_tests/fast/text/whitespace/014.html
-/sdcard/android/layout_tests/fast/text/whitespace/024.html
-/sdcard/android/layout_tests/fast/text/whitespace/006.html
-/sdcard/android/layout_tests/fast/text/whitespace/016.html
-/sdcard/android/layout_tests/fast/text/whitespace/008.html
-/sdcard/android/layout_tests/fast/text/whitespace/026.html
-/sdcard/android/layout_tests/fast/text/whitespace/018.html
-/sdcard/android/layout_tests/fast/text/whitespace/028.html
-/sdcard/android/layout_tests/fast/text/whitespace/normal-after-nowrap-breaking.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-break-word.html
-/sdcard/android/layout_tests/fast/text/whitespace/nbsp-mode-and-linewraps.html
-/sdcard/android/layout_tests/fast/text/whitespace/001.html
-/sdcard/android/layout_tests/fast/text/whitespace/011.html
-/sdcard/android/layout_tests/fast/text/whitespace/tab-character-basics.html
-/sdcard/android/layout_tests/fast/text/whitespace/003.html
-/sdcard/android/layout_tests/fast/text/whitespace/021.html
-/sdcard/android/layout_tests/fast/text/whitespace/013.html
-/sdcard/android/layout_tests/fast/text/whitespace/005.html
-/sdcard/android/layout_tests/fast/text/whitespace/023.html
-/sdcard/android/layout_tests/fast/text/whitespace/015.html
-/sdcard/android/layout_tests/fast/text/whitespace/025.html
-/sdcard/android/layout_tests/fast/text/whitespace/007.html
-/sdcard/android/layout_tests/fast/text/whitespace/017.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-spaces-after-newline.html
-/sdcard/android/layout_tests/fast/text/whitespace/027.html
-/sdcard/android/layout_tests/fast/text/whitespace/009.html
-/sdcard/android/layout_tests/fast/text/whitespace/019.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-last-char.html
-/sdcard/android/layout_tests/fast/text/whitespace/029.html
-/sdcard/android/layout_tests/fast/text/basic/001.html
-/sdcard/android/layout_tests/fast/text/basic/002.html
-/sdcard/android/layout_tests/fast/text/basic/011.html
-/sdcard/android/layout_tests/fast/text/basic/generic-family-changes.html
-/sdcard/android/layout_tests/fast/text/basic/003.html
-/sdcard/android/layout_tests/fast/text/basic/012.html
-/sdcard/android/layout_tests/fast/text/basic/004.html
-/sdcard/android/layout_tests/fast/text/basic/013.html
-/sdcard/android/layout_tests/fast/text/basic/005.html
-/sdcard/android/layout_tests/fast/text/basic/014.html
-/sdcard/android/layout_tests/fast/text/basic/006.html
-/sdcard/android/layout_tests/fast/text/basic/015.html
-/sdcard/android/layout_tests/fast/text/basic/007.html
-/sdcard/android/layout_tests/fast/text/basic/008.html
-/sdcard/android/layout_tests/fast/text/basic/009.html
-/sdcard/android/layout_tests/fast/text/basic/generic-family-reset.html
-/sdcard/android/layout_tests/fast/text/in-rendered-text-rtl.html
-/sdcard/android/layout_tests/fast/text/selection-painted-separately.html
-/sdcard/android/layout_tests/fast/text/bidi-embedding-pop-and-push-same.html
-/sdcard/android/layout_tests/fast/text/wbr-in-pre-crash.html
-/sdcard/android/layout_tests/fast/text/atsui-spacing-features.html
-/sdcard/android/layout_tests/fast/text/textIteratorNilRenderer.html
-/sdcard/android/layout_tests/fast/text/drawBidiText.html
-/sdcard/android/layout_tests/fast/text/selection-hard-linebreak.html
-/sdcard/android/layout_tests/fast/text/word-break.html
-/sdcard/android/layout_tests/fast/text/font-initial.html
-/sdcard/android/layout_tests/fast/text/break-word.html
-/sdcard/android/layout_tests/fast/text/stroking.html
-/sdcard/android/layout_tests/fast/text/midword-break-hang.html
-/sdcard/android/layout_tests/fast/text/atsui-partial-selection.html
-/sdcard/android/layout_tests/fast/text/embed-at-end-of-pre-wrap-line.html
-/sdcard/android/layout_tests/fast/text/atsui-multiple-renderers.html
-/sdcard/android/layout_tests/fast/text/apply-start-width-after-skipped-text.html
-/sdcard/android/layout_tests/fast/text/capitalize-preserve-nbsp.html
-/sdcard/android/layout_tests/fast/text/updateNewFont.html
-/sdcard/android/layout_tests/fast/text/atsui-rtl-override-selection.html
-/sdcard/android/layout_tests/fast/text/align-center-rtl-spill.html
-/sdcard/android/layout_tests/fast/text/wbr.html
-/sdcard/android/layout_tests/fast/text/cg-vs-atsui.html
-/sdcard/android/layout_tests/fast/text/monospace-width-cache.html
-/sdcard/android/layout_tests/fast/text/soft-hyphen-2.html
-/sdcard/android/layout_tests/fast/text/justified-selection.html
-/sdcard/android/layout_tests/fast/text/atsui-pointtooffset-calls-cg.html
-/sdcard/android/layout_tests/fast/text/atsui-kerning-and-ligatures.html
-/sdcard/android/layout_tests/fast/text/wbr-pre.html
-/sdcard/android/layout_tests/fast/text/capitalize-boundaries.html
-/sdcard/android/layout_tests/fast/text/trailing-white-space.html
-/sdcard/android/layout_tests/fast/text/capitalize-empty-generated-string.html
-/sdcard/android/layout_tests/fast/text/stripNullFromText.html
-/sdcard/android/layout_tests/fast/text/letter-spacing-negative-opacity.html
-/sdcard/android/layout_tests/fast/text/atsui-small-caps-punctuation-size.html
-/sdcard/android/layout_tests/fast/text/word-break-soft-hyphen.html
-/sdcard/android/layout_tests/fast/text/fixed-pitch-control-characters.html
-/sdcard/android/layout_tests/fast/text/cg-fallback-bolding.html
-/sdcard/android/layout_tests/fast/text/line-breaks-after-white-space.html
-/sdcard/android/layout_tests/fast/text/soft-hyphen-3.html
-/sdcard/android/layout_tests/fast/text/wide-zero-width-space.html
-/sdcard/android/layout_tests/fast/text/should-use-atsui.html
-/sdcard/android/layout_tests/fast/text/justified-selection-at-edge.html
-/sdcard/android/layout_tests/fast/text/trailing-white-space-2.html
-/sdcard/android/layout_tests/fast/text/word-break-run-rounding.html
-/sdcard/android/layout_tests/fast/text/softHyphen.html
-/sdcard/android/layout_tests/fast/text/delete-hard-break-character.html
-/sdcard/android/layout_tests/fast/text/line-breaks.html
-/sdcard/android/layout_tests/fast/text/wbr-styled.html
-/sdcard/android/layout_tests/fast/text/large-text-composed-char.html
-/sdcard/android/layout_tests/fast/text/shadow-no-blur.html
-/sdcard/android/layout_tests/fast/text/reset-emptyRun.html
-/sdcard/android/layout_tests/fast/text/word-space.html
-/sdcard/android/layout_tests/fast/text/midword-break-after-breakable-char.html
-/sdcard/android/layout_tests/fast/text/stroking-decorations.html
-/sdcard/android/layout_tests/fast/encoding/utf-16-little-endian.html
-/sdcard/android/layout_tests/fast/encoding/denormalised-voiced-japanese-chars.html
-/sdcard/android/layout_tests/fast/encoding/utf-16-no-bom.xml
-/sdcard/android/layout_tests/fast/encoding/utf-16-big-endian.html
-/sdcard/android/layout_tests/fast/encoding/xmacroman-encoding-test.html
-/sdcard/android/layout_tests/fast/encoding/invalid-UTF-8.html
-/sdcard/android/layout_tests/fast/multicol/float-avoidance.html
-/sdcard/android/layout_tests/fast/multicol/negativeColumnWidth.html
-/sdcard/android/layout_tests/fast/multicol/column-rules.html
-/sdcard/android/layout_tests/fast/multicol/zeroColumnCount.html
-/sdcard/android/layout_tests/fast/multicol/columns-shorthand-parsing.html
-/sdcard/android/layout_tests/fast/multicol/float-multicol.html
-/sdcard/android/layout_tests/fast/doctypes/001.html
-/sdcard/android/layout_tests/fast/doctypes/002.html
-/sdcard/android/layout_tests/fast/doctypes/003.html
-/sdcard/android/layout_tests/fast/doctypes/004.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-group-to-inline.html
-/sdcard/android/layout_tests/fast/css-generated-content/spellingToolTip-assert.html
-/sdcard/android/layout_tests/fast/css-generated-content/no-openclose-quote.html
-/sdcard/android/layout_tests/fast/css-generated-content/before-with-first-letter.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-group-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/010.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/002.html
-/sdcard/android/layout_tests/fast/css-generated-content/012.html
-/sdcard/android/layout_tests/fast/css-generated-content/004.html
-/sdcard/android/layout_tests/fast/css-generated-content/014.html
-/sdcard/android/layout_tests/fast/css-generated-content/016.html
-/sdcard/android/layout_tests/fast/css-generated-content/008.html
-/sdcard/android/layout_tests/fast/css-generated-content/after-order.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-cell-before-content.html
-/sdcard/android/layout_tests/fast/css-generated-content/visibleContentHiddenParent.html
-/sdcard/android/layout_tests/fast/css-generated-content/inline-display-types.html
-/sdcard/android/layout_tests/fast/css-generated-content/positioned-background-hit-test-crash.html
-/sdcard/android/layout_tests/fast/css-generated-content/001.html
-/sdcard/android/layout_tests/fast/css-generated-content/011.html
-/sdcard/android/layout_tests/fast/css-generated-content/003.html
-/sdcard/android/layout_tests/fast/css-generated-content/013.html
-/sdcard/android/layout_tests/fast/css-generated-content/005.html
-/sdcard/android/layout_tests/fast/css-generated-content/hover-style-change.html
-/sdcard/android/layout_tests/fast/css-generated-content/absolute-position-inside-inline.html
-/sdcard/android/layout_tests/fast/css-generated-content/015.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/007.html
-/sdcard/android/layout_tests/fast/css-generated-content/009.html
-/sdcard/android/layout_tests/fast/css-generated-content/wbr-with-before-content.html
-/sdcard/android/layout_tests/fast/lists/decimal-leading-zero.html
-/sdcard/android/layout_tests/fast/lists/ol-display-types.html
-/sdcard/android/layout_tests/fast/lists/li-style-alpha-huge-value-crash.html
-/sdcard/android/layout_tests/fast/lists/ol-start-dynamic.html
-/sdcard/android/layout_tests/fast/lists/numeric-markers-outside-list.html
-/sdcard/android/layout_tests/fast/lists/marker-image-error.html
-/sdcard/android/layout_tests/fast/lists/marker-before-empty-inline.html
-/sdcard/android/layout_tests/fast/lists/scrolled-marker-paint.html
-/sdcard/android/layout_tests/fast/lists/li-values.html
-/sdcard/android/layout_tests/fast/lists/002.html
-/sdcard/android/layout_tests/fast/lists/dynamic-marker-crash.html
-/sdcard/android/layout_tests/fast/lists/list-item-line-height.html
-/sdcard/android/layout_tests/fast/lists/004.html
-/sdcard/android/layout_tests/fast/lists/drag-into-marker.html
-/sdcard/android/layout_tests/fast/lists/list-style-none-crash.html
-/sdcard/android/layout_tests/fast/lists/alpha-list-wrap.html
-/sdcard/android/layout_tests/fast/lists/006.html
-/sdcard/android/layout_tests/fast/lists/008.html
-/sdcard/android/layout_tests/fast/lists/inlineBoxWrapperNullCheck.html
-/sdcard/android/layout_tests/fast/lists/w3-list-styles.html
-/sdcard/android/layout_tests/fast/lists/item-not-in-list-line-wrapping.html
-/sdcard/android/layout_tests/fast/lists/olstart.html
-/sdcard/android/layout_tests/fast/lists/big-list-marker.html
-/sdcard/android/layout_tests/fast/lists/markers-in-selection.html
-/sdcard/android/layout_tests/fast/lists/list-style-type-dynamic-change.html
-/sdcard/android/layout_tests/fast/lists/001.html
-/sdcard/android/layout_tests/fast/lists/ordered-list-with-no-ol-tag.html
-/sdcard/android/layout_tests/fast/lists/003.html
-/sdcard/android/layout_tests/fast/lists/005.html
-/sdcard/android/layout_tests/fast/lists/li-br.html
-/sdcard/android/layout_tests/fast/lists/007.html
-/sdcard/android/layout_tests/fast/lists/009.html
-/sdcard/android/layout_tests/fast/transforms/transform-overflow.html
-/sdcard/android/layout_tests/fast/transforms/transforms-with-opacity.html
-/sdcard/android/layout_tests/fast/transforms/transformed-caret.html
-/sdcard/android/layout_tests/fast/transforms/matrix-01.html
-/sdcard/android/layout_tests/fast/transforms/transform-positioned-ancestor.html
-/sdcard/android/layout_tests/fast/transforms/matrix-02.html
-/sdcard/android/layout_tests/fast/transforms/skew-with-unitless-zero.html
-/sdcard/android/layout_tests/fast/transforms/overflow-with-transform.html
-/sdcard/android/layout_tests/fast/transforms/transformed-document-element.html
-/sdcard/android/layout_tests/fast/transforms/shadows.html
-/sdcard/android/layout_tests/fast/transforms/transformed-focused-text-input.html
-/sdcard/android/layout_tests/fast/transforms/diamond.html
-/sdcard/android/layout_tests/fast/transforms/identity-matrix.html
-/sdcard/android/layout_tests/fast/innerHTML/001.html
-/sdcard/android/layout_tests/fast/innerHTML/002.html
-/sdcard/android/layout_tests/fast/innerHTML/003.html
-/sdcard/android/layout_tests/fast/innerHTML/006.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble01.html
-/sdcard/android/layout_tests/fast/borders/block-mask-overlay-image.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid03.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble03.html
-/sdcard/android/layout_tests/fast/borders/border-color-inherit.html
-/sdcard/android/layout_tests/fast/borders/svg-as-border-image-2.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusInvalidColor.html
-/sdcard/android/layout_tests/fast/borders/border-image-scale-transform.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted02.html
-/sdcard/android/layout_tests/fast/borders/border-fit.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusArcs01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed03.html
-/sdcard/android/layout_tests/fast/borders/fieldsetBorderRadius.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusAllStylesAllCorners.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusGroove01.html
-/sdcard/android/layout_tests/fast/borders/border-image-omit-right-slice.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid02.html
-/sdcard/android/layout_tests/fast/borders/outline-offset-min-assert.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid04.html
-/sdcard/android/layout_tests/fast/borders/border-radius-huge-assert.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusInset01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusOutset01.html
-/sdcard/android/layout_tests/fast/borders/svg-as-border-image.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted03.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusRidge01.html
-/sdcard/android/layout_tests/fast/borders/border-image-rotate-transform.html
-/sdcard/android/layout_tests/fast/borders/inline-mask-overlay-image.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusGroove02.html
-/sdcard/android/layout_tests/fast/borders/border-image-01.html
-/sdcard/android/layout_tests/fast/selectors/175a.html
-/sdcard/android/layout_tests/fast/selectors/155c.html
-/sdcard/android/layout_tests/fast/selectors/059.html
-/sdcard/android/layout_tests/fast/selectors/066b.html
-/sdcard/android/layout_tests/fast/selectors/168.html
-/sdcard/android/layout_tests/fast/selectors/177a.html
-/sdcard/android/layout_tests/fast/selectors/087b.html
-/sdcard/android/layout_tests/fast/selectors/020.html
-/sdcard/android/layout_tests/fast/selectors/012.html
-/sdcard/android/layout_tests/fast/selectors/040.html
-/sdcard/android/layout_tests/fast/selectors/004.html
-/sdcard/android/layout_tests/fast/selectors/032.html
-/sdcard/android/layout_tests/fast/selectors/060.html
-/sdcard/android/layout_tests/fast/selectors/016.html
-/sdcard/android/layout_tests/fast/selectors/044.html
-/sdcard/android/layout_tests/fast/selectors/008.html
-/sdcard/android/layout_tests/fast/selectors/072.html
-/sdcard/android/layout_tests/fast/selectors/064.html
-/sdcard/android/layout_tests/fast/selectors/056.html
-/sdcard/android/layout_tests/fast/selectors/018b.html
-/sdcard/android/layout_tests/fast/selectors/090b.html
-/sdcard/android/layout_tests/fast/selectors/045c.html
-/sdcard/android/layout_tests/fast/selectors/170d.html
-/sdcard/android/layout_tests/fast/selectors/157.html
-/sdcard/android/layout_tests/fast/selectors/039b.html
-/sdcard/android/layout_tests/fast/selectors/156b.html
-/sdcard/android/layout_tests/fast/selectors/175b.html
-/sdcard/android/layout_tests/fast/selectors/155d.html
-/sdcard/android/layout_tests/fast/selectors/167a.html
-/sdcard/android/layout_tests/fast/selectors/169.html
-/sdcard/android/layout_tests/fast/selectors/077b.html
-/sdcard/android/layout_tests/fast/selectors/177b.html
-/sdcard/android/layout_tests/fast/selectors/169a.html
-/sdcard/android/layout_tests/fast/selectors/001.html
-/sdcard/android/layout_tests/fast/selectors/021.html
-/sdcard/android/layout_tests/fast/selectors/unqualified-hover-quirks.html
-/sdcard/android/layout_tests/fast/selectors/013.html
-/sdcard/android/layout_tests/fast/selectors/041.html
-/sdcard/android/layout_tests/fast/selectors/021b.html
-/sdcard/android/layout_tests/fast/selectors/005.html
-/sdcard/android/layout_tests/fast/selectors/061.html
-/sdcard/android/layout_tests/fast/selectors/170.html
-/sdcard/android/layout_tests/fast/selectors/017.html
-/sdcard/android/layout_tests/fast/selectors/170a.html
-/sdcard/android/layout_tests/fast/selectors/009.html
-/sdcard/android/layout_tests/fast/selectors/045.html
-/sdcard/android/layout_tests/fast/selectors/154.html
-/sdcard/android/layout_tests/fast/selectors/044b.html
-/sdcard/android/layout_tests/fast/selectors/065.html
-/sdcard/android/layout_tests/fast/selectors/155a.html
-/sdcard/android/layout_tests/fast/selectors/166.html
-/sdcard/android/layout_tests/fast/selectors/158.html
-/sdcard/android/layout_tests/fast/selectors/077.html
-/sdcard/android/layout_tests/fast/selectors/175c.html
-/sdcard/android/layout_tests/fast/selectors/089.html
-/sdcard/android/layout_tests/fast/selectors/088b.html
-/sdcard/android/layout_tests/fast/selectors/nondeterministic-combinators.html
-/sdcard/android/layout_tests/fast/selectors/unqualified-hover-strict.html
-/sdcard/android/layout_tests/fast/selectors/010.html
-/sdcard/android/layout_tests/fast/selectors/002.html
-/sdcard/android/layout_tests/fast/selectors/014.html
-/sdcard/android/layout_tests/fast/selectors/042.html
-/sdcard/android/layout_tests/fast/selectors/006.html
-/sdcard/android/layout_tests/fast/selectors/034.html
-/sdcard/android/layout_tests/fast/selectors/062.html
-/sdcard/android/layout_tests/fast/selectors/007a.html
-/sdcard/android/layout_tests/fast/selectors/054.html
-/sdcard/android/layout_tests/fast/selectors/018.html
-/sdcard/android/layout_tests/fast/selectors/046.html
-/sdcard/android/layout_tests/fast/selectors/170b.html
-/sdcard/android/layout_tests/fast/selectors/072b.html
-/sdcard/android/layout_tests/fast/selectors/044c.html
-/sdcard/android/layout_tests/fast/selectors/038.html
-/sdcard/android/layout_tests/fast/selectors/155.html
-/sdcard/android/layout_tests/fast/selectors/066.html
-/sdcard/android/layout_tests/fast/selectors/058.html
-/sdcard/android/layout_tests/fast/selectors/155b.html
-/sdcard/android/layout_tests/fast/selectors/166a.html
-/sdcard/android/layout_tests/fast/selectors/167.html
-/sdcard/android/layout_tests/fast/selectors/159.html
-/sdcard/android/layout_tests/fast/selectors/168a.html
-/sdcard/android/layout_tests/fast/selectors/078b.html
-/sdcard/android/layout_tests/fast/selectors/011.html
-/sdcard/android/layout_tests/fast/selectors/003.html
-/sdcard/android/layout_tests/fast/selectors/015.html
-/sdcard/android/layout_tests/fast/selectors/043.html
-/sdcard/android/layout_tests/fast/selectors/160.html
-/sdcard/android/layout_tests/fast/selectors/063.html
-/sdcard/android/layout_tests/fast/selectors/043b.html
-/sdcard/android/layout_tests/fast/selectors/007b.html
-/sdcard/android/layout_tests/fast/selectors/027.html
-/sdcard/android/layout_tests/fast/selectors/019.html
-/sdcard/android/layout_tests/fast/selectors/083.html
-/sdcard/android/layout_tests/fast/selectors/045b.html
-/sdcard/android/layout_tests/fast/selectors/170c.html
-/sdcard/android/layout_tests/fast/selectors/044d.html
-/sdcard/android/layout_tests/fast/selectors/039.html
-/sdcard/android/layout_tests/fast/overflow/overflow-focus-ring.html
-/sdcard/android/layout_tests/fast/overflow/overflow-x-y.html
-/sdcard/android/layout_tests/fast/overflow/overflow-text-hit-testing.html
-/sdcard/android/layout_tests/fast/overflow/unreachable-overflow-rtl-bug.html
-/sdcard/android/layout_tests/fast/overflow/overflow-auto-position-absolute.html
-/sdcard/android/layout_tests/fast/overflow/scrollRevealButton.html
-/sdcard/android/layout_tests/fast/overflow/overflow-rtl-inline-scrollbar.html
-/sdcard/android/layout_tests/fast/overflow/002.html
-/sdcard/android/layout_tests/fast/overflow/overflow-rtl.html
-/sdcard/android/layout_tests/fast/overflow/004.html
-/sdcard/android/layout_tests/fast/overflow/006.html
-/sdcard/android/layout_tests/fast/overflow/scrollbar-position-update.html
-/sdcard/android/layout_tests/fast/overflow/008.html
-/sdcard/android/layout_tests/fast/overflow/scroll-nested-positioned-layer-in-overflow.html
-/sdcard/android/layout_tests/fast/overflow/image-selection-highlight.html
-/sdcard/android/layout_tests/fast/overflow/childFocusRingClip.html
-/sdcard/android/layout_tests/fast/overflow/dynamic-hidden.html
-/sdcard/android/layout_tests/fast/overflow/position-relative.html
-/sdcard/android/layout_tests/fast/overflow/clip-rects-fixed-ancestor.html
-/sdcard/android/layout_tests/fast/overflow/overflow_hidden.html
-/sdcard/android/layout_tests/fast/overflow/infiniteRecursionGuard.html
-/sdcard/android/layout_tests/fast/overflow/float-in-relpositioned.html
-/sdcard/android/layout_tests/fast/overflow/table-overflow-float.html
-/sdcard/android/layout_tests/fast/overflow/unreachable-content-test.html
-/sdcard/android/layout_tests/fast/overflow/003.xml
-/sdcard/android/layout_tests/fast/overflow/overflow-auto-table.html
-/sdcard/android/layout_tests/fast/overflow/infiniteRecursion.html
-/sdcard/android/layout_tests/fast/overflow/001.html
-/sdcard/android/layout_tests/fast/overflow/hit-test-overflow-controls.html
-/sdcard/android/layout_tests/fast/overflow/005.html
-/sdcard/android/layout_tests/fast/overflow/007.html
-/sdcard/android/layout_tests/fast/overflow/hidden-scrollbar-resize.html
-/sdcard/android/layout_tests/fast/events/autoscroll.html
-/sdcard/android/layout_tests/fast/events/5056619.html
-/sdcard/android/layout_tests/fast/events/updateLayoutForHitTest.html
-/sdcard/android/layout_tests/fast/events/label-focus.html
-/sdcard/android/layout_tests/fast/events/onloadFrameCrash.html
-/sdcard/android/layout_tests/fast/events/event-listener-on-link.html
-/sdcard/android/layout_tests/fast/events/keydown-1.html
-/sdcard/android/layout_tests/fast/events/onload-re-entry.html
-/sdcard/android/layout_tests/fast/events/standalone-image-drag-to-editable.html
-/sdcard/android/layout_tests/fast/events/focusingUnloadedFrame.html
-/sdcard/android/layout_tests/fast/events/event-sender-mouse-moved.html
-/sdcard/android/layout_tests/fast/events/mouseout-dead-node.html
-/sdcard/android/layout_tests/fast/events/reveal-link-when-focused.html
-/sdcard/android/layout_tests/fast/html/keygen.html
-/sdcard/android/layout_tests/fast/html/link-rel-stylesheet.html
-/sdcard/android/layout_tests/fast/html/listing.html
-/sdcard/android/layout_tests/fast/html/marquee-scroll.html
-/sdcard/android/layout_tests/fast/images/svg-as-tiled-background.html
-/sdcard/android/layout_tests/fast/images/svg-as-background.html
-/sdcard/android/layout_tests/fast/images/svg-as-image.html
-/sdcard/android/layout_tests/fast/images/pdf-as-image-landscape.html
-/sdcard/android/layout_tests/fast/images/pdf-as-tiled-background.html
-/sdcard/android/layout_tests/fast/images/object-image.html
-/sdcard/android/layout_tests/fast/images/pdf-as-background.html
-/sdcard/android/layout_tests/fast/images/svg-as-relative-image.html
-/sdcard/android/layout_tests/fast/images/imagemap-case.html
-/sdcard/android/layout_tests/fast/images/pdf-as-image.html
-/sdcard/android/layout_tests/fast/images/image-map-anchor-children.html
-/sdcard/android/layout_tests/fast/images/embed-image.html
-/sdcard/android/layout_tests/fast/images/animated-svg-as-image.html
-/sdcard/android/layout_tests/fast/images/image-in-map.html
-/sdcard/android/layout_tests/fast/images/animated-gif-with-offsets.html
-/sdcard/android/layout_tests/fast/images/favicon-as-image.html
-/sdcard/android/layout_tests/fast/images/svg-width-100p-as-background.html
-/sdcard/android/layout_tests/fast/inline-block/14498-positionForCoordinates.html
-/sdcard/android/layout_tests/fast/inline-block/001.html
-/sdcard/android/layout_tests/fast/inline-block/002.html
-/sdcard/android/layout_tests/fast/inline-block/003.html
-/sdcard/android/layout_tests/fast/inline-block/004.html
-/sdcard/android/layout_tests/fast/inline-block/005.html
-/sdcard/android/layout_tests/fast/inline-block/contenteditable-baseline.html
-/sdcard/android/layout_tests/fast/inline-block/006.html
-/sdcard/android/layout_tests/fast/inline-block/inline-block-vertical-align.html
-/sdcard/android/layout_tests/fast/inline-block/tricky-baseline.html
-/sdcard/android/layout_tests/fast/inline-block/overflow-clip.html
-/sdcard/android/layout_tests/fast/inspector/matchedrules.html
-/sdcard/android/layout_tests/fast/inspector/style.html
-/sdcard/android/layout_tests/fast/flexbox/001.html
-/sdcard/android/layout_tests/fast/flexbox/010.html
-/sdcard/android/layout_tests/fast/flexbox/020.html
-/sdcard/android/layout_tests/fast/flexbox/002.html
-/sdcard/android/layout_tests/fast/flexbox/011.html
-/sdcard/android/layout_tests/fast/flexbox/021.html
-/sdcard/android/layout_tests/fast/flexbox/003.html
-/sdcard/android/layout_tests/fast/flexbox/012.html
-/sdcard/android/layout_tests/fast/flexbox/022.html
-/sdcard/android/layout_tests/fast/flexbox/004.html
-/sdcard/android/layout_tests/fast/flexbox/013.html
-/sdcard/android/layout_tests/fast/flexbox/023.html
-/sdcard/android/layout_tests/fast/flexbox/005.html
-/sdcard/android/layout_tests/fast/flexbox/014.html
-/sdcard/android/layout_tests/fast/flexbox/015.html
-/sdcard/android/layout_tests/fast/flexbox/006.html
-/sdcard/android/layout_tests/fast/flexbox/024.html
-/sdcard/android/layout_tests/fast/flexbox/016.html
-/sdcard/android/layout_tests/fast/flexbox/007.html
-/sdcard/android/layout_tests/fast/flexbox/025.html
-/sdcard/android/layout_tests/fast/flexbox/008.html
-/sdcard/android/layout_tests/fast/flexbox/017.html
-/sdcard/android/layout_tests/fast/flexbox/026.html
-/sdcard/android/layout_tests/fast/flexbox/009.html
-/sdcard/android/layout_tests/fast/flexbox/018.html
-/sdcard/android/layout_tests/fast/flexbox/019.html
-/sdcard/android/layout_tests/fast/flexbox/flex-hang.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-style-end-tag-1.html
-/sdcard/android/layout_tests/fast/tokenizer/002.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-title-end-tag-2.html
-/sdcard/android/layout_tests/fast/tokenizer/script-after-frameset.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-style-end-tag-2.html
-/sdcard/android/layout_tests/fast/tokenizer/external-script-document-write.html
-/sdcard/android/layout_tests/fast/tokenizer/script_extra_close.html
-/sdcard/android/layout_tests/fast/tokenizer/001.html
-/sdcard/android/layout_tests/fast/tokenizer/003.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-title-end-tag-1.html
-/sdcard/android/layout_tests/fast/tokenizer/external-script-document-write_2.html
-/sdcard/android/layout_tests/fast/box-shadow/border-radius-big.html
-/sdcard/android/layout_tests/fast/box-shadow/basic-shadows.html
-/sdcard/android/layout_tests/fast/js/exception-linenums-in-html-3.html
-/sdcard/android/layout_tests/fast/js/missing-style-end-tag-js.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/010.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/001.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/002.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/003.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/004.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/005.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/006.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/007.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/008.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/009.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/001.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/002.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/003.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/004.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/005.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/006.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/007.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/001.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/002.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/003.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/004.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/005.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/006.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/007.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/008.html
-/sdcard/android/layout_tests/fast/inline/continuation-outlines-with-layers.html
-/sdcard/android/layout_tests/fast/inline/inline-padding-disables-text-quirk.html
-/sdcard/android/layout_tests/fast/inline/emptyInlinesWithinLists.html
-/sdcard/android/layout_tests/fast/inline/drawStyledEmptyInlines.html
-/sdcard/android/layout_tests/fast/inline/drawStyledEmptyInlinesWithWS.html
-/sdcard/android/layout_tests/fast/inline/positionedLifetime.html
-/sdcard/android/layout_tests/fast/inline/dirtyLinesForInline.html
-/sdcard/android/layout_tests/fast/inline/001.html
-/sdcard/android/layout_tests/fast/inline/002.html
-/sdcard/android/layout_tests/fast/inline/inline-text-quirk-bpm.html
-/sdcard/android/layout_tests/fast/inline/inline-borders-with-bidi-override.html
-/sdcard/android/layout_tests/fast/inline/styledEmptyInlinesWithBRs.html
-/sdcard/android/layout_tests/fast/inline/continuation-outlines.html
-/sdcard/android/layout_tests/fast/inline/outline-continuations.html
-/sdcard/android/layout_tests/fast/inline/br-text-decoration.html
-/sdcard/android/layout_tests/fast/inline/percentage-margins.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/colSpan.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/createCaption.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/frameless-location-bugzilla10837.html
-/sdcard/android/layout_tests/fast/dom/Element/null-offset-parent.html
-/sdcard/android/layout_tests/fast/dom/Element/class-attribute-whitespace.html
-/sdcard/android/layout_tests/fast/dom/HTMLLinkElement/pending-stylesheet-count.html
-/sdcard/android/layout_tests/fast/dom/HTMLStyleElement/insert-parser-generated.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-image-alt-text.html
-/sdcard/android/layout_tests/fast/dom/Window/open-existing-pop-up-blocking.html
-/sdcard/android/layout_tests/fast/dom/Window/btoa-pnglet.html
-/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/vspace-hspace-as-number.html
-/sdcard/android/layout_tests/fast/dom/HTMLElement/bdo.html
-/sdcard/android/layout_tests/fast/dom/Range/surroundContents-1.html
-/sdcard/android/layout_tests/fast/dom/Range/create-contextual-fragment.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead1.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead2.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead3.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead4.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead5.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/head-link-style-href-check.html
-/sdcard/android/layout_tests/fast/dom/HTMLTextAreaElement/reset-textarea.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-alt-text.html
-/sdcard/android/layout_tests/fast/dom/dom-parse-serialize.html
-/sdcard/android/layout_tests/fast/dom/focus-contenteditable.html
-/sdcard/android/layout_tests/fast/dom/jsDevicePixelRatio.html
-/sdcard/android/layout_tests/fast/dom/isindex-001.html
-/sdcard/android/layout_tests/fast/dom/css-cached-import-rule.html
-/sdcard/android/layout_tests/fast/dom/dom-parse-serialize-display.html
-/sdcard/android/layout_tests/fast/dom/css-rule-functions.html
-/sdcard/android/layout_tests/fast/dom/createDocumentType.html
-/sdcard/android/layout_tests/fast/dom/clientWidthAfterDocumentIsRemoved.html
-/sdcard/android/layout_tests/fast/dom/css-inline-style-important.html
-/sdcard/android/layout_tests/fast/dom/replaceChild.html
-/sdcard/android/layout_tests/fast/dom/anchor-text.html
-/sdcard/android/layout_tests/fast/dom/importNodeHTML.html
-/sdcard/android/layout_tests/fast/dom/gc-10.html
-/sdcard/android/layout_tests/fast/dom/inner-text.html
-/sdcard/android/layout_tests/fast/dom/isindex-002.html
-/sdcard/android/layout_tests/fast/dom/outerText.html
-/sdcard/android/layout_tests/fast/dom/row-inner-text.html
-/sdcard/android/layout_tests/fast/dom/blur-contenteditable.html
-/sdcard/android/layout_tests/fast/dom/setPrimitiveValue.html
-/sdcard/android/layout_tests/fast/dom/delete-contents.html
-/sdcard/android/layout_tests/fast/dom/children-nodes.html
-/sdcard/android/layout_tests/fast/dom/css-mediarule-deleteRule-update.html
-/sdcard/android/layout_tests/fast/dom/attr_dead_doc.html
-/sdcard/android/layout_tests/fast/dom/clone-contents-0-end-offset.html
-/sdcard/android/layout_tests/fast/dom/comment-not-documentElement.html
-/sdcard/android/layout_tests/fast/dom/clone-node-dynamic-style.html
-/sdcard/android/layout_tests/fast/dom/css-mediarule-insertRule-update.html
-/sdcard/android/layout_tests/fast/dom/css-insert-import-rule.html
-/sdcard/android/layout_tests/fast/dom/stripNullFromTextNodes.html
-/sdcard/android/layout_tests/fast/gradients/generated-gradients.html
-/sdcard/android/layout_tests/fast/gradients/list-item-gradient.html
-/sdcard/android/layout_tests/fast/gradients/border-image-gradient-sides-and-corners.html
-/sdcard/android/layout_tests/fast/gradients/simple-gradients.html
-/sdcard/android/layout_tests/fast/gradients/border-image-gradient.html
-/sdcard/android/layout_tests/fast/invalid/table-inside-stray-table-content.html
-/sdcard/android/layout_tests/fast/invalid/010.html
-/sdcard/android/layout_tests/fast/invalid/002.html
-/sdcard/android/layout_tests/fast/invalid/012.html
-/sdcard/android/layout_tests/fast/invalid/004.html
-/sdcard/android/layout_tests/fast/invalid/014.html
-/sdcard/android/layout_tests/fast/invalid/006.html
-/sdcard/android/layout_tests/fast/invalid/016.html
-/sdcard/android/layout_tests/fast/invalid/008.html
-/sdcard/android/layout_tests/fast/invalid/018.html
-/sdcard/android/layout_tests/fast/invalid/junk-data.xml
-/sdcard/android/layout_tests/fast/invalid/missing-dl-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/td-inside-object.html
-/sdcard/android/layout_tests/fast/invalid/table-residual-style-crash.html
-/sdcard/android/layout_tests/fast/invalid/missing-font-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/missing-dt-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/020.xml
-/sdcard/android/layout_tests/fast/invalid/001.html
-/sdcard/android/layout_tests/fast/invalid/nestedh3s.html
-/sdcard/android/layout_tests/fast/invalid/011.html
-/sdcard/android/layout_tests/fast/invalid/003.html
-/sdcard/android/layout_tests/fast/invalid/021.html
-/sdcard/android/layout_tests/fast/invalid/013.html
-/sdcard/android/layout_tests/fast/invalid/005.html
-/sdcard/android/layout_tests/fast/invalid/015.html
-/sdcard/android/layout_tests/fast/invalid/007.html
-/sdcard/android/layout_tests/fast/invalid/residual-style.html
-/sdcard/android/layout_tests/fast/invalid/017.html
-/sdcard/android/layout_tests/fast/invalid/009.html
-/sdcard/android/layout_tests/fast/invalid/missing-address-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/019.html
-/sdcard/android/layout_tests/fast/forms/input-width.html
-/sdcard/android/layout_tests/fast/forms/select-item-background-clip.html
-/sdcard/android/layout_tests/fast/forms/radio-nested-labels.html
-/sdcard/android/layout_tests/fast/forms/thumbslider-crash.html
-/sdcard/android/layout_tests/fast/forms/input-first-letter.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-preventDefault.html
-/sdcard/android/layout_tests/fast/forms/plaintext-mode-2.html
-/sdcard/android/layout_tests/fast/forms/input-double-click-selection-gap-bug.html
-/sdcard/android/layout_tests/fast/forms/preserveFormDuringResidualStyle.html
-/sdcard/android/layout_tests/fast/forms/search-rtl.html
-/sdcard/android/layout_tests/fast/forms/select-change-popup-to-listbox.html
-/sdcard/android/layout_tests/fast/forms/input-text-maxlength.html
-/sdcard/android/layout_tests/fast/forms/blankbuttons.html
-/sdcard/android/layout_tests/fast/forms/password-placeholder-text-security.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label05.html
-/sdcard/android/layout_tests/fast/forms/visual-hebrew-text-field.html
-/sdcard/android/layout_tests/fast/forms/input-text-option-delete.html
-/sdcard/android/layout_tests/fast/forms/textfield-overflow.html
-/sdcard/android/layout_tests/fast/forms/005.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label02.html
-/sdcard/android/layout_tests/fast/forms/file-input-disabled.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-visibility.html
-/sdcard/android/layout_tests/fast/forms/select-disabled-appearance.html
-/sdcard/android/layout_tests/fast/forms/input-type-change2.html
-/sdcard/android/layout_tests/fast/forms/select-block-background.html
-/sdcard/android/layout_tests/fast/forms/file-input-direction.html
-/sdcard/android/layout_tests/fast/forms/select-visual-hebrew.html
-/sdcard/android/layout_tests/fast/forms/select-change-listbox-size.html
-/sdcard/android/layout_tests/fast/forms/002.html
-/sdcard/android/layout_tests/fast/forms/textarea-align.html
-/sdcard/android/layout_tests/fast/forms/control-restrict-line-height.html
-/sdcard/android/layout_tests/fast/forms/textAreaLineHeight.html
-/sdcard/android/layout_tests/fast/forms/button-generated-content.html
-/sdcard/android/layout_tests/fast/forms/option-text-clip.html
-/sdcard/android/layout_tests/fast/forms/textfield-drag-into-disabled.html
-/sdcard/android/layout_tests/fast/forms/input-text-paste-maxlength.html
-/sdcard/android/layout_tests/fast/forms/formmove.html
-/sdcard/android/layout_tests/fast/forms/select-display-none-style-resolve.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-autoscroll.html
-/sdcard/android/layout_tests/fast/forms/thumbslider-no-parent-slider.html
-/sdcard/android/layout_tests/fast/forms/textfield-outline.html
-/sdcard/android/layout_tests/fast/forms/button-text-transform.html
-/sdcard/android/layout_tests/fast/forms/listbox-clip.html
-/sdcard/android/layout_tests/fast/forms/textarea-scroll-height.html
-/sdcard/android/layout_tests/fast/forms/button-table-styles.html
-/sdcard/android/layout_tests/fast/forms/textarea-setinnerhtml.html
-/sdcard/android/layout_tests/fast/forms/input-align.html
-/sdcard/android/layout_tests/fast/forms/box-shadow-override.html
-/sdcard/android/layout_tests/fast/forms/button-cannot-be-nested.html
-/sdcard/android/layout_tests/fast/forms/input-type-change.html
-/sdcard/android/layout_tests/fast/forms/searchfield-heights.html
-/sdcard/android/layout_tests/fast/forms/checkbox-radio-onchange.html
-/sdcard/android/layout_tests/fast/forms/input-spaces.html
-/sdcard/android/layout_tests/fast/forms/menulist-option-wrap.html
-/sdcard/android/layout_tests/fast/forms/select-empty-option-height.html
-/sdcard/android/layout_tests/fast/forms/textarea-scrollbar.html
-/sdcard/android/layout_tests/fast/forms/float-before-fieldset.html
-/sdcard/android/layout_tests/fast/forms/radio_checked.html
-/sdcard/android/layout_tests/fast/forms/minWidthPercent.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-focus.html
-/sdcard/android/layout_tests/fast/forms/input-value.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label06.html
-/sdcard/android/layout_tests/fast/forms/placeholder-pseudo-style.html
-/sdcard/android/layout_tests/fast/forms/menulist-width-change.html
-/sdcard/android/layout_tests/fast/forms/option-strip-whitespace.html
-/sdcard/android/layout_tests/fast/forms/input-text-drag-down.html
-/sdcard/android/layout_tests/fast/forms/select-selected.html
-/sdcard/android/layout_tests/fast/forms/006.html
-/sdcard/android/layout_tests/fast/forms/control-clip-overflow.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-default-bkcolor.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label03.html
-/sdcard/android/layout_tests/fast/forms/003.html
-/sdcard/android/layout_tests/fast/forms/button-default-title.html
-/sdcard/android/layout_tests/fast/forms/hidden-listbox.html
-/sdcard/android/layout_tests/fast/forms/input-no-renderer.html
-/sdcard/android/layout_tests/fast/forms/input-text-click-outside.html
-/sdcard/android/layout_tests/fast/forms/input-baseline.html
-/sdcard/android/layout_tests/fast/forms/targeted-frame-submission.html
-/sdcard/android/layout_tests/fast/forms/input-text-scroll-left-on-blur.html
-/sdcard/android/layout_tests/fast/forms/form-element-geometry.html
-/sdcard/android/layout_tests/fast/forms/input-table.html
-/sdcard/android/layout_tests/fast/forms/textarea-scrolled-type.html
-/sdcard/android/layout_tests/fast/forms/select-change-listbox-to-popup.html
-/sdcard/android/layout_tests/fast/forms/select-align.html
-/sdcard/android/layout_tests/fast/forms/radio_checked_dynamic.html
-/sdcard/android/layout_tests/fast/forms/select-writing-direction-natural.html
-/sdcard/android/layout_tests/fast/forms/search-cancel-button-style-sharing.html
-/sdcard/android/layout_tests/fast/forms/tabbing-input-iframe.html
-/sdcard/android/layout_tests/fast/forms/hidden-input-file.html
-/sdcard/android/layout_tests/fast/forms/menulist-deselect-update.html
-/sdcard/android/layout_tests/fast/forms/button-sizes.html
-/sdcard/android/layout_tests/fast/forms/slider-thumb-stylability.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-dimmed.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-width.html
-/sdcard/android/layout_tests/fast/forms/listbox-scrollbar-incremental-load.html
-/sdcard/android/layout_tests/fast/forms/password-placeholder.html
-/sdcard/android/layout_tests/fast/forms/select-list-box-with-height.html
-/sdcard/android/layout_tests/fast/forms/button-align.html
-/sdcard/android/layout_tests/fast/forms/textarea-rows-cols.html
-/sdcard/android/layout_tests/fast/forms/listbox-deselect-scroll.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-readonly.html
-/sdcard/android/layout_tests/fast/forms/select-initial-position.html
-/sdcard/android/layout_tests/fast/forms/menulist-no-overflow.html
-/sdcard/android/layout_tests/fast/forms/formmove2.html
-/sdcard/android/layout_tests/fast/forms/placeholder-set-attribute.html
-/sdcard/android/layout_tests/fast/forms/radio-attr-order.html
-/sdcard/android/layout_tests/fast/forms/input-disabled-color.html
-/sdcard/android/layout_tests/fast/forms/fieldset-align.html
-/sdcard/android/layout_tests/fast/forms/select-baseline.html
-/sdcard/android/layout_tests/fast/forms/input-text-word-wrap.html
-/sdcard/android/layout_tests/fast/forms/stuff-on-my-optgroup.html
-/sdcard/android/layout_tests/fast/forms/listbox-selection-2.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-empty.html
-/sdcard/android/layout_tests/fast/forms/input-align-image.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label07.html
-/sdcard/android/layout_tests/fast/forms/option-index.html
-/sdcard/android/layout_tests/fast/forms/menulist-clip.html
-/sdcard/android/layout_tests/fast/forms/indeterminate.html
-/sdcard/android/layout_tests/fast/forms/search-display-none-cancel-button.html
-/sdcard/android/layout_tests/fast/forms/negativeLineHeight.html
-/sdcard/android/layout_tests/fast/forms/007.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label04.html
-/sdcard/android/layout_tests/fast/forms/select-style.html
-/sdcard/android/layout_tests/fast/forms/select-size.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-disabled.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-height.html
-/sdcard/android/layout_tests/fast/forms/004.html
-/sdcard/android/layout_tests/fast/forms/menulist-separator-painting.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label01.html
-/sdcard/android/layout_tests/fast/forms/fieldset-with-float.html
-/sdcard/android/layout_tests/fast/forms/search-placeholder-value-changed.html
-/sdcard/android/layout_tests/fast/forms/input-field-text-truncated.html
-/sdcard/android/layout_tests/fast/forms/floating-textfield-relayout.html
-/sdcard/android/layout_tests/fast/forms/button-inner-block-reuse.html
-/sdcard/android/layout_tests/fast/forms/input-type-text-min-width.html
-/sdcard/android/layout_tests/fast/forms/001.html
-/sdcard/android/layout_tests/fast/forms/slider-thumb-shared-style.html
-/sdcard/android/layout_tests/fast/forms/option-script.html
-/sdcard/android/layout_tests/fast/forms/input-paste-undo.html
-/sdcard/android/layout_tests/fast/forms/input-text-click-inside.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-selection.html
-/sdcard/android/layout_tests/fast/forms/button-white-space.html
-/sdcard/android/layout_tests/fast/forms/menulist-narrow-width.html
-/sdcard/android/layout_tests/fast/forms/slider-padding.html
-/sdcard/android/layout_tests/fast/forms/menulist-restrict-line-height.html
-/sdcard/android/layout_tests/fast/forms/textarea-width.html
-/sdcard/android/layout_tests/fast/forms/input-text-double-click.html
-/sdcard/android/layout_tests/fast/forms/button-submit.html
-/sdcard/android/layout_tests/fast/forms/disabled-select-change-index.html
-/sdcard/android/layout_tests/fast/forms/formmove3.html
-/sdcard/android/layout_tests/fast/forms/form-hides-table.html
-/sdcard/android/layout_tests/fast/forms/listbox-width-change.html
-/sdcard/android/layout_tests/fast/forms/input-text-self-emptying-click.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-bkcolor.html
-/sdcard/android/layout_tests/fast/forms/button-positioned.html
-/sdcard/android/layout_tests/fast/forms/search-transformed.html
-/sdcard/android/layout_tests/fast/forms/image-border.html
-/sdcard/android/layout_tests/fast/forms/encoding-test.html
-/sdcard/android/layout_tests/fast/forms/control-clip.html
-/sdcard/android/layout_tests/fast/compact/001.html
-/sdcard/android/layout_tests/fast/compact/002.html
-/sdcard/android/layout_tests/fast/compact/003.html
-/sdcard/android/layout_tests/fast/clip/nestedTransparencyClip.html
-/sdcard/android/layout_tests/fast/clip/outline-overflowClip.html
-/sdcard/android/layout_tests/fast/clip/001.html
-/sdcard/android/layout_tests/fast/clip/010.html
-/sdcard/android/layout_tests/fast/clip/002.html
-/sdcard/android/layout_tests/fast/clip/011.html
-/sdcard/android/layout_tests/fast/clip/003.html
-/sdcard/android/layout_tests/fast/clip/012.html
-/sdcard/android/layout_tests/fast/clip/004.html
-/sdcard/android/layout_tests/fast/clip/013.html
-/sdcard/android/layout_tests/fast/clip/005.html
-/sdcard/android/layout_tests/fast/clip/014.html
-/sdcard/android/layout_tests/fast/clip/006.html
-/sdcard/android/layout_tests/fast/clip/015.html
-/sdcard/android/layout_tests/fast/clip/007.html
-/sdcard/android/layout_tests/fast/clip/016.html
-/sdcard/android/layout_tests/fast/clip/008.html
-/sdcard/android/layout_tests/fast/clip/017.html
-/sdcard/android/layout_tests/fast/clip/009.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/001.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/002.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/003.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/004.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/equal-precedence-resolution.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/rtl-border-collapsing.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/border-collapsing-head-foot.html
-/sdcard/android/layout_tests/fast/table/fixed-nested.html
-/sdcard/android/layout_tests/fast/table/frame-and-rules.html
-/sdcard/android/layout_tests/fast/table/empty-table-percent-height.html
-/sdcard/android/layout_tests/fast/table/100-percent-cell-width.html
-/sdcard/android/layout_tests/fast/table/stale-grid-crash.html
-/sdcard/android/layout_tests/fast/table/div-as-col-span.html
-/sdcard/android/layout_tests/fast/table/nobr.html
-/sdcard/android/layout_tests/fast/table/012.html
-/sdcard/android/layout_tests/fast/table/040.html
-/sdcard/android/layout_tests/fast/table/growCellForImageQuirk.html
-/sdcard/android/layout_tests/fast/table/024.html
-/sdcard/android/layout_tests/fast/table/cell-pref-width-invalidation.html
-/sdcard/android/layout_tests/fast/table/008.html
-/sdcard/android/layout_tests/fast/table/036.html
-/sdcard/android/layout_tests/fast/table/nested-percent-height-table.html
-/sdcard/android/layout_tests/fast/table/rules-attr-dynchange1.html
-/sdcard/android/layout_tests/fast/table/wide-column.html
-/sdcard/android/layout_tests/fast/table/fixed-with-auto-with-colspan.html
-/sdcard/android/layout_tests/fast/table/percent-heights.html
-/sdcard/android/layout_tests/fast/table/021.html
-/sdcard/android/layout_tests/fast/table/colspanMinWidth.html
-/sdcard/android/layout_tests/fast/table/005.html
-/sdcard/android/layout_tests/fast/table/033.html
-/sdcard/android/layout_tests/fast/table/017.html
-/sdcard/android/layout_tests/fast/table/floatingTablePaintBackground.html
-/sdcard/android/layout_tests/fast/table/029.html
-/sdcard/android/layout_tests/fast/table/cell-absolute-child.html
-/sdcard/android/layout_tests/fast/table/click-near-anonymous-table.html
-/sdcard/android/layout_tests/fast/table/auto-with-percent-height.html
-/sdcard/android/layout_tests/fast/table/insert-before-anonymous-ancestors.html
-/sdcard/android/layout_tests/fast/table/append-cells2.html
-/sdcard/android/layout_tests/fast/table/unused-percent-heights.html
-/sdcard/android/layout_tests/fast/table/max-width-integer-overflow.html
-/sdcard/android/layout_tests/fast/table/vertical-align-baseline-readjust.html
-/sdcard/android/layout_tests/fast/table/empty-row-crash.html
-/sdcard/android/layout_tests/fast/table/002.html
-/sdcard/android/layout_tests/fast/table/030.html
-/sdcard/android/layout_tests/fast/table/cell-width-auto.html
-/sdcard/android/layout_tests/fast/table/014.html
-/sdcard/android/layout_tests/fast/table/037.xml
-/sdcard/android/layout_tests/fast/table/large-width.html
-/sdcard/android/layout_tests/fast/table/026.html
-/sdcard/android/layout_tests/fast/table/unbreakable-images-quirk.html
-/sdcard/android/layout_tests/fast/table/038.html
-/sdcard/android/layout_tests/fast/table/dynamic-cellpadding.html
-/sdcard/android/layout_tests/fast/table/generated-caption.html
-/sdcard/android/layout_tests/fast/table/empty-cells.html
-/sdcard/android/layout_tests/fast/table/add-before-anonymous-child.html
-/sdcard/android/layout_tests/fast/table/011.html
-/sdcard/android/layout_tests/fast/table/table-display-types-strict.html
-/sdcard/android/layout_tests/fast/table/023.html
-/sdcard/android/layout_tests/fast/table/007.html
-/sdcard/android/layout_tests/fast/table/cellindex.html
-/sdcard/android/layout_tests/fast/table/035.html
-/sdcard/android/layout_tests/fast/table/colgroup-spanning-groups-rules.html
-/sdcard/android/layout_tests/fast/table/insert-row-before-form.html
-/sdcard/android/layout_tests/fast/table/rowspan-paint-order.html
-/sdcard/android/layout_tests/fast/table/rtl-cell-display-none-assert.html
-/sdcard/android/layout_tests/fast/table/insert-cell-before-form.html
-/sdcard/android/layout_tests/fast/table/replaced-percent-height.html
-/sdcard/android/layout_tests/fast/table/text-field-baseline.html
-/sdcard/android/layout_tests/fast/table/table-display-types.html
-/sdcard/android/layout_tests/fast/table/table-hspace-align-center.html
-/sdcard/android/layout_tests/fast/table/caption-relayout.html
-/sdcard/android/layout_tests/fast/table/020.html
-/sdcard/android/layout_tests/fast/table/fixed-table-non-cell-in-row.html
-/sdcard/android/layout_tests/fast/table/004.html
-/sdcard/android/layout_tests/fast/table/032.html
-/sdcard/android/layout_tests/fast/table/row-height-recalc.html
-/sdcard/android/layout_tests/fast/table/016.html
-/sdcard/android/layout_tests/fast/table/absolute-table-at-bottom.html
-/sdcard/android/layout_tests/fast/table/028.html
-/sdcard/android/layout_tests/fast/table/spanOverlapRepaint.html
-/sdcard/android/layout_tests/fast/table/invisible-cell-background.html
-/sdcard/android/layout_tests/fast/table/vertical-align-baseline.html
-/sdcard/android/layout_tests/fast/table/wide-colspan.html
-/sdcard/android/layout_tests/fast/table/rowindex.html
-/sdcard/android/layout_tests/fast/table/001.html
-/sdcard/android/layout_tests/fast/table/remove-td-display-none.html
-/sdcard/android/layout_tests/fast/table/013.html
-/sdcard/android/layout_tests/fast/table/041.html
-/sdcard/android/layout_tests/fast/table/colgroup-preceded-by-caption.html
-/sdcard/android/layout_tests/fast/table/025.html
-/sdcard/android/layout_tests/fast/table/giantCellspacing.html
-/sdcard/android/layout_tests/fast/table/009.html
-/sdcard/android/layout_tests/fast/table/edge-offsets.html
-/sdcard/android/layout_tests/fast/table/giantRowspan.html
-/sdcard/android/layout_tests/fast/table/010.html
-/sdcard/android/layout_tests/fast/table/inline-form-assert.html
-/sdcard/android/layout_tests/fast/table/overflowHidden.html
-/sdcard/android/layout_tests/fast/table/rules-attr-dynchange2.html
-/sdcard/android/layout_tests/fast/table/height-percent-test.html
-/sdcard/android/layout_tests/fast/table/multiple-percent-height-rows.html
-/sdcard/android/layout_tests/fast/table/giantRowspan2.html
-/sdcard/android/layout_tests/fast/table/tableInsideCaption.html
-/sdcard/android/layout_tests/fast/table/022.html
-/sdcard/android/layout_tests/fast/table/006.html
-/sdcard/android/layout_tests/fast/table/034.html
-/sdcard/android/layout_tests/fast/table/append-cells.html
-/sdcard/android/layout_tests/fast/table/018.html
-/sdcard/android/layout_tests/fast/table/percent-widths-stretch.html
-/sdcard/android/layout_tests/fast/table/prepend-in-anonymous-table.html
-/sdcard/android/layout_tests/fast/table/floating-th.html
-/sdcard/android/layout_tests/fast/table/empty-section-crash.html
-/sdcard/android/layout_tests/fast/table/form-with-table-style.html
-/sdcard/android/layout_tests/fast/table/003.html
-/sdcard/android/layout_tests/fast/table/031.html
-/sdcard/android/layout_tests/fast/table/015.html
-/sdcard/android/layout_tests/fast/table/027.html
-/sdcard/android/layout_tests/fast/table/039.html
-/sdcard/android/layout_tests/fast/css/counters/invalidate-cached-counter-node.html
-/sdcard/android/layout_tests/fast/css/counters/counter-text-security.html
-/sdcard/android/layout_tests/fast/css/counters/counter-text-transform.html
-/sdcard/android/layout_tests/fast/css/variables/multiple-term-test.html
-/sdcard/android/layout_tests/fast/css/variables/colors-test.html
-/sdcard/android/layout_tests/fast/css/variables/font-test.html
-/sdcard/android/layout_tests/fast/css/variables/multiple-blocks-test.html
-/sdcard/android/layout_tests/fast/css/variables/misplaced-variables-test.html
-/sdcard/android/layout_tests/fast/css/variables/invalid-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/misplaced-import-test.html
-/sdcard/android/layout_tests/fast/css/variables/import-test.html
-/sdcard/android/layout_tests/fast/css/variables/inline-style-test.html
-/sdcard/android/layout_tests/fast/css/variables/declaration-block-test.html
-/sdcard/android/layout_tests/fast/css/variables/margin-test.html
-/sdcard/android/layout_tests/fast/css/variables/set-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/override-test.html
-/sdcard/android/layout_tests/fast/css/variables/remove-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/variable-iteration-test.html
-/sdcard/android/layout_tests/fast/css/variables/image-test.html
-/sdcard/android/layout_tests/fast/css/variables/block-cycle-test.html
-/sdcard/android/layout_tests/fast/css/variables/shorthand-test.html
-/sdcard/android/layout_tests/fast/css/variables/print-test.html
-/sdcard/android/layout_tests/fast/css/namespaces/001.xml
-/sdcard/android/layout_tests/fast/css/namespaces/002.xml
-/sdcard/android/layout_tests/fast/css/namespaces/003.xml
-/sdcard/android/layout_tests/fast/css/namespaces/004.xml
-/sdcard/android/layout_tests/fast/css/namespaces/005.xml
-/sdcard/android/layout_tests/fast/css/namespaces/006.xml
-/sdcard/android/layout_tests/fast/css/namespaces/007.xml
-/sdcard/android/layout_tests/fast/css/font-face-in-media-rule.html
-/sdcard/android/layout_tests/fast/css/font-face-default-font.html
-/sdcard/android/layout_tests/fast/css/first-letter-float-after-float.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors-2.html
-/sdcard/android/layout_tests/fast/css/line-height-negative.html
-/sdcard/android/layout_tests/fast/css/only-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/008.html
-/sdcard/android/layout_tests/fast/css/first-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/ZeroOpacityLayers2.html
-/sdcard/android/layout_tests/fast/css/target-fragment-match.html
-/sdcard/android/layout_tests/fast/css/marginComputedStyle.html
-/sdcard/android/layout_tests/fast/css/live-cssrules.html
-/sdcard/android/layout_tests/fast/css/zoom-font-size.html
-/sdcard/android/layout_tests/fast/css/005.html
-/sdcard/android/layout_tests/fast/css/first-letter-hover.html
-/sdcard/android/layout_tests/fast/css/color-quirk.html
-/sdcard/android/layout_tests/fast/css/resize-corner-tracking-transformed.html
-/sdcard/android/layout_tests/fast/css/selector-set-attribute.html
-/sdcard/android/layout_tests/fast/css/attribute-selector-empty-value.html
-/sdcard/android/layout_tests/fast/css/line-height-overflow.html
-/sdcard/android/layout_tests/fast/css/002.html
-/sdcard/android/layout_tests/fast/css/empty-generated-content.html
-/sdcard/android/layout_tests/fast/css/background-image-with-baseurl.html
-/sdcard/android/layout_tests/fast/css/border-radius-outline-offset.html
-/sdcard/android/layout_tests/fast/css/hsla-color.html
-/sdcard/android/layout_tests/fast/css/first-letter-skip-out-of-flow.html
-/sdcard/android/layout_tests/fast/css/font-face-multiple-remote-sources.html
-/sdcard/android/layout_tests/fast/css/hover-subselector.html
-/sdcard/android/layout_tests/fast/css/margin-bottom-form-element-strict.html
-/sdcard/android/layout_tests/fast/css/shadow-multiple.html
-/sdcard/android/layout_tests/fast/css/import_with_baseurl.html
-/sdcard/android/layout_tests/fast/css/list-outline.html
-/sdcard/android/layout_tests/fast/css/apple-prefix.html
-/sdcard/android/layout_tests/fast/css/line-height.html
-/sdcard/android/layout_tests/fast/css/first-letter-visibility.html
-/sdcard/android/layout_tests/fast/css/acid2.html
-/sdcard/android/layout_tests/fast/css/font_property_normal.html
-/sdcard/android/layout_tests/fast/css/css-imports.html
-/sdcard/android/layout_tests/fast/css/last-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/last-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/visibility-hit-test.html
-/sdcard/android/layout_tests/fast/css/absolute-poition-in-rtl-parent.html
-/sdcard/android/layout_tests/fast/css/content-dynamic.html
-/sdcard/android/layout_tests/fast/css/acid2-pixel.html
-/sdcard/android/layout_tests/fast/css/transition-color-unspecified.html
-/sdcard/android/layout_tests/fast/css/table-text-align-strict.html
-/sdcard/android/layout_tests/fast/css/transform-default-parameter.html
-/sdcard/android/layout_tests/fast/css/contentImage.html
-/sdcard/android/layout_tests/fast/css/value-list-out-of-bounds-crash.html
-/sdcard/android/layout_tests/fast/css/color-strict.html
-/sdcard/android/layout_tests/fast/css/ignore-text-zoom.html
-/sdcard/android/layout_tests/fast/css/max-height-none.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors-3.html
-/sdcard/android/layout_tests/fast/css/empty-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/begin-end-contain-selector-empty-value.html
-/sdcard/android/layout_tests/fast/css/find-next-layer.html
-/sdcard/android/layout_tests/fast/css/contentDiv.html
-/sdcard/android/layout_tests/fast/css/invalid-pseudo-classes.html
-/sdcard/android/layout_tests/fast/css/disabled-author-styles.html
-/sdcard/android/layout_tests/fast/css/text-security.html
-/sdcard/android/layout_tests/fast/css/font-weight-1.html
-/sdcard/android/layout_tests/fast/css/margin-bottom-form-element-quirk.html
-/sdcard/android/layout_tests/fast/css/font-shorthand-weight-only.html
-/sdcard/android/layout_tests/fast/css/006.html
-/sdcard/android/layout_tests/fast/css/fieldset-display-row.html
-/sdcard/android/layout_tests/fast/css/border-height.html
-/sdcard/android/layout_tests/fast/css/css2-system-fonts.html
-/sdcard/android/layout_tests/fast/css/imageTileOpacity.html
-/sdcard/android/layout_tests/fast/css/font-face-remote.html
-/sdcard/android/layout_tests/fast/css/003.html
-/sdcard/android/layout_tests/fast/css/error-in-last-decl.html
-/sdcard/android/layout_tests/fast/css/zoom-property-parsing.html
-/sdcard/android/layout_tests/fast/css/style-outside-head.html
-/sdcard/android/layout_tests/fast/css/first-letter-capitalized.html
-/sdcard/android/layout_tests/fast/css/font-face-locally-installed.html
-/sdcard/android/layout_tests/fast/css/word-space-extra.html
-/sdcard/android/layout_tests/fast/css/first-letter-float.html
-/sdcard/android/layout_tests/fast/css/simple-selector-chain-parsing.html
-/sdcard/android/layout_tests/fast/css/xml-stylesheet-pi-not-in-prolog.xml
-/sdcard/android/layout_tests/fast/css/continuationCrash.html
-/sdcard/android/layout_tests/fast/css/vertical-align-lengths.html
-/sdcard/android/layout_tests/fast/css/first-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/beforeSelectorOnCodeElement.html
-/sdcard/android/layout_tests/fast/css/getFloatValueForUnit.html
-/sdcard/android/layout_tests/fast/css/first-letter-detach.html
-/sdcard/android/layout_tests/fast/css/line-height-font-order.html
-/sdcard/android/layout_tests/fast/css/font-face-unicode-range.html
-/sdcard/android/layout_tests/fast/css/layerZOrderCrash.html
-/sdcard/android/layout_tests/fast/css/007.html
-/sdcard/android/layout_tests/fast/css/import-rule-regression-11590.html
-/sdcard/android/layout_tests/fast/css/last-child-style-sharing.html
-/sdcard/android/layout_tests/fast/css/css3-modsel-22.html
-/sdcard/android/layout_tests/fast/css/ex-after-font-variant.html
-/sdcard/android/layout_tests/fast/css/quirk-orphaned-units.html
-/sdcard/android/layout_tests/fast/css/outline-auto-location.html
-/sdcard/android/layout_tests/fast/css/margin-top-bottom-dynamic.html
-/sdcard/android/layout_tests/fast/css/font-face-descriptor-multiple-values.html
-/sdcard/android/layout_tests/fast/css/empty-body-test.html
-/sdcard/android/layout_tests/fast/css/link-outside-head.html
-/sdcard/android/layout_tests/fast/css/font-size-negative.html
-/sdcard/android/layout_tests/fast/css/position-negative-top-margin.html
-/sdcard/android/layout_tests/fast/css/ZeroOpacityLayers.html
-/sdcard/android/layout_tests/fast/css/only-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/004.html
-/sdcard/android/layout_tests/fast/css/rtl-ordering.html
-/sdcard/android/layout_tests/fast/css/affected-by-hover-after-style-change.html
-/sdcard/android/layout_tests/fast/css/resize-corner-tracking.html
-/sdcard/android/layout_tests/fast/css/background-shorthand-invalid-url.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors.html
-/sdcard/android/layout_tests/fast/css/MarqueeLayoutTest.html
-/sdcard/android/layout_tests/fast/css/textCapitalizeEdgeCases.html
-/sdcard/android/layout_tests/fast/css/001.html
-/sdcard/android/layout_tests/fast/css/hsl-color.html
-/sdcard/android/layout_tests/fast/css/font-face-implicit-local-font.html
-/sdcard/android/layout_tests/fast/css/first-letter-recalculation.html
-/sdcard/android/layout_tests/fast/css/inline-properties-important.html
-/sdcard/android/layout_tests/fast/css/dynamic-sibling-selector.html
-/sdcard/android/layout_tests/fast/css/table-text-align-quirk.html
-/sdcard/android/layout_tests/fast/css/outline-auto-empty-rects.html
-/sdcard/android/layout_tests/fast/css/font-face-multiple-faces.html
-/sdcard/android/layout_tests/fast/css/rgb-float.html
-/sdcard/android/layout_tests/fast/css/pendingStylesheetFontSize.html
-/sdcard/android/layout_tests/fast/css/contentDivWithChildren.html
-/sdcard/android/layout_tests/fast/css/universal-hover-quirk.html
-/sdcard/android/layout_tests/fast/css/css3-nth-child.html
-/sdcard/android/layout_tests/fast/css/style-parsed-outside-head.html
-/sdcard/android/layout_tests/fast/css/percentage-non-integer.html
-/sdcard/android/layout_tests/fast/css/negative-nth-child.html
-/sdcard/android/layout_tests/fast/box-sizing/panels-one.html
-/sdcard/android/layout_tests/fast/box-sizing/percentage-height.html
-/sdcard/android/layout_tests/fast/box-sizing/box-sizing.html
-/sdcard/android/layout_tests/fast/box-sizing/panels-two.html
-/sdcard/android/layout_tests/fast/block/basic/minheight.html
-/sdcard/android/layout_tests/fast/block/basic/min-pref-width-nowrap-floats.html
-/sdcard/android/layout_tests/fast/block/basic/fieldset-stretch-to-legend.html
-/sdcard/android/layout_tests/fast/block/basic/white-space-pre-wraps.html
-/sdcard/android/layout_tests/fast/block/basic/adding-near-anonymous-block.html
-/sdcard/android/layout_tests/fast/block/basic/quirk-percent-height-grandchild.html
-/sdcard/android/layout_tests/fast/block/basic/001.html
-/sdcard/android/layout_tests/fast/block/basic/010.html
-/sdcard/android/layout_tests/fast/block/basic/quirk-height.html
-/sdcard/android/layout_tests/fast/block/basic/020.html
-/sdcard/android/layout_tests/fast/block/basic/002.html
-/sdcard/android/layout_tests/fast/block/basic/011.html
-/sdcard/android/layout_tests/fast/block/basic/text-indent-rtl.html
-/sdcard/android/layout_tests/fast/block/basic/021.html
-/sdcard/android/layout_tests/fast/block/basic/003.html
-/sdcard/android/layout_tests/fast/block/basic/012.html
-/sdcard/android/layout_tests/fast/block/basic/013.html
-/sdcard/android/layout_tests/fast/block/basic/004.html
-/sdcard/android/layout_tests/fast/block/basic/014.html
-/sdcard/android/layout_tests/fast/block/basic/005.html
-/sdcard/android/layout_tests/fast/block/basic/015.html
-/sdcard/android/layout_tests/fast/block/basic/006.html
-/sdcard/android/layout_tests/fast/block/basic/016.html
-/sdcard/android/layout_tests/fast/block/basic/007.html
-/sdcard/android/layout_tests/fast/block/basic/008.html
-/sdcard/android/layout_tests/fast/block/basic/009.html
-/sdcard/android/layout_tests/fast/block/basic/018.html
-/sdcard/android/layout_tests/fast/block/basic/019.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/001.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/002.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/003.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/004.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/005.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/006.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/007.html
-/sdcard/android/layout_tests/fast/block/positioning/059.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-short-rtl.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-short-ltr.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-replaced-float.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-positioned-overconstrained.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-2.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr-2.html
-/sdcard/android/layout_tests/fast/block/positioning/020.html
-/sdcard/android/layout_tests/fast/block/positioning/012.html
-/sdcard/android/layout_tests/fast/block/positioning/004.html
-/sdcard/android/layout_tests/fast/block/positioning/040.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-position-direction-strict.html
-/sdcard/android/layout_tests/fast/block/positioning/032.html
-/sdcard/android/layout_tests/fast/block/positioning/024.html
-/sdcard/android/layout_tests/fast/block/positioning/060.html
-/sdcard/android/layout_tests/fast/block/positioning/052.html
-/sdcard/android/layout_tests/fast/block/positioning/016.html
-/sdcard/android/layout_tests/fast/block/positioning/044.html
-/sdcard/android/layout_tests/fast/block/positioning/008.html
-/sdcard/android/layout_tests/fast/block/positioning/036.html
-/sdcard/android/layout_tests/fast/block/positioning/028.html
-/sdcard/android/layout_tests/fast/block/positioning/056.html
-/sdcard/android/layout_tests/fast/block/positioning/048.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-position-direction-quirk.html
-/sdcard/android/layout_tests/fast/block/positioning/replaced-inside-fixed-top-bottom.html
-/sdcard/android/layout_tests/fast/block/positioning/pref-width-change.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr-3.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-3.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl.html
-/sdcard/android/layout_tests/fast/block/positioning/001.html
-/sdcard/android/layout_tests/fast/block/positioning/021.html
-/sdcard/android/layout_tests/fast/block/positioning/013.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-block.html
-/sdcard/android/layout_tests/fast/block/positioning/005.html
-/sdcard/android/layout_tests/fast/block/positioning/041.html
-/sdcard/android/layout_tests/fast/block/positioning/033.html
-/sdcard/android/layout_tests/fast/block/positioning/025.html
-/sdcard/android/layout_tests/fast/block/positioning/061.html
-/sdcard/android/layout_tests/fast/block/positioning/017.html
-/sdcard/android/layout_tests/fast/block/positioning/053.html
-/sdcard/android/layout_tests/fast/block/positioning/009.html
-/sdcard/android/layout_tests/fast/block/positioning/045.html
-/sdcard/android/layout_tests/fast/block/positioning/037.html
-/sdcard/android/layout_tests/fast/block/positioning/029.html
-/sdcard/android/layout_tests/fast/block/positioning/057.html
-/sdcard/android/layout_tests/fast/block/positioning/049.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-with-html-border-quirks.html
-/sdcard/android/layout_tests/fast/block/positioning/leftmargin-topmargin.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-length-of-neg-666666.html
-/sdcard/android/layout_tests/fast/block/positioning/complex-percentage-height.html
-/sdcard/android/layout_tests/fast/block/positioning/auto-height-with-top-and-bottom.html
-/sdcard/android/layout_tests/fast/block/positioning/010.html
-/sdcard/android/layout_tests/fast/block/positioning/002.html
-/sdcard/android/layout_tests/fast/block/positioning/030.html
-/sdcard/android/layout_tests/fast/block/positioning/relayout-on-position-change.html
-/sdcard/android/layout_tests/fast/block/positioning/022.html
-/sdcard/android/layout_tests/fast/block/positioning/padding-percent.html
-/sdcard/android/layout_tests/fast/block/positioning/014.html
-/sdcard/android/layout_tests/fast/block/positioning/050.html
-/sdcard/android/layout_tests/fast/block/positioning/006.html
-/sdcard/android/layout_tests/fast/block/positioning/042.html
-/sdcard/android/layout_tests/fast/block/positioning/034.html
-/sdcard/android/layout_tests/fast/block/positioning/offsetLeft-offsetTop-borders.html
-/sdcard/android/layout_tests/fast/block/positioning/062.html
-/sdcard/android/layout_tests/fast/block/positioning/026.html
-/sdcard/android/layout_tests/fast/block/positioning/054.html
-/sdcard/android/layout_tests/fast/block/positioning/018.html
-/sdcard/android/layout_tests/fast/block/positioning/046.html
-/sdcard/android/layout_tests/fast/block/positioning/abs-inside-inline-rel.html
-/sdcard/android/layout_tests/fast/block/positioning/038.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-with-html-border-strict.html
-/sdcard/android/layout_tests/fast/block/positioning/058.html
-/sdcard/android/layout_tests/fast/block/positioning/negative-right-pos.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overconstrained.html
-/sdcard/android/layout_tests/fast/block/positioning/child-of-absolute-with-auto-height.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-replaced.html
-/sdcard/android/layout_tests/fast/block/positioning/height-change.html
-/sdcard/android/layout_tests/fast/block/positioning/window-height-change.html
-/sdcard/android/layout_tests/fast/block/positioning/011.html
-/sdcard/android/layout_tests/fast/block/positioning/003.html
-/sdcard/android/layout_tests/fast/block/positioning/move-with-auto-width.html
-/sdcard/android/layout_tests/fast/block/positioning/031.html
-/sdcard/android/layout_tests/fast/block/positioning/023.html
-/sdcard/android/layout_tests/fast/block/positioning/051.html
-/sdcard/android/layout_tests/fast/block/positioning/015.html
-/sdcard/android/layout_tests/fast/block/positioning/043.html
-/sdcard/android/layout_tests/fast/block/positioning/007.html
-/sdcard/android/layout_tests/fast/block/positioning/035.html
-/sdcard/android/layout_tests/fast/block/positioning/027.html
-/sdcard/android/layout_tests/fast/block/positioning/055.html
-/sdcard/android/layout_tests/fast/block/positioning/019.html
-/sdcard/android/layout_tests/fast/block/positioning/047.html
-/sdcard/android/layout_tests/fast/block/positioning/039.html
-/sdcard/android/layout_tests/fast/block/positioning/inline-block-relposition.html
-/sdcard/android/layout_tests/fast/block/float/vertical-move-relayout.html
-/sdcard/android/layout_tests/fast/block/float/tableshifting.html
-/sdcard/android/layout_tests/fast/block/float/table-relayout.html
-/sdcard/android/layout_tests/fast/block/float/br-with-clear-2.html
-/sdcard/android/layout_tests/fast/block/float/020.html
-/sdcard/android/layout_tests/fast/block/float/012.html
-/sdcard/android/layout_tests/fast/block/float/004.html
-/sdcard/android/layout_tests/fast/block/float/032.html
-/sdcard/android/layout_tests/fast/block/float/024.html
-/sdcard/android/layout_tests/fast/block/float/016.html
-/sdcard/android/layout_tests/fast/block/float/008.html
-/sdcard/android/layout_tests/fast/block/float/028.html
-/sdcard/android/layout_tests/fast/block/float/shrink-to-fit-width.html
-/sdcard/android/layout_tests/fast/block/float/clamped-right-float.html
-/sdcard/android/layout_tests/fast/block/float/independent-align-positioning.html
-/sdcard/android/layout_tests/fast/block/float/float-on-zero-height-line.html
-/sdcard/android/layout_tests/fast/block/float/nowrap-clear-min-width.html
-/sdcard/android/layout_tests/fast/block/float/overhanging-after-height-decrease-offsets.html
-/sdcard/android/layout_tests/fast/block/float/001.html
-/sdcard/android/layout_tests/fast/block/float/021.html
-/sdcard/android/layout_tests/fast/block/float/013.html
-/sdcard/android/layout_tests/fast/block/float/nopaint-after-layer-destruction2.html
-/sdcard/android/layout_tests/fast/block/float/005.html
-/sdcard/android/layout_tests/fast/block/float/033.html
-/sdcard/android/layout_tests/fast/block/float/025.html
-/sdcard/android/layout_tests/fast/block/float/017.html
-/sdcard/android/layout_tests/fast/block/float/009.html
-/sdcard/android/layout_tests/fast/block/float/float-in-float-hit-testing.html
-/sdcard/android/layout_tests/fast/block/float/029.html
-/sdcard/android/layout_tests/fast/block/float/4145535Crash.html
-/sdcard/android/layout_tests/fast/block/float/editable-text-overlapping-float.html
-/sdcard/android/layout_tests/fast/block/float/nestedAnonymousBlocks.html
-/sdcard/android/layout_tests/fast/block/float/intruding-painted-twice.html
-/sdcard/android/layout_tests/fast/block/float/010.html
-/sdcard/android/layout_tests/fast/block/float/002.html
-/sdcard/android/layout_tests/fast/block/float/dynamic-unfloat-pref-width.html
-/sdcard/android/layout_tests/fast/block/float/marquee-shrink-to-avoid-floats.html
-/sdcard/android/layout_tests/fast/block/float/030.html
-/sdcard/android/layout_tests/fast/block/float/022.html
-/sdcard/android/layout_tests/fast/block/float/014.html
-/sdcard/android/layout_tests/fast/block/float/006.html
-/sdcard/android/layout_tests/fast/block/float/034.html
-/sdcard/android/layout_tests/fast/block/float/relative-painted-twice.html
-/sdcard/android/layout_tests/fast/block/float/026.html
-/sdcard/android/layout_tests/fast/block/float/018.html
-/sdcard/android/layout_tests/fast/block/float/width-update-after-clear.html
-/sdcard/android/layout_tests/fast/block/float/nopaint-after-layer-destruction.html
-/sdcard/android/layout_tests/fast/block/float/float-in-float-painting.html
-/sdcard/android/layout_tests/fast/block/float/overhanging-after-height-decrease.html
-/sdcard/android/layout_tests/fast/block/float/float-avoidance.html
-/sdcard/android/layout_tests/fast/block/float/narrow-after-wide.html
-/sdcard/android/layout_tests/fast/block/float/multiple-float-positioning.html
-/sdcard/android/layout_tests/fast/block/float/br-with-clear.html
-/sdcard/android/layout_tests/fast/block/float/011.html
-/sdcard/android/layout_tests/fast/block/float/negative-margin-clear.html
-/sdcard/android/layout_tests/fast/block/float/003.html
-/sdcard/android/layout_tests/fast/block/float/031.html
-/sdcard/android/layout_tests/fast/block/float/023.html
-/sdcard/android/layout_tests/fast/block/float/015.html
-/sdcard/android/layout_tests/fast/block/float/007.html
-/sdcard/android/layout_tests/fast/block/float/035.html
-/sdcard/android/layout_tests/fast/block/float/027.html
-/sdcard/android/layout_tests/fast/block/float/019.html
-/sdcard/android/layout_tests/fast/block/float/nestedAnonymousBlocks2.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/059.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/empty-clear-blocks.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/010.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/negative-margins.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/002.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/020.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/101.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/030.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/012.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/040.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/022.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/004.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/103.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/032.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/006.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/042.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/016.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/034.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/062.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/044.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/026.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/018.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/028.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/056.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/038.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/058.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/100.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/001.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/011.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/102.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/021.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/003.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/031.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/005.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/041.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/104.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/033.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/015.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/025.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/043.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/035.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/017.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/027.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/045.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/063.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/037.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/019.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/055.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/029.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/039.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/057.html
-/sdcard/android/layout_tests/fast/runin/001.html
-/sdcard/android/layout_tests/fast/runin/002.html
-/sdcard/android/layout_tests/fast/parser/title-error-test.html
-/sdcard/android/layout_tests/fast/parser/comments.html
-/sdcard/android/layout_tests/fast/parser/fonts.html
-/sdcard/android/layout_tests/fast/parser/comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/comment-in-script.html
-/sdcard/android/layout_tests/fast/parser/broken-comments-vs-parsing-mode.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/xhtml-alternate-entities.xml
-/sdcard/android/layout_tests/fast/parser/nofoo-tags-inside-paragraph.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-textarea.html
-/sdcard/android/layout_tests/fast/parser/bad-xml-slash.html
-/sdcard/android/layout_tests/fast/parser/001.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-textarea.html
-/sdcard/android/layout_tests/fast/parser/tabs-in-scripts.html
-/sdcard/android/layout_tests/fast/parser/parseCommentsInTitles.html
-/sdcard/android/layout_tests/fast/parser/remove-block-in-residual-style.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/document-write-option.html
-/sdcard/android/layout_tests/fast/parser/style-script-head-test.html
-/sdcard/android/layout_tests/fast/parser/comment-in-textarea.html
-/sdcard/android/layout_tests/fast/layers/zindex-ridonkulous.html
-/sdcard/android/layout_tests/fast/layers/positioned-inside-root-with-margins.html
-/sdcard/android/layout_tests/fast/layers/layer-visibility-sublayer.html
-/sdcard/android/layout_tests/fast/layers/opacity-outline.html
-/sdcard/android/layout_tests/fast/layers/add-layer-with-nested-stacking.html
-/sdcard/android/layout_tests/fast/layers/layer-content-visibility-change.html
-/sdcard/android/layout_tests/fast/layers/zindex-inherit.html
-/sdcard/android/layout_tests/fast/layers/layer-visibility.html
-/sdcard/android/layout_tests/fast/layers/remove-layer-with-nested-stacking.html
-/sdcard/android/layout_tests/fast/layers/opacity-transforms.html
-/sdcard/android/layout_tests/fast/layers/overflow-scroll-auto-switch.html
-/sdcard/android/layout_tests/fast/layers/scroll-rect-to-visible.html
-/sdcard/android/layout_tests/fast/layers/opacity-stacking.html
-/sdcard/android/layout_tests/fast/history/clicked-link-is-visited.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/mask-negative-offset-repeat.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/negative-offset-repeat.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/negative-offset-repeat-transformed.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/noRepeatCorrectClip.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize02.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize11.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize03.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize12.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize04.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize13.html
-/sdcard/android/layout_tests/fast/backgrounds/size/zero.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize05.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize14.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize06.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize15.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize07.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize16.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize17.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize08.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize09.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize18.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize19.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize10.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize01.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-2.html
-/sdcard/android/layout_tests/fast/backgrounds/background-origin-root-element.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-3.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-4.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-5.html
-/sdcard/android/layout_tests/fast/backgrounds/background-position-1.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-6.html
-/sdcard/android/layout_tests/fast/backgrounds/opacity-on-document-element.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-mask.html
-/sdcard/android/layout_tests/fast/backgrounds/solid-color-context-restore.html
-/sdcard/android/layout_tests/fast/backgrounds/mask-composite.html
-/sdcard/android/layout_tests/fast/backgrounds/animated-svg-as-background.html
-/sdcard/android/layout_tests/fast/backgrounds/001.html
-/sdcard/android/layout_tests/fast/backgrounds/animated-gif-as-background.html
-/sdcard/android/layout_tests/fast/backgrounds/background-position-rounding.html
-/sdcard/android/layout_tests/fast/backgrounds/bgCompositeCopy.html
-/sdcard/android/layout_tests/fast/backgrounds/background-inherit-color-bug.html
-/sdcard/android/layout_tests/fast/backgrounds/animated-svg-as-mask.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-1.html
-/sdcard/android/layout_tests/fast/repaint/reflection-redraw.html
-/sdcard/android/layout_tests/fast/repaint/layer-full-repaint.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip-3.html
-/sdcard/android/layout_tests/fast/repaint/layer-outline-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/layer-hide-when-needs-layout.html
-/sdcard/android/layout_tests/fast/repaint/layer-outline.html
-/sdcard/android/layout_tests/fast/repaint/list-marker-2.html
-/sdcard/android/layout_tests/fast/repaint/table-section-overflow.html
-/sdcard/android/layout_tests/fast/repaint/body-background-image.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-strict-vertical.html
-/sdcard/android/layout_tests/fast/repaint/inline-outline-repaint.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-4.html
-/sdcard/android/layout_tests/fast/repaint/change-transform.html
-/sdcard/android/layout_tests/fast/repaint/fixed.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-8.html
-/sdcard/android/layout_tests/fast/repaint/erase-overflow.html
-/sdcard/android/layout_tests/fast/repaint/outline-child-repaint.html
-/sdcard/android/layout_tests/fast/repaint/float-overflow.html
-/sdcard/android/layout_tests/fast/repaint/containing-block-position-change.html
-/sdcard/android/layout_tests/fast/repaint/text-selection-rect-in-overflow.html
-/sdcard/android/layout_tests/fast/repaint/flexible-box-overflow-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-move.html
-/sdcard/android/layout_tests/fast/repaint/transform-absolute-child.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-10.html
-/sdcard/android/layout_tests/fast/repaint/float-move-during-layout.html
-/sdcard/android/layout_tests/fast/repaint/overflow-clip-subtree-layout.html
-/sdcard/android/layout_tests/fast/repaint/invisible-objects.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-strict-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/focus-layers.html
-/sdcard/android/layout_tests/fast/repaint/inline-color-change.html
-/sdcard/android/layout_tests/fast/repaint/table-col-background.html
-/sdcard/android/layout_tests/fast/repaint/selection-after-remove.html
-/sdcard/android/layout_tests/fast/repaint/dynamic-table-vertical-alignment-change.html
-/sdcard/android/layout_tests/fast/repaint/flexible-box-overflow.html
-/sdcard/android/layout_tests/fast/repaint/table-two-pass-layout-overpaint.html
-/sdcard/android/layout_tests/fast/repaint/overflow-into-content.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-vertical.html
-/sdcard/android/layout_tests/fast/repaint/border-repaint-glitch.html
-/sdcard/android/layout_tests/fast/repaint/continuation-after-outline.html
-/sdcard/android/layout_tests/fast/repaint/intermediate-layout-position.html
-/sdcard/android/layout_tests/fast/repaint/table-section-repaint.html
-/sdcard/android/layout_tests/fast/repaint/clipped-relative.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-1.html
-/sdcard/android/layout_tests/fast/repaint/backgroundSizeRepaint.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-dynamic.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-5.html
-/sdcard/android/layout_tests/fast/repaint/text-shadow-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/caret-outside-block.html
-/sdcard/android/layout_tests/fast/repaint/renderer-destruction-by-invalidateSelection-crash.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-9.html
-/sdcard/android/layout_tests/fast/repaint/transform-repaint-descendants.html
-/sdcard/android/layout_tests/fast/repaint/layout-state-relative.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/border-fit-lines.html
-/sdcard/android/layout_tests/fast/repaint/repaint-resized-overflow.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-3509.html
-/sdcard/android/layout_tests/fast/repaint/inline-block-overflow.html
-/sdcard/android/layout_tests/fast/repaint/button-spurious-layout-hint.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6278.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-v.html
-/sdcard/android/layout_tests/fast/repaint/delete-into-nested-block.html
-/sdcard/android/layout_tests/fast/repaint/float-overflow-right.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-collapsed-border.html
-/sdcard/android/layout_tests/fast/repaint/selection-after-delete.html
-/sdcard/android/layout_tests/fast/repaint/lines-with-layout-delta.html
-/sdcard/android/layout_tests/fast/repaint/layout-state-only-positioned.html
-/sdcard/android/layout_tests/fast/repaint/table-extra-bottom-grow.html
-/sdcard/android/layout_tests/fast/repaint/transform-relative-position.html
-/sdcard/android/layout_tests/fast/repaint/selection-gap-overflow-scroll.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-skipped.html
-/sdcard/android/layout_tests/fast/repaint/line-overflow.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-2.html
-/sdcard/android/layout_tests/fast/repaint/table-row.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-6.html
-/sdcard/android/layout_tests/fast/repaint/table-outer-border.html
-/sdcard/android/layout_tests/fast/repaint/overflow-scroll-delete.html
-/sdcard/android/layout_tests/fast/repaint/layer-visibility.html
-/sdcard/android/layout_tests/fast/repaint/border-radius-repaint.html
-/sdcard/android/layout_tests/fast/repaint/table-collapsed-border.html
-/sdcard/android/layout_tests/fast/repaint/transform-translate.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-7235.html
-/sdcard/android/layout_tests/fast/repaint/4776765.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6473.html
-/sdcard/android/layout_tests/fast/repaint/intermediate-layout-position-clip.html
-/sdcard/android/layout_tests/fast/repaint/focus-ring.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-vertical-overflow.html
-/sdcard/android/layout_tests/fast/repaint/create-layer-repaint.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip-2.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6388.html
-/sdcard/android/layout_tests/fast/repaint/overflow-outline-repaint.html
-/sdcard/android/layout_tests/fast/repaint/content-into-overflow.html
-/sdcard/android/layout_tests/fast/repaint/static-to-positioned.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-5699.html
-/sdcard/android/layout_tests/fast/repaint/transform-absolute-in-positioned-container.html
-/sdcard/android/layout_tests/fast/repaint/outline-repaint-glitch.html
-/sdcard/android/layout_tests/fast/repaint/overflow-delete-line.html
-/sdcard/android/layout_tests/fast/repaint/transform-disable-layoutstate.html
-/sdcard/android/layout_tests/fast/repaint/list-marker.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-3.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-7.html
-/sdcard/android/layout_tests/fast/repaint/outline-inset.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-h.html
-/sdcard/android/layout_tests/fast/repaint/4774354.html
-/sdcard/android/layout_tests/fast/repaint/clip-with-layout-delta.html
-/sdcard/android/layout_tests/fast/repaint/control-clip.html
-/sdcard/android/layout_tests/fast/repaint/selected-replaced.html
-/sdcard/android/layout_tests/fast/repaint/text-selection-rect-in-overflow-2.html
-/sdcard/android/layout_tests/fast/repaint/make-children-non-inline.html
-/sdcard/android/layout_tests/fast/repaint/text-shadow.html
-/sdcard/android/layout_tests/fast/repaint/outline-shrinking.html
-/sdcard/android/layout_tests/fast/repaint/layer-child-outline.html
-/sdcard/android/layout_tests/fast/loader/start-load-in-unload.html
-/sdcard/android/layout_tests/fast/loader/text-document-wrapping.html
-/sdcard/android/layout_tests/fast/xsl/document-function.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-extra-content-at-end.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-enc.xml
-/sdcard/android/layout_tests/fast/xsl/xslt_unicode.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-import-depth.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-enc16.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-enc16to16.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-missing-namespace-in-xslt.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-enc-cyr.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-relative-path.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-mismatched-tags-in-xslt.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-entity.xml
-/sdcard/android/layout_tests/fast/canvas/fillrect-gradient-zero-stops.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transforms-during-path.html
-/sdcard/android/layout_tests/fast/canvas/drawImage.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-7.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-4.html
-/sdcard/android/layout_tests/fast/canvas/canvas-text-baseline.html
-/sdcard/android/layout_tests/fast/canvas/canvas-as-image-incremental-repaint.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-1.html
-/sdcard/android/layout_tests/fast/canvas/canvas-size-change-after-layout.html
-/sdcard/android/layout_tests/fast/canvas/canvas-resize-reset.html
-/sdcard/android/layout_tests/fast/canvas/canvas-bg.html
-/sdcard/android/layout_tests/fast/canvas/zero-size-fill-rect.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-6.html
-/sdcard/android/layout_tests/fast/canvas/patternfill-repeat.html
-/sdcard/android/layout_tests/fast/canvas/image-object-in-canvas.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-3.html
-/sdcard/android/layout_tests/fast/canvas/canvas-composite.html
-/sdcard/android/layout_tests/fast/canvas/gradient-add-second-start-end-stop.html
-/sdcard/android/layout_tests/fast/canvas/quadraticCurveTo.xml
-/sdcard/android/layout_tests/fast/canvas/fill-stroke-clip-reset-path.html
-/sdcard/android/layout_tests/fast/canvas/canvas-text-alignment.html
-/sdcard/android/layout_tests/fast/canvas/canvas-incremental-repaint.html
-/sdcard/android/layout_tests/fast/canvas/canvasDrawingIntoSelf.html
-/sdcard/android/layout_tests/fast/canvas/canvas-as-image.html
-/sdcard/android/layout_tests/fast/canvas/canvas-before-css.html
-/sdcard/android/layout_tests/fast/canvas/canvas-incremental-repaint-2.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-5.html
-/sdcard/android/layout_tests/fast/canvas/fillrect_gradient.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-2.html
-/sdcard/android/layout_tests/fast/frames/contentWindow_Frame.html
-/sdcard/android/layout_tests/fast/frames/onlyCommentInIFrame.html
-/sdcard/android/layout_tests/fast/frames/frame-src-attribute.html
-/sdcard/android/layout_tests/fast/frames/frameElement-frame.html
-/sdcard/android/layout_tests/fast/frames/empty-cols-attribute.html
-/sdcard/android/layout_tests/fast/frames/iframe-scrolling-attribute.html
-/sdcard/android/layout_tests/fast/frames/inline-object-inside-frameset.html
-/sdcard/android/layout_tests/fast/frames/valid.html
-/sdcard/android/layout_tests/fast/frames/no-frame-borders.html
-/sdcard/android/layout_tests/fast/frames/empty-frame-src.html
-/sdcard/android/layout_tests/fast/frames/calculate-round.html
-/sdcard/android/layout_tests/fast/frames/frame-navigation.html
-/sdcard/android/layout_tests/fast/frames/001.html
-/sdcard/android/layout_tests/fast/frames/invalid.html
-/sdcard/android/layout_tests/fast/frames/frameset-style-recalc.html
-/sdcard/android/layout_tests/fast/frames/viewsource-attribute.html
-/sdcard/android/layout_tests/fast/frames/002.html
-/sdcard/android/layout_tests/fast/frames/calculate-relative.html
-/sdcard/android/layout_tests/fast/frames/calculate-order.html
-/sdcard/android/layout_tests/fast/frames/calculate-percentage.html
-/sdcard/android/layout_tests/fast/frames/iframe-text-contents.html
-/sdcard/android/layout_tests/fast/frames/frame-scrolling-attribute.html
-/sdcard/android/layout_tests/fast/frames/contentWindow_iFrame.html
-/sdcard/android/layout_tests/fast/frames/calculate-fixed.html
-/sdcard/android/layout_tests/fast/frames/frame-element-name.html
-/sdcard/android/layout_tests/fast/frames/frame-set-whitespace-attributes.html
-/sdcard/android/layout_tests/fast/frames/iframe-with-frameborder.html
-/sdcard/android/layout_tests/fast/frames/frameElement-iframe.html
-/sdcard/android/layout_tests/fast/reflections/inline-crash.html
-/sdcard/android/layout_tests/fast/reflections/reflection-nesting.html
-/sdcard/android/layout_tests/fast/reflections/reflection-overflow-hidden.html
-/sdcard/android/layout_tests/fast/reflections/table-cell.html
-/sdcard/android/layout_tests/fast/reflections/reflection-masks.html
-/sdcard/android/layout_tests/fast/reflections/reflection-direction.html
-/sdcard/android/layout_tests/transforms/2d/zoom-menulist.html
-/sdcard/android/layout_tests/transforms/2d/transform-origin-borderbox.html
-/sdcard/android/layout_tests/transforms/2d/transform-borderbox.html
-/sdcard/android/layout_tests/transforms/2d/compound-transforms-vs-containers.html
+/sdcard/android/layout_tests/accessibility/image-map1.html
+/sdcard/android/layout_tests/accessibility/aria-labelledby-on-input.html
+/sdcard/android/layout_tests/accessibility/aria-labelledby-stay-within.html
+/sdcard/android/layout_tests/accessibility/table-with-rules.html
+/sdcard/android/layout_tests/accessibility/aria-describedby-on-input.html
+/sdcard/android/layout_tests/accessibility/table-detection.html
+/sdcard/android/layout_tests/accessibility/table-with-aria-role.html
+/sdcard/android/layout_tests/accessibility/image-map2.html
+/sdcard/android/layout_tests/accessibility/table-cell-spans.html
+/sdcard/android/layout_tests/accessibility/table-cells.html
+/sdcard/android/layout_tests/accessibility/lists.html
+/sdcard/android/layout_tests/accessibility/plugin.html
+/sdcard/android/layout_tests/accessibility/table-sections.html
+/sdcard/android/layout_tests/accessibility/table-one-cell.html
+/sdcard/android/layout_tests/accessibility/internal-link-anchors2.html
+/sdcard/android/layout_tests/accessibility/radio-button-group-members.html
+/sdcard/android/layout_tests/accessibility/table-attributes.html
+/sdcard/android/layout_tests/accessibility/input-slider.html
+/sdcard/android/layout_tests/accessibility/aria-tables.html
+/sdcard/android/layout_tests/accessibility/legend.html
+/sdcard/android/layout_tests/accessibility/aria-roles.html
/sdcard/android/layout_tests/animations/animation-drt-api-multiple-keyframes.html
/sdcard/android/layout_tests/animations/animation-drt-api.html
-/sdcard/android/layout_tests/scrollbars/scrollbar-orientation.html
-/sdcard/android/layout_tests/scrollbars/scrollbar-buttons.html
-/sdcard/android/layout_tests/scrollbars/basic-scrollbar.html
-/sdcard/android/layout_tests/scrollbars/overflow-scrollbar-combinations.html
-/sdcard/android/layout_tests/scrollbars/disabled-scrollbar.html
-/sdcard/android/layout_tests/scrollbars/listbox-scrollbar-combinations.html
+/sdcard/android/layout_tests/compositing/repaint/content-into-overflow.html
+/sdcard/android/layout_tests/compositing/repaint/overflow-into-content.html
+/sdcard/android/layout_tests/compositing/repaint/become-overlay-composited-layer.html
+/sdcard/android/layout_tests/compositing/repaint/layer-repaint-rects.html
+/sdcard/android/layout_tests/compositing/overflow/ancestor-overflow.html
+/sdcard/android/layout_tests/compositing/overflow/overflow-scroll.html
+/sdcard/android/layout_tests/compositing/overflow/overflow-positioning.html
+/sdcard/android/layout_tests/compositing/overflow/parent-overflow.html
+/sdcard/android/layout_tests/compositing/color-matching/image-color-matching.html
+/sdcard/android/layout_tests/compositing/geometry/root-layer-update.html
+/sdcard/android/layout_tests/compositing/geometry/outline-change.html
+/sdcard/android/layout_tests/compositing/reflections/reflection-on-composited.html
+/sdcard/android/layout_tests/compositing/self-painting-layers.html
+/sdcard/android/layout_tests/compositing/direct-image-compositing.html
+/sdcard/android/layout_tests/compositing/layers-inside-overflow-scroll.html
+/sdcard/android/layout_tests/compositing/generated-content.html
+/sdcard/android/layout_tests/compositing/sibling-positioning.html
+/sdcard/android/layout_tests/css1/color_and_background/background_color.html
+/sdcard/android/layout_tests/css1/color_and_background/color.html
+/sdcard/android/layout_tests/css1/color_and_background/background.html
+/sdcard/android/layout_tests/css1/color_and_background/background_repeat.html
+/sdcard/android/layout_tests/css1/color_and_background/background_image.html
+/sdcard/android/layout_tests/css1/color_and_background/background_position.html
+/sdcard/android/layout_tests/css1/color_and_background/background_attachment.html
+/sdcard/android/layout_tests/css1/pseudo/firstline.html
+/sdcard/android/layout_tests/css1/pseudo/pseudo_elements_in_selectors.html
+/sdcard/android/layout_tests/css1/pseudo/multiple_pseudo_elements.html
+/sdcard/android/layout_tests/css1/pseudo/firstletter.html
+/sdcard/android/layout_tests/css1/pseudo/anchor.html
+/sdcard/android/layout_tests/css1/text_properties/text_align.html
+/sdcard/android/layout_tests/css1/text_properties/line_height.html
+/sdcard/android/layout_tests/css1/text_properties/text_transform.html
+/sdcard/android/layout_tests/css1/text_properties/word_spacing.html
+/sdcard/android/layout_tests/css1/text_properties/letter_spacing.html
+/sdcard/android/layout_tests/css1/text_properties/vertical_align.html
+/sdcard/android/layout_tests/css1/text_properties/text_indent.html
+/sdcard/android/layout_tests/css1/text_properties/text_decoration.html
+/sdcard/android/layout_tests/css1/basic/containment.html
+/sdcard/android/layout_tests/css1/basic/id_as_selector.html
+/sdcard/android/layout_tests/css1/basic/comments.html
+/sdcard/android/layout_tests/css1/basic/class_as_selector.html
+/sdcard/android/layout_tests/css1/basic/contextual_selectors.html
+/sdcard/android/layout_tests/css1/basic/inheritance.html
+/sdcard/android/layout_tests/css1/basic/grouping.html
+/sdcard/android/layout_tests/css1/font_properties/font_weight.html
+/sdcard/android/layout_tests/css1/font_properties/font_size.html
+/sdcard/android/layout_tests/css1/font_properties/font.html
+/sdcard/android/layout_tests/css1/font_properties/font_style.html
+/sdcard/android/layout_tests/css1/font_properties/font_family.html
+/sdcard/android/layout_tests/css1/font_properties/font_variant.html
+/sdcard/android/layout_tests/css1/units/percentage_units.html
+/sdcard/android/layout_tests/css1/units/color_units.html
+/sdcard/android/layout_tests/css1/units/length_units.html
+/sdcard/android/layout_tests/css1/units/urls.html
+/sdcard/android/layout_tests/css1/cascade/important.html
+/sdcard/android/layout_tests/css1/cascade/cascade_order.html
+/sdcard/android/layout_tests/css1/box_properties/border_width.html
+/sdcard/android/layout_tests/css1/box_properties/margin.html
+/sdcard/android/layout_tests/css1/box_properties/width.html
+/sdcard/android/layout_tests/css1/box_properties/padding_left.html
+/sdcard/android/layout_tests/css1/box_properties/margin_left_inline.html
+/sdcard/android/layout_tests/css1/box_properties/clear.html
+/sdcard/android/layout_tests/css1/box_properties/border_left_width.html
+/sdcard/android/layout_tests/css1/box_properties/margin_left.html
+/sdcard/android/layout_tests/css1/box_properties/padding_top.html
+/sdcard/android/layout_tests/css1/box_properties/padding_bottom.html
+/sdcard/android/layout_tests/css1/box_properties/border_style_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_top_width_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_top_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_style.html
+/sdcard/android/layout_tests/css1/box_properties/border_top.html
+/sdcard/android/layout_tests/css1/box_properties/margin_bottom_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_bottom_width.html
+/sdcard/android/layout_tests/css1/box_properties/margin_bottom.html
+/sdcard/android/layout_tests/css1/box_properties/float_elements_in_series.html
+/sdcard/android/layout_tests/css1/box_properties/float_on_text_elements.html
+/sdcard/android/layout_tests/css1/box_properties/padding.html
+/sdcard/android/layout_tests/css1/box_properties/border_right_width_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_right_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_right_width.html
+/sdcard/android/layout_tests/css1/box_properties/margin_right.html
+/sdcard/android/layout_tests/css1/box_properties/border_width_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_inline.html
+/sdcard/android/layout_tests/css1/box_properties/clear_float.html
+/sdcard/android/layout_tests/css1/box_properties/border.html
+/sdcard/android/layout_tests/css1/box_properties/padding_left_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_left_width_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_left_inline.html
+/sdcard/android/layout_tests/css1/box_properties/padding_top_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_left.html
+/sdcard/android/layout_tests/css1/box_properties/padding_bottom_inline.html
+/sdcard/android/layout_tests/css1/box_properties/margin_top_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_top_width.html
+/sdcard/android/layout_tests/css1/box_properties/border_bottom_width_inline.html
+/sdcard/android/layout_tests/css1/box_properties/acid_test.html
+/sdcard/android/layout_tests/css1/box_properties/border_bottom_inline.html
+/sdcard/android/layout_tests/css1/box_properties/margin_top.html
+/sdcard/android/layout_tests/css1/box_properties/border_bottom.html
+/sdcard/android/layout_tests/css1/box_properties/padding_right_inline.html
+/sdcard/android/layout_tests/css1/box_properties/float_margin.html
+/sdcard/android/layout_tests/css1/box_properties/padding_right.html
+/sdcard/android/layout_tests/css1/box_properties/padding_inline.html
+/sdcard/android/layout_tests/css1/box_properties/float.html
+/sdcard/android/layout_tests/css1/box_properties/height.html
+/sdcard/android/layout_tests/css1/box_properties/margin_right_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_color_inline.html
+/sdcard/android/layout_tests/css1/box_properties/border_right.html
+/sdcard/android/layout_tests/css1/box_properties/border_color.html
+/sdcard/android/layout_tests/css1/box_properties/margin_inline.html
+/sdcard/android/layout_tests/css1/conformance/forward_compatible_parsing.html
+/sdcard/android/layout_tests/css1/formatting_model/floating_elements.html
+/sdcard/android/layout_tests/css1/formatting_model/horizontal_formatting.html
+/sdcard/android/layout_tests/css1/formatting_model/vertical_formatting.html
+/sdcard/android/layout_tests/css1/formatting_model/height_of_lines.html
+/sdcard/android/layout_tests/css1/formatting_model/inline_elements.html
+/sdcard/android/layout_tests/css1/formatting_model/canvas.html
+/sdcard/android/layout_tests/css1/formatting_model/replaced_elements.html
+/sdcard/android/layout_tests/css1/classification/list_style_type.html
+/sdcard/android/layout_tests/css1/classification/list_style_image.html
+/sdcard/android/layout_tests/css1/classification/list_style_position.html
+/sdcard/android/layout_tests/css1/classification/display.html
+/sdcard/android/layout_tests/css1/classification/list_style.html
+/sdcard/android/layout_tests/css1/classification/white_space.html
/sdcard/android/layout_tests/css2.1/t040103-ident-03-c.html
/sdcard/android/layout_tests/css2.1/t0804-c5509-padn-l-00-b-ag.html
/sdcard/android/layout_tests/css2.1/t1205-c563-list-type-00-b.html
@@ -3017,112 +633,2631 @@
/sdcard/android/layout_tests/css2.1/t1202-counters-13-b.html
/sdcard/android/layout_tests/css2.1/t140201-c533-bgimage-00-a.html
/sdcard/android/layout_tests/css2.1/t040105-atkeyw-00-b.html
-/sdcard/android/layout_tests/css1/color_and_background/background_color.html
-/sdcard/android/layout_tests/css1/color_and_background/color.html
-/sdcard/android/layout_tests/css1/color_and_background/background.html
-/sdcard/android/layout_tests/css1/color_and_background/background_repeat.html
-/sdcard/android/layout_tests/css1/color_and_background/background_image.html
-/sdcard/android/layout_tests/css1/color_and_background/background_position.html
-/sdcard/android/layout_tests/css1/color_and_background/background_attachment.html
-/sdcard/android/layout_tests/css1/pseudo/firstline.html
-/sdcard/android/layout_tests/css1/pseudo/pseudo_elements_in_selectors.html
-/sdcard/android/layout_tests/css1/pseudo/multiple_pseudo_elements.html
-/sdcard/android/layout_tests/css1/pseudo/firstletter.html
-/sdcard/android/layout_tests/css1/pseudo/anchor.html
-/sdcard/android/layout_tests/css1/text_properties/text_align.html
-/sdcard/android/layout_tests/css1/text_properties/line_height.html
-/sdcard/android/layout_tests/css1/text_properties/text_transform.html
-/sdcard/android/layout_tests/css1/text_properties/word_spacing.html
-/sdcard/android/layout_tests/css1/text_properties/letter_spacing.html
-/sdcard/android/layout_tests/css1/text_properties/vertical_align.html
-/sdcard/android/layout_tests/css1/text_properties/text_indent.html
-/sdcard/android/layout_tests/css1/text_properties/text_decoration.html
-/sdcard/android/layout_tests/css1/basic/containment.html
-/sdcard/android/layout_tests/css1/basic/id_as_selector.html
-/sdcard/android/layout_tests/css1/basic/comments.html
-/sdcard/android/layout_tests/css1/basic/class_as_selector.html
-/sdcard/android/layout_tests/css1/basic/contextual_selectors.html
-/sdcard/android/layout_tests/css1/basic/inheritance.html
-/sdcard/android/layout_tests/css1/basic/grouping.html
-/sdcard/android/layout_tests/css1/font_properties/font_weight.html
-/sdcard/android/layout_tests/css1/font_properties/font_size.html
-/sdcard/android/layout_tests/css1/font_properties/font.html
-/sdcard/android/layout_tests/css1/font_properties/font_style.html
-/sdcard/android/layout_tests/css1/font_properties/font_family.html
-/sdcard/android/layout_tests/css1/font_properties/font_variant.html
-/sdcard/android/layout_tests/css1/units/percentage_units.html
-/sdcard/android/layout_tests/css1/units/color_units.html
-/sdcard/android/layout_tests/css1/units/length_units.html
-/sdcard/android/layout_tests/css1/units/urls.html
-/sdcard/android/layout_tests/css1/cascade/important.html
-/sdcard/android/layout_tests/css1/cascade/cascade_order.html
-/sdcard/android/layout_tests/css1/box_properties/border_width.html
-/sdcard/android/layout_tests/css1/box_properties/margin.html
-/sdcard/android/layout_tests/css1/box_properties/width.html
-/sdcard/android/layout_tests/css1/box_properties/padding_left.html
-/sdcard/android/layout_tests/css1/box_properties/margin_left_inline.html
-/sdcard/android/layout_tests/css1/box_properties/clear.html
-/sdcard/android/layout_tests/css1/box_properties/border_left_width.html
-/sdcard/android/layout_tests/css1/box_properties/margin_left.html
-/sdcard/android/layout_tests/css1/box_properties/padding_top.html
-/sdcard/android/layout_tests/css1/box_properties/padding_bottom.html
-/sdcard/android/layout_tests/css1/box_properties/border_style_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_top_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_top_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_style.html
-/sdcard/android/layout_tests/css1/box_properties/border_top.html
-/sdcard/android/layout_tests/css1/box_properties/margin_bottom_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_bottom_width.html
-/sdcard/android/layout_tests/css1/box_properties/margin_bottom.html
-/sdcard/android/layout_tests/css1/box_properties/float_elements_in_series.html
-/sdcard/android/layout_tests/css1/box_properties/float_on_text_elements.html
-/sdcard/android/layout_tests/css1/box_properties/padding.html
-/sdcard/android/layout_tests/css1/box_properties/border_right_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_right_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_right_width.html
-/sdcard/android/layout_tests/css1/box_properties/margin_right.html
-/sdcard/android/layout_tests/css1/box_properties/border_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_inline.html
-/sdcard/android/layout_tests/css1/box_properties/clear_float.html
-/sdcard/android/layout_tests/css1/box_properties/border.html
-/sdcard/android/layout_tests/css1/box_properties/padding_left_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_left_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_left_inline.html
-/sdcard/android/layout_tests/css1/box_properties/padding_top_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_left.html
-/sdcard/android/layout_tests/css1/box_properties/padding_bottom_inline.html
-/sdcard/android/layout_tests/css1/box_properties/margin_top_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_top_width.html
-/sdcard/android/layout_tests/css1/box_properties/border_bottom_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/acid_test.html
-/sdcard/android/layout_tests/css1/box_properties/border_bottom_inline.html
-/sdcard/android/layout_tests/css1/box_properties/margin_top.html
-/sdcard/android/layout_tests/css1/box_properties/border_bottom.html
-/sdcard/android/layout_tests/css1/box_properties/padding_right_inline.html
-/sdcard/android/layout_tests/css1/box_properties/float_margin.html
-/sdcard/android/layout_tests/css1/box_properties/padding_right.html
-/sdcard/android/layout_tests/css1/box_properties/padding_inline.html
-/sdcard/android/layout_tests/css1/box_properties/float.html
-/sdcard/android/layout_tests/css1/box_properties/height.html
-/sdcard/android/layout_tests/css1/box_properties/margin_right_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_color_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_right.html
-/sdcard/android/layout_tests/css1/box_properties/border_color.html
-/sdcard/android/layout_tests/css1/box_properties/margin_inline.html
-/sdcard/android/layout_tests/css1/conformance/forward_compatible_parsing.html
-/sdcard/android/layout_tests/css1/formatting_model/floating_elements.html
-/sdcard/android/layout_tests/css1/formatting_model/horizontal_formatting.html
-/sdcard/android/layout_tests/css1/formatting_model/vertical_formatting.html
-/sdcard/android/layout_tests/css1/formatting_model/height_of_lines.html
-/sdcard/android/layout_tests/css1/formatting_model/inline_elements.html
-/sdcard/android/layout_tests/css1/formatting_model/canvas.html
-/sdcard/android/layout_tests/css1/formatting_model/replaced_elements.html
-/sdcard/android/layout_tests/css1/classification/list_style_type.html
-/sdcard/android/layout_tests/css1/classification/list_style_image.html
-/sdcard/android/layout_tests/css1/classification/list_style_position.html
-/sdcard/android/layout_tests/css1/classification/display.html
-/sdcard/android/layout_tests/css1/classification/list_style.html
-/sdcard/android/layout_tests/css1/classification/white_space.html
+/sdcard/android/layout_tests/css3/css3-modsel-33.html
+/sdcard/android/layout_tests/css3/css3-modsel-35.html
+/sdcard/android/layout_tests/css3/css3-modsel-36.html
+/sdcard/android/layout_tests/css3/css3-modsel-37.html
+/sdcard/android/layout_tests/editing/input/emacs-ctrl-o.html
+/sdcard/android/layout_tests/editing/style/style-3681552-fix-001.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-013.html
+/sdcard/android/layout_tests/editing/style/style-3690704-fix.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-005.html
+/sdcard/android/layout_tests/editing/style/style-boundary-002.html
+/sdcard/android/layout_tests/editing/style/remove-underline-after-paragraph.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-009.html
+/sdcard/android/layout_tests/editing/style/5228141.html
+/sdcard/android/layout_tests/editing/style/block-style-004.html
+/sdcard/android/layout_tests/editing/style/apple-style-editable-mix.html
+/sdcard/android/layout_tests/editing/style/unbold-in-bold.html
+/sdcard/android/layout_tests/editing/style/typing-style-001.html
+/sdcard/android/layout_tests/editing/style/relative-font-size-change-004.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-010.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-002.html
+/sdcard/android/layout_tests/editing/style/style-3681552-fix-002.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-006.html
+/sdcard/android/layout_tests/editing/style/style-boundary-003.html
+/sdcard/android/layout_tests/editing/style/block-style-001.html
+/sdcard/android/layout_tests/editing/style/smoosh-styles-001.html
+/sdcard/android/layout_tests/editing/style/font-family-with-space.html
+/sdcard/android/layout_tests/editing/style/5084241.html
+/sdcard/android/layout_tests/editing/style/5065910.html
+/sdcard/android/layout_tests/editing/style/block-style-005.html
+/sdcard/android/layout_tests/editing/style/remove-underline-across-paragraph-in-bold.html
+/sdcard/android/layout_tests/editing/style/5279521.html
+/sdcard/android/layout_tests/editing/style/non-inheritable-styles.html
+/sdcard/android/layout_tests/editing/style/5046875-1.html
+/sdcard/android/layout_tests/editing/style/style-3998892-fix.html
+/sdcard/android/layout_tests/editing/style/typing-style-002.html
+/sdcard/android/layout_tests/editing/style/relative-font-size-change-001.html
+/sdcard/android/layout_tests/editing/style/4916887.html
+/sdcard/android/layout_tests/editing/style/remove-underline-across-paragraph.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-011.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-003.html
+/sdcard/android/layout_tests/editing/style/remove-underline.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-007.html
+/sdcard/android/layout_tests/editing/style/style-boundary-004.html
+/sdcard/android/layout_tests/editing/style/5017613-1.html
+/sdcard/android/layout_tests/editing/style/block-style-002.html
+/sdcard/android/layout_tests/editing/style/block-style-006.html
+/sdcard/android/layout_tests/editing/style/fontsize-1.html
+/sdcard/android/layout_tests/editing/style/5046875-2.html
+/sdcard/android/layout_tests/editing/style/typing-style-003.html
+/sdcard/android/layout_tests/editing/style/relative-font-size-change-002.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-012.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-004.html
+/sdcard/android/layout_tests/editing/style/designmode.html
+/sdcard/android/layout_tests/editing/style/block-styles-007.html
+/sdcard/android/layout_tests/editing/style/style-boundary-001.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-008.html
+/sdcard/android/layout_tests/editing/style/style-boundary-005.html
+/sdcard/android/layout_tests/editing/style/5017613-2.html
+/sdcard/android/layout_tests/editing/style/underline.html
+/sdcard/android/layout_tests/editing/style/block-style-003.html
+/sdcard/android/layout_tests/editing/style/smoosh-styles-003.html
+/sdcard/android/layout_tests/editing/style/remove-underline-after-paragraph-in-bold.html
+/sdcard/android/layout_tests/editing/style/highlight.html
+/sdcard/android/layout_tests/editing/style/relative-font-size-change-003.html
+/sdcard/android/layout_tests/editing/style/table-selection.html
+/sdcard/android/layout_tests/editing/style/create-block-for-style-001.html
+/sdcard/android/layout_tests/editing/unsupported-content/table-delete-001.html
+/sdcard/android/layout_tests/editing/unsupported-content/table-type-after.html
+/sdcard/android/layout_tests/editing/unsupported-content/table-delete-002.html
+/sdcard/android/layout_tests/editing/unsupported-content/table-type-before.html
+/sdcard/android/layout_tests/editing/unsupported-content/table-delete-003.html
+/sdcard/android/layout_tests/editing/unsupported-content/list-delete-001.html
+/sdcard/android/layout_tests/editing/unsupported-content/list-type-after.html
+/sdcard/android/layout_tests/editing/unsupported-content/list-type-before.html
+/sdcard/android/layout_tests/editing/unsupported-content/list-delete-003.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-011.html
+/sdcard/android/layout_tests/editing/inserting/4960120-1.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-023.html
+/sdcard/android/layout_tests/editing/inserting/insert-paragraph-04.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-007.html
+/sdcard/android/layout_tests/editing/inserting/5058163-2.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-019.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-003.html
+/sdcard/android/layout_tests/editing/inserting/5607069-2.html
+/sdcard/android/layout_tests/editing/inserting/6633727.html
+/sdcard/android/layout_tests/editing/inserting/6703873.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-003.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-003.html
+/sdcard/android/layout_tests/editing/inserting/4875189-1.html
+/sdcard/android/layout_tests/editing/inserting/typing-003.html
+/sdcard/android/layout_tests/editing/inserting/insert-3907422-fix.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-020.html
+/sdcard/android/layout_tests/editing/inserting/before-after-input-element.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-004.html
+/sdcard/android/layout_tests/editing/inserting/insert-paragraph-01.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-016.html
+/sdcard/android/layout_tests/editing/inserting/5510537.html
+/sdcard/android/layout_tests/editing/inserting/4959067.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-008.html
+/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-001.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-001.html
+/sdcard/android/layout_tests/editing/inserting/paragraph-separator-02.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-013.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-025.html
+/sdcard/android/layout_tests/editing/inserting/insert-3654864-fix.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-009.html
+/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-002.html
+/sdcard/android/layout_tests/editing/inserting/editable-html-element.html
+/sdcard/android/layout_tests/editing/inserting/5418891.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-005.html
+/sdcard/android/layout_tests/editing/inserting/insert-tab-002.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-005.html
+/sdcard/android/layout_tests/editing/inserting/line-break.html
+/sdcard/android/layout_tests/editing/inserting/5549929-3.html
+/sdcard/android/layout_tests/editing/inserting/typing-tab-designmode-forms.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-010.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-022.html
+/sdcard/android/layout_tests/editing/inserting/insert-paragraph-03.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-006.html
+/sdcard/android/layout_tests/editing/inserting/5058163-1.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-018.html
+/sdcard/android/layout_tests/editing/inserting/paragraph-separator-in-table-2.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-002.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-002.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-002.html
+/sdcard/android/layout_tests/editing/inserting/typing-002.html
+/sdcard/android/layout_tests/editing/inserting/insert-3800346-fix.html
+/sdcard/android/layout_tests/editing/inserting/typing-around-image-001.html
+/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-003.html
+/sdcard/android/layout_tests/editing/inserting/insert-text-with-newlines.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-003.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-015.html
+/sdcard/android/layout_tests/editing/inserting/insert-at-end-02.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-027.html
+/sdcard/android/layout_tests/editing/inserting/insert-3659587-fix.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-007.html
+/sdcard/android/layout_tests/editing/inserting/insert-tab-004.html
+/sdcard/android/layout_tests/editing/inserting/editable-inline-element.html
+/sdcard/android/layout_tests/editing/inserting/paragraph-separator-01.html
+/sdcard/android/layout_tests/editing/inserting/insert-3851164-fix.html
+/sdcard/android/layout_tests/editing/inserting/5156401-2.html
+/sdcard/android/layout_tests/editing/inserting/4960120-2.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-012.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-024.html
+/sdcard/android/layout_tests/editing/inserting/multiple-lines-selected.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-008.html
+/sdcard/android/layout_tests/editing/inserting/insert-paragraph-05.html
+/sdcard/android/layout_tests/editing/inserting/insert-3778059-fix.html
+/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-001.html
+/sdcard/android/layout_tests/editing/inserting/5607069-3.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-004.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-004.html
+/sdcard/android/layout_tests/editing/inserting/insert-tab-001.html
+/sdcard/android/layout_tests/editing/inserting/4875189-2.html
+/sdcard/android/layout_tests/editing/inserting/5549929-2.html
+/sdcard/android/layout_tests/editing/inserting/editing-empty-divs.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-021.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-005.html
+/sdcard/android/layout_tests/editing/inserting/insert-paragraph-02.html
+/sdcard/android/layout_tests/editing/inserting/insert-3786362-fix.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-017.html
+/sdcard/android/layout_tests/editing/inserting/paragraph-separator-in-table-1.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-001.html
+/sdcard/android/layout_tests/editing/inserting/insert-space-in-empty-doc.html
+/sdcard/android/layout_tests/editing/inserting/insert-after-delete-001.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-001.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-001.html
+/sdcard/android/layout_tests/editing/inserting/typing-001.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-009.html
+/sdcard/android/layout_tests/editing/inserting/4278698.html
+/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-002.html
+/sdcard/android/layout_tests/editing/inserting/5002441.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-002.html
+/sdcard/android/layout_tests/editing/inserting/paragraph-separator-03.html
+/sdcard/android/layout_tests/editing/inserting/12882.html
+/sdcard/android/layout_tests/editing/inserting/insert-3775316-fix.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-014.html
+/sdcard/android/layout_tests/editing/inserting/edited-whitespace-1.html
+/sdcard/android/layout_tests/editing/inserting/insert-at-end-01.html
+/sdcard/android/layout_tests/editing/inserting/insert-div-026.html
+/sdcard/android/layout_tests/editing/inserting/break-blockquote-after-delete.html
+/sdcard/android/layout_tests/editing/inserting/redo.html
+/sdcard/android/layout_tests/editing/inserting/4840662.html
+/sdcard/android/layout_tests/editing/inserting/typing-around-br-001.html
+/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-003.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-006.html
+/sdcard/android/layout_tests/editing/inserting/insert-tab-003.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-006.html
+/sdcard/android/layout_tests/editing/execCommand/5142012-1.html
+/sdcard/android/layout_tests/editing/execCommand/hilitecolor.html
+/sdcard/android/layout_tests/editing/execCommand/format-block-with-braces.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-blockquote-test3.html
+/sdcard/android/layout_tests/editing/execCommand/4920742-1.html
+/sdcard/android/layout_tests/editing/execCommand/4924441.html
+/sdcard/android/layout_tests/editing/execCommand/create-list-with-hr.html
+/sdcard/android/layout_tests/editing/execCommand/format-block-with-trailing-br.html
+/sdcard/android/layout_tests/editing/execCommand/remove-formatting-2.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-selection.html
+/sdcard/android/layout_tests/editing/execCommand/strikethroughSelection.html
+/sdcard/android/layout_tests/editing/execCommand/5482023.html
+/sdcard/android/layout_tests/editing/execCommand/4786404-1.html
+/sdcard/android/layout_tests/editing/execCommand/remove-formatting.html
+/sdcard/android/layout_tests/editing/execCommand/findString.html
+/sdcard/android/layout_tests/editing/execCommand/italicizeByCharacter.html
+/sdcard/android/layout_tests/editing/execCommand/create-list-from-range-selection.html
+/sdcard/android/layout_tests/editing/execCommand/5190926.html
+/sdcard/android/layout_tests/editing/execCommand/insertHorizontalRule.html
+/sdcard/android/layout_tests/editing/execCommand/paste-1.html
+/sdcard/android/layout_tests/editing/execCommand/nsresponder-outdent.html
+/sdcard/android/layout_tests/editing/execCommand/toggle-compound-styles.html
+/sdcard/android/layout_tests/editing/execCommand/5080333-2.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-blockquote-test2.html
+/sdcard/android/layout_tests/editing/execCommand/5049671.html
+/sdcard/android/layout_tests/editing/execCommand/4920488.html
+/sdcard/android/layout_tests/editing/execCommand/nsresponder-indent.html
+/sdcard/android/layout_tests/editing/execCommand/indent-list-item.html
+/sdcard/android/layout_tests/editing/execCommand/4916402.html
+/sdcard/android/layout_tests/editing/execCommand/5138441.html
+/sdcard/android/layout_tests/editing/execCommand/insert-list-empty-div.html
+/sdcard/android/layout_tests/editing/execCommand/5481523.html
+/sdcard/android/layout_tests/editing/execCommand/print.html
+/sdcard/android/layout_tests/editing/execCommand/4641880-2.html
+/sdcard/android/layout_tests/editing/execCommand/4580583-2.html
+/sdcard/android/layout_tests/editing/execCommand/remove-list-item-1.html
+/sdcard/android/layout_tests/editing/execCommand/5569741.html
+/sdcard/android/layout_tests/editing/execCommand/findString-2.html
+/sdcard/android/layout_tests/editing/execCommand/modifyForeColorByCharacter.html
+/sdcard/android/layout_tests/editing/execCommand/5142012-2.html
+/sdcard/android/layout_tests/editing/execCommand/find-after-replace.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-blockquote-test4.html
+/sdcard/android/layout_tests/editing/execCommand/format-block.html
+/sdcard/android/layout_tests/editing/execCommand/5080333-1.html
+/sdcard/android/layout_tests/editing/execCommand/remove-list-from-range-selection.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-blockquote-test1.html
+/sdcard/android/layout_tests/editing/execCommand/5136770.html
+/sdcard/android/layout_tests/editing/execCommand/4916541.html
+/sdcard/android/layout_tests/editing/execCommand/4786404-2.html
+/sdcard/android/layout_tests/editing/execCommand/insertImage.html
+/sdcard/android/layout_tests/editing/execCommand/insert-list-and-stitch.html
+/sdcard/android/layout_tests/editing/execCommand/5573879.html
+/sdcard/android/layout_tests/editing/execCommand/4641880-1.html
+/sdcard/android/layout_tests/editing/execCommand/4580583-1.html
+/sdcard/android/layout_tests/editing/execCommand/4747450.html
+/sdcard/android/layout_tests/editing/execCommand/format-block-from-range-selection.html
+/sdcard/android/layout_tests/editing/execCommand/indent-empty-root.html
+/sdcard/android/layout_tests/editing/execCommand/indent-selection.html
+/sdcard/android/layout_tests/editing/execCommand/selectAll.html
+/sdcard/android/layout_tests/editing/execCommand/paste-2.html
+/sdcard/android/layout_tests/editing/pasteboard/subframe-dragndrop-1.html
+/sdcard/android/layout_tests/editing/pasteboard/innerText-inline-table.html
+/sdcard/android/layout_tests/editing/pasteboard/5156401-1.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-list-001.html
+/sdcard/android/layout_tests/editing/pasteboard/4242293-1.html
+/sdcard/android/layout_tests/editing/pasteboard/5032095.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-004.html
+/sdcard/android/layout_tests/editing/pasteboard/5247341.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-4035648-fix.html
+/sdcard/android/layout_tests/editing/pasteboard/4700297.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-003.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote.html
+/sdcard/android/layout_tests/editing/pasteboard/drop-link.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-3.html
+/sdcard/android/layout_tests/editing/pasteboard/4944770-1.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-015.html
+/sdcard/android/layout_tests/editing/pasteboard/5075944.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-match-style-001.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-4039777-fix.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-3.html
+/sdcard/android/layout_tests/editing/pasteboard/smart-paste-007.html
+/sdcard/android/layout_tests/editing/pasteboard/5483567.html
+/sdcard/android/layout_tests/editing/pasteboard/7955.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-blockquote.html
+/sdcard/android/layout_tests/editing/pasteboard/testcase-9507.html
+/sdcard/android/layout_tests/editing/pasteboard/input-field-1.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-001.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-001.html
+/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-2.html
+/sdcard/android/layout_tests/editing/pasteboard/block-wrappers-necessary.html
+/sdcard/android/layout_tests/editing/pasteboard/4861080.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-009.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete.html
+/sdcard/android/layout_tests/editing/pasteboard/5478250.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-012.html
+/sdcard/android/layout_tests/editing/pasteboard/prevent-block-nesting-01.html
+/sdcard/android/layout_tests/editing/pasteboard/8145-2.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-borders.html
+/sdcard/android/layout_tests/editing/pasteboard/5027857.html
+/sdcard/android/layout_tests/editing/pasteboard/smart-paste-004.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-start-list.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-008.html
+/sdcard/android/layout_tests/editing/pasteboard/4806874.html
+/sdcard/android/layout_tests/editing/pasteboard/emacs-ctrl-a-k-y.html
+/sdcard/android/layout_tests/editing/pasteboard/bad-placeholder.html
+/sdcard/android/layout_tests/editing/pasteboard/displaced-placeholder.html
+/sdcard/android/layout_tests/editing/pasteboard/5387578.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-1.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-010.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-006.html
+/sdcard/android/layout_tests/editing/pasteboard/5601583-1.html
+/sdcard/android/layout_tests/editing/pasteboard/4947130.html
+/sdcard/android/layout_tests/editing/pasteboard/pasting-tabs.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete-2.html
+/sdcard/android/layout_tests/editing/pasteboard/smart-paste-001.html
+/sdcard/android/layout_tests/editing/pasteboard/4076267-2.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-table-001.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-005.html
+/sdcard/android/layout_tests/editing/pasteboard/5089327.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-017.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-5.html
+/sdcard/android/layout_tests/editing/pasteboard/drop-text-without-selection.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-003.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-003.html
+/sdcard/android/layout_tests/editing/pasteboard/drag-drop-modifies-page.html
+/sdcard/android/layout_tests/editing/pasteboard/emacs-ctrl-k-y-001.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-after-blockquote.html
+/sdcard/android/layout_tests/editing/pasteboard/5071074.html
+/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-4.html
+/sdcard/android/layout_tests/editing/pasteboard/styled-element-markup.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-4038267-fix.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-002.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-2.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-pre-002.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-014.html
+/sdcard/android/layout_tests/editing/pasteboard/drag-drop-dead-frame.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-2.html
+/sdcard/android/layout_tests/editing/pasteboard/smart-paste-006.html
+/sdcard/android/layout_tests/editing/pasteboard/5368833.html
+/sdcard/android/layout_tests/editing/pasteboard/select-element-1.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-3.html
+/sdcard/android/layout_tests/editing/pasteboard/4641033.html
+/sdcard/android/layout_tests/editing/pasteboard/drag-image-to-contenteditable-in-iframe.html
+/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-1.html
+/sdcard/android/layout_tests/editing/pasteboard/copy-paste-bidi.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-008.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-011.html
+/sdcard/android/layout_tests/editing/pasteboard/8145-1.html
+/sdcard/android/layout_tests/editing/pasteboard/smart-paste-003.html
+/sdcard/android/layout_tests/editing/pasteboard/5075944-3.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-table-003.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-TIFF.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-007.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-019.html
+/sdcard/android/layout_tests/editing/pasteboard/undoable-fragment-removes.html
+/sdcard/android/layout_tests/editing/pasteboard/nested-blocks-with-text-field.html
+/sdcard/android/layout_tests/editing/pasteboard/4989774.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-unrendered-select.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-005.html
+/sdcard/android/layout_tests/editing/pasteboard/emacs-cntl-y-001.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete-1.html
+/sdcard/android/layout_tests/editing/pasteboard/unrendered-br.html
+/sdcard/android/layout_tests/editing/pasteboard/4631972.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-004.html
+/sdcard/android/layout_tests/editing/pasteboard/quirks-mode-br-1.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-4.html
+/sdcard/android/layout_tests/editing/pasteboard/4944770-2.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-table-cells.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-016.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-match-style-002.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-4.html
+/sdcard/android/layout_tests/editing/pasteboard/drag-selected-image-to-contenteditable.html
+/sdcard/android/layout_tests/editing/pasteboard/smart-paste-008.html
+/sdcard/android/layout_tests/editing/pasteboard/3976872.html
+/sdcard/android/layout_tests/editing/pasteboard/pasting-object.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-list.html
+/sdcard/android/layout_tests/editing/pasteboard/copy-standalone-image.html
+/sdcard/android/layout_tests/editing/pasteboard/displaced-generic-placeholder.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-002.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-002.html
+/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-3.html
+/sdcard/android/layout_tests/editing/pasteboard/5071074-2.html
+/sdcard/android/layout_tests/editing/pasteboard/display-block-on-spans.html
+/sdcard/android/layout_tests/editing/pasteboard/4242293.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-001.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-pre-001.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-start-blockquote.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-1.html
+/sdcard/android/layout_tests/editing/pasteboard/8145-3.html
+/sdcard/android/layout_tests/editing/pasteboard/5006779.html
+/sdcard/android/layout_tests/editing/pasteboard/smart-paste-005.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-009.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-2.html
+/sdcard/android/layout_tests/editing/pasteboard/merge-end-table.html
+/sdcard/android/layout_tests/editing/pasteboard/5065605.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-007.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-010.html
+/sdcard/android/layout_tests/editing/pasteboard/5028447.html
+/sdcard/android/layout_tests/editing/pasteboard/nested-blocks-with-text-area.html
+/sdcard/android/layout_tests/editing/pasteboard/4076267-3.html
+/sdcard/android/layout_tests/editing/pasteboard/4076267.html
+/sdcard/android/layout_tests/editing/pasteboard/smart-paste-002.html
+/sdcard/android/layout_tests/editing/pasteboard/5075944-2.html
+/sdcard/android/layout_tests/editing/pasteboard/5134759.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-006.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-text-018.html
+/sdcard/android/layout_tests/editing/pasteboard/paste-RTFD.html
+/sdcard/android/layout_tests/editing/pasteboard/cut-text-001.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-9.html
+/sdcard/android/layout_tests/editing/selection/fake-drag.html
+/sdcard/android/layout_tests/editing/selection/wrapped-line-caret-2.html
+/sdcard/android/layout_tests/editing/selection/unrendered-002.html
+/sdcard/android/layout_tests/editing/selection/3690703-2.html
+/sdcard/android/layout_tests/editing/selection/extend-by-character-005.html
+/sdcard/android/layout_tests/editing/selection/caret-rtl-2.html
+/sdcard/android/layout_tests/editing/selection/paragraph-granularity.html
+/sdcard/android/layout_tests/editing/selection/clear-selection.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-6.html
+/sdcard/android/layout_tests/editing/selection/drag-in-iframe.html
+/sdcard/android/layout_tests/editing/selection/unrendered-space.html
+/sdcard/android/layout_tests/editing/selection/extend-by-character-002.html
+/sdcard/android/layout_tests/editing/selection/4932260-2.html
+/sdcard/android/layout_tests/editing/selection/select-element-paragraph-boundary.html
+/sdcard/android/layout_tests/editing/selection/extend-by-sentence-001.html
+/sdcard/android/layout_tests/editing/selection/3690719.html
+/sdcard/android/layout_tests/editing/selection/editable-non-editable-crash.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-3.html
+/sdcard/android/layout_tests/editing/selection/replaced-boundaries-3.html
+/sdcard/android/layout_tests/editing/selection/move-by-sentence-linebreak.html
+/sdcard/android/layout_tests/editing/selection/move-by-character-005.html
+/sdcard/android/layout_tests/editing/selection/end-of-document.html
+/sdcard/android/layout_tests/editing/selection/selectNode.html
+/sdcard/android/layout_tests/editing/selection/editable-links.html
+/sdcard/android/layout_tests/editing/selection/extend-by-word-002.html
+/sdcard/android/layout_tests/editing/selection/move-by-character-002.html
+/sdcard/android/layout_tests/editing/selection/14971.html
+/sdcard/android/layout_tests/editing/selection/5131716-2.html
+/sdcard/android/layout_tests/editing/selection/5081257-1.html
+/sdcard/android/layout_tests/editing/selection/move-3875641-fix.html
+/sdcard/android/layout_tests/editing/selection/5099303.html
+/sdcard/android/layout_tests/editing/selection/move-by-line-002.html
+/sdcard/android/layout_tests/editing/selection/select-missing-image.html
+/sdcard/android/layout_tests/editing/selection/selection-3748164-fix.html
+/sdcard/android/layout_tests/editing/selection/4983858.html
+/sdcard/android/layout_tests/editing/selection/move-by-sentence-001.html
+/sdcard/android/layout_tests/editing/selection/table-caret-1.html
+/sdcard/android/layout_tests/editing/selection/move-by-word-001.html
+/sdcard/android/layout_tests/editing/selection/select-all-004.html
+/sdcard/android/layout_tests/editing/selection/5076323-2.html
+/sdcard/android/layout_tests/editing/selection/move-3875618-fix.html
+/sdcard/android/layout_tests/editing/selection/inline-table.html
+/sdcard/android/layout_tests/editing/selection/4895428-3.html
+/sdcard/android/layout_tests/editing/selection/caret-before-select.html
+/sdcard/android/layout_tests/editing/selection/select-all-001.html
+/sdcard/android/layout_tests/editing/selection/unrendered-003.html
+/sdcard/android/layout_tests/editing/selection/extend-by-character-006.html
+/sdcard/android/layout_tests/editing/selection/7152-1.html
+/sdcard/android/layout_tests/editing/selection/iframe.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-7.html
+/sdcard/android/layout_tests/editing/selection/select-all-iframe.html
+/sdcard/android/layout_tests/editing/selection/extend-by-character-003.html
+/sdcard/android/layout_tests/editing/selection/4932260-3.html
+/sdcard/android/layout_tests/editing/selection/4960116.html
+/sdcard/android/layout_tests/editing/selection/drag-to-contenteditable-iframe.html
+/sdcard/android/layout_tests/editing/selection/selectNodeContents.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-4.html
+/sdcard/android/layout_tests/editing/selection/focus-body.html
+/sdcard/android/layout_tests/editing/selection/designmode-no-caret.html
+/sdcard/android/layout_tests/editing/selection/5234383-1.html
+/sdcard/android/layout_tests/editing/selection/5232159.html
+/sdcard/android/layout_tests/editing/selection/4960137.html
+/sdcard/android/layout_tests/editing/selection/previous-line-position.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-1.html
+/sdcard/android/layout_tests/editing/selection/replaced-boundaries-1.html
+/sdcard/android/layout_tests/editing/selection/move-by-character-003.html
+/sdcard/android/layout_tests/editing/selection/4776665.html
+/sdcard/android/layout_tests/editing/selection/move-by-character-6.html
+/sdcard/android/layout_tests/editing/selection/image-before-linebreak.html
+/sdcard/android/layout_tests/editing/selection/move-between-blocks-no-001.html
+/sdcard/android/layout_tests/editing/selection/5131716-3.html
+/sdcard/android/layout_tests/editing/selection/5081257-2.html
+/sdcard/android/layout_tests/editing/selection/5354455-1.html
+/sdcard/android/layout_tests/editing/selection/expanding-selections2.html
+/sdcard/android/layout_tests/editing/selection/display-table-text.html
+/sdcard/android/layout_tests/editing/selection/13804.html
+/sdcard/android/layout_tests/editing/selection/table-caret-2.html
+/sdcard/android/layout_tests/editing/selection/expanding-selections.html
+/sdcard/android/layout_tests/editing/selection/node-removal-1.html
+/sdcard/android/layout_tests/editing/selection/5240265.html
+/sdcard/android/layout_tests/editing/selection/select-all-005.html
+/sdcard/android/layout_tests/editing/selection/5076323-3.html
+/sdcard/android/layout_tests/editing/selection/line-wrap-1.html
+/sdcard/android/layout_tests/editing/selection/replace-selection-1.html
+/sdcard/android/layout_tests/editing/selection/caret-rtl.html
+/sdcard/android/layout_tests/editing/selection/5109817.html
+/sdcard/android/layout_tests/editing/selection/5136696.html
+/sdcard/android/layout_tests/editing/selection/4397952.html
+/sdcard/android/layout_tests/editing/selection/caret-and-focus-ring.html
+/sdcard/android/layout_tests/editing/selection/4895428-4.html
+/sdcard/android/layout_tests/editing/selection/4947387.html
+/sdcard/android/layout_tests/editing/selection/select-from-textfield-outwards.html
+/sdcard/android/layout_tests/editing/selection/leave-requested-block.html
+/sdcard/android/layout_tests/editing/selection/select-all-002.html
+/sdcard/android/layout_tests/editing/selection/unrendered-004.html
+/sdcard/android/layout_tests/editing/selection/7152-2.html
+/sdcard/android/layout_tests/editing/selection/5195166-1.html
+/sdcard/android/layout_tests/editing/selection/editable-html-element.html
+/sdcard/android/layout_tests/editing/selection/4866671.html
+/sdcard/android/layout_tests/editing/selection/4895428-1.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-8.html
+/sdcard/android/layout_tests/editing/selection/wrapped-line-caret-1.html
+/sdcard/android/layout_tests/editing/selection/selection-actions.html
+/sdcard/android/layout_tests/editing/selection/4402375.html
+/sdcard/android/layout_tests/editing/selection/unrendered-001.html
+/sdcard/android/layout_tests/editing/selection/extend-by-character-004.html
+/sdcard/android/layout_tests/editing/selection/contenteditable-click-inside.html
+/sdcard/android/layout_tests/editing/selection/addRange.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-5.html
+/sdcard/android/layout_tests/editing/selection/5007143.html
+/sdcard/android/layout_tests/editing/selection/fake-doubleclick.html
+/sdcard/android/layout_tests/editing/selection/extend-by-character-001.html
+/sdcard/android/layout_tests/editing/selection/4932260-1.html
+/sdcard/android/layout_tests/editing/selection/5234383-2.html
+/sdcard/android/layout_tests/editing/selection/5057506.html
+/sdcard/android/layout_tests/editing/selection/focus_editable_html.html
+/sdcard/android/layout_tests/editing/selection/4818145.html
+/sdcard/android/layout_tests/editing/selection/move-backwords-by-word-001.html
+/sdcard/android/layout_tests/editing/selection/mixed-editability-2.html
+/sdcard/android/layout_tests/editing/selection/replaced-boundaries-2.html
+/sdcard/android/layout_tests/editing/selection/move-by-character-004.html
+/sdcard/android/layout_tests/editing/selection/4889598.html
+/sdcard/android/layout_tests/editing/selection/5131716-4.html
+/sdcard/android/layout_tests/editing/selection/3690703.html
+/sdcard/android/layout_tests/editing/selection/5333725.html
+/sdcard/android/layout_tests/editing/selection/5354455-2.html
+/sdcard/android/layout_tests/editing/selection/selection-background.html
+/sdcard/android/layout_tests/editing/selection/extend-by-word-001.html
+/sdcard/android/layout_tests/editing/selection/move-by-character-001.html
+/sdcard/android/layout_tests/editing/selection/doubleclick-crash.html
+/sdcard/android/layout_tests/editing/selection/table-caret-3.html
+/sdcard/android/layout_tests/editing/selection/5131716-1.html
+/sdcard/android/layout_tests/editing/selection/node-removal-2.html
+/sdcard/android/layout_tests/editing/selection/drag-select-1.html
+/sdcard/android/layout_tests/editing/selection/select-all-006.html
+/sdcard/android/layout_tests/editing/selection/after-line-wrap.html
+/sdcard/android/layout_tests/editing/selection/line-wrap-2.html
+/sdcard/android/layout_tests/editing/selection/move-by-line-001.html
+/sdcard/android/layout_tests/editing/selection/move-between-blocks-yes-001.html
+/sdcard/android/layout_tests/editing/selection/6476.html
+/sdcard/android/layout_tests/editing/selection/contains-boundaries.html
+/sdcard/android/layout_tests/editing/selection/click-start-of-line.html
+/sdcard/android/layout_tests/editing/selection/triple-click-in-pre.html
+/sdcard/android/layout_tests/editing/selection/move-past-trailing-space.html
+/sdcard/android/layout_tests/editing/selection/inline-closest-leaf-child.html
+/sdcard/android/layout_tests/editing/selection/5007143-2.html
+/sdcard/android/layout_tests/editing/selection/select-all-003.html
+/sdcard/android/layout_tests/editing/selection/5076323-1.html
+/sdcard/android/layout_tests/editing/selection/5057506-2.html
+/sdcard/android/layout_tests/editing/selection/4975120.html
+/sdcard/android/layout_tests/editing/selection/unrendered-005.html
+/sdcard/android/layout_tests/editing/selection/5195166-2.html
+/sdcard/android/layout_tests/editing/selection/select-box.html
+/sdcard/android/layout_tests/editing/selection/4895428-2.html
+/sdcard/android/layout_tests/editing/selection/word-granularity.html
+/sdcard/android/layout_tests/editing/undo/undo-misspellings.html
+/sdcard/android/layout_tests/editing/undo/undo-combined-delete.html
+/sdcard/android/layout_tests/editing/undo/undo-delete-boundary.html
+/sdcard/android/layout_tests/editing/undo/undo-forward-delete-boundary.html
+/sdcard/android/layout_tests/editing/undo/4063751.html
+/sdcard/android/layout_tests/editing/undo/redo-typing-001.html
+/sdcard/android/layout_tests/editing/undo/5378473.html
+/sdcard/android/layout_tests/editing/undo/undo-combined-delete-boundary.html
+/sdcard/android/layout_tests/editing/undo/undo-delete.html
+/sdcard/android/layout_tests/editing/undo/undo-forward-delete.html
+/sdcard/android/layout_tests/editing/undo/undo-typing-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-3608462-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-image-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-3928305-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-012.html
+/sdcard/android/layout_tests/editing/deleting/5115601.html
+/sdcard/android/layout_tests/editing/deleting/deletionUI-single-instance.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-contents-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-024.html
+/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-011.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-008.html
+/sdcard/android/layout_tests/editing/deleting/delete-listitem-001.html
+/sdcard/android/layout_tests/editing/deleting/5300379.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-007.html
+/sdcard/android/layout_tests/editing/deleting/5433862-2.html
+/sdcard/android/layout_tests/editing/deleting/5026848-1.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-003.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-012.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-008.html
+/sdcard/android/layout_tests/editing/deleting/5206311-2.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-start-or-end.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-021.html
+/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-004.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-005.html
+/sdcard/android/layout_tests/editing/deleting/delete-select-all-003.html
+/sdcard/android/layout_tests/editing/deleting/smart-delete-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-017.html
+/sdcard/android/layout_tests/editing/deleting/table-cells.html
+/sdcard/android/layout_tests/editing/deleting/5156801-2.html
+/sdcard/android/layout_tests/editing/deleting/delete-leading-ws-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-004.html
+/sdcard/android/layout_tests/editing/deleting/delete-3857753-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-3959464-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-016.html
+/sdcard/android/layout_tests/editing/deleting/delete-trailing-ws-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-005.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-008.html
+/sdcard/android/layout_tests/editing/deleting/delete-tab-004.html
+/sdcard/android/layout_tests/editing/deleting/merge-whitespace-pre.html
+/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-end-ws-002.html
+/sdcard/android/layout_tests/editing/deleting/merge-unrendered-space.html
+/sdcard/android/layout_tests/editing/deleting/delete-by-word-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-image-003.html
+/sdcard/android/layout_tests/editing/deleting/delete-selection-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-014.html
+/sdcard/android/layout_tests/editing/deleting/merge-different-styles.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-contents-003.html
+/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-003.html
+/sdcard/android/layout_tests/editing/deleting/merge-into-empty-block-1.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-013.html
+/sdcard/android/layout_tests/editing/deleting/delete-3865854-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-009.html
+/sdcard/android/layout_tests/editing/deleting/5026848-3.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-005.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-tab-001.html
+/sdcard/android/layout_tests/editing/deleting/whitespace-pre-1.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-table.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-011.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-023.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-010.html
+/sdcard/android/layout_tests/editing/deleting/5032066.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-007.html
+/sdcard/android/layout_tests/editing/deleting/smart-delete-004.html
+/sdcard/android/layout_tests/editing/deleting/5144139-2.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-019.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-006.html
+/sdcard/android/layout_tests/editing/deleting/5126166.html
+/sdcard/android/layout_tests/editing/deleting/delete-to-end-of-paragraph.html
+/sdcard/android/layout_tests/editing/deleting/5408255.html
+/sdcard/android/layout_tests/editing/deleting/5099303.html
+/sdcard/android/layout_tests/editing/deleting/4845371.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-002.html
+/sdcard/android/layout_tests/editing/deleting/4922367.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-011.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-007.html
+/sdcard/android/layout_tests/editing/deleting/move-nodes-001.html
+/sdcard/android/layout_tests/editing/deleting/merge-no-br.html
+/sdcard/android/layout_tests/editing/deleting/delete-3800834-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-4038408-fix.html
+/sdcard/android/layout_tests/editing/deleting/5206311-1.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-020.html
+/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-003.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-004.html
+/sdcard/android/layout_tests/editing/deleting/delete-select-all-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-contiguous-ws-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-to-select-table.html
+/sdcard/android/layout_tests/editing/deleting/smart-delete-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-016.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-003.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-015.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-011.html
+/sdcard/android/layout_tests/editing/deleting/5390681.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-004.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-007.html
+/sdcard/android/layout_tests/editing/deleting/forward-delete.html
+/sdcard/android/layout_tests/editing/deleting/delete-tab-003.html
+/sdcard/android/layout_tests/editing/deleting/collapse-whitespace-3587601-fix.html
+/sdcard/android/layout_tests/editing/deleting/pruning-after-merge-2.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-end-ws-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-by-word-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-image-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-013.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-contents-002.html
+/sdcard/android/layout_tests/editing/deleting/paragraph-in-preserveNewline.html
+/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-002.html
+/sdcard/android/layout_tests/editing/deleting/5272440.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-012.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-009.html
+/sdcard/android/layout_tests/editing/deleting/delete-listitem-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-character-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-008.html
+/sdcard/android/layout_tests/editing/deleting/5483370.html
+/sdcard/android/layout_tests/editing/deleting/5026848-2.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-004.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-013.html
+/sdcard/android/layout_tests/editing/deleting/5091898.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-009.html
+/sdcard/android/layout_tests/editing/deleting/transpose-empty.html
+/sdcard/android/layout_tests/editing/deleting/merge-endOfParagraph.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-010.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-022.html
+/sdcard/android/layout_tests/editing/deleting/delete-3775172-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-mixed-editable-content-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-006.html
+/sdcard/android/layout_tests/editing/deleting/smart-delete-003.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-018.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-005.html
+/sdcard/android/layout_tests/editing/deleting/delete-first-list-item.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-017.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-trailing-ws-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-010.html
+/sdcard/android/layout_tests/editing/deleting/delete-and-undo.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-006.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-009.html
+/sdcard/android/layout_tests/editing/deleting/delete-hr.html
+/sdcard/android/layout_tests/editing/deleting/delete-4083333-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-3608445-fix.html
+/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-003.html
+/sdcard/android/layout_tests/editing/deleting/delete-image-004.html
+/sdcard/android/layout_tests/editing/deleting/delete-select-all-001.html
+/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-015.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-002.html
+/sdcard/android/layout_tests/editing/deleting/delete-line-014.html
+/sdcard/android/layout_tests/editing/deleting/merge-into-empty-block-2.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-010.html
+/sdcard/android/layout_tests/editing/deleting/5390681-2.html
+/sdcard/android/layout_tests/editing/deleting/5369009.html
+/sdcard/android/layout_tests/editing/deleting/delete-br-003.html
+/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-006.html
+/sdcard/android/layout_tests/editing/deleting/delete-tab-002.html
+/sdcard/android/layout_tests/editing/deleting/list-item-1.html
+/sdcard/android/layout_tests/editing/deleting/5168598.html
+/sdcard/android/layout_tests/editing/deleting/delete-3608430-fix.html
+/sdcard/android/layout_tests/editing/deleting/type-delete-after-quote.html
+/sdcard/android/layout_tests/editing/spelling/spelling.html
+/sdcard/android/layout_tests/editing/spelling/spellcheck-attribute.html
+/sdcard/android/layout_tests/editing/spelling/inline_spelling_markers.html
+/sdcard/android/layout_tests/editing/spelling/spelling-linebreak.html
+/sdcard/android/layout_tests/fast/media/mq-relative-constraints-05.html
+/sdcard/android/layout_tests/fast/media/mq-grid-02.html
+/sdcard/android/layout_tests/fast/media/mq-compound-query-02.html
+/sdcard/android/layout_tests/fast/media/mq-relative-constraints-09.html
+/sdcard/android/layout_tests/fast/media/mq-width-absolute-03.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-02.html
+/sdcard/android/layout_tests/fast/media/mq-simple-query-04.html
+/sdcard/android/layout_tests/fast/media/mq-min-pixel-ratio.html
+/sdcard/android/layout_tests/fast/media/implicit-media-all.html
+/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-01.html
+/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-03.html
+/sdcard/android/layout_tests/fast/media/viewport-media-query.html
+/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-05.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-01.html
+/sdcard/android/layout_tests/fast/media/mq-transition.html
+/sdcard/android/layout_tests/fast/media/mq-orientation.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-05.html
+/sdcard/android/layout_tests/fast/media/mq-transform-04.html
+/sdcard/android/layout_tests/fast/media/mq-js-media-except-02.html
+/sdcard/android/layout_tests/fast/media/mq-relative-constraints-02.html
+/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-03.html
+/sdcard/android/layout_tests/fast/media/mq-relative-constraints-06.html
+/sdcard/android/layout_tests/fast/media/mq-valueless.html
+/sdcard/android/layout_tests/fast/media/mq-compound-query-03.html
+/sdcard/android/layout_tests/fast/media/mq-simple-query-01.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-03.html
+/sdcard/android/layout_tests/fast/media/mq-width-absolute-04.html
+/sdcard/android/layout_tests/fast/media/mq-simple-query-05.html
+/sdcard/android/layout_tests/fast/media/mq-animation.html
+/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-02.html
+/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-04.html
+/sdcard/android/layout_tests/fast/media/media-type-syntax-01.html
+/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-06.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-02.html
+/sdcard/android/layout_tests/fast/media/mq-transform-01.html
+/sdcard/android/layout_tests/fast/media/monochrome.html
+/sdcard/android/layout_tests/fast/media/mq-pixel-ratio.html
+/sdcard/android/layout_tests/fast/media/mq-js-media-except-03.html
+/sdcard/android/layout_tests/fast/media/mq-relative-constraints-03.html
+/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-04.html
+/sdcard/android/layout_tests/fast/media/mq-relative-constraints-07.html
+/sdcard/android/layout_tests/fast/media/mq-compound-query-04.html
+/sdcard/android/layout_tests/fast/media/mq-width-absolute-01.html
+/sdcard/android/layout_tests/fast/media/mq-simple-query-02.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-04.html
+/sdcard/android/layout_tests/fast/media/mq-max-pixel-ratio.html
+/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-01.html
+/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-03.html
+/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-05.html
+/sdcard/android/layout_tests/fast/media/media-type-syntax-02.html
+/sdcard/android/layout_tests/fast/media/mq-transform-02.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-03.html
+/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-01.html
+/sdcard/android/layout_tests/fast/media/mq-relative-constraints-04.html
+/sdcard/android/layout_tests/fast/media/mq-grid-01.html
+/sdcard/android/layout_tests/fast/media/mq-compound-query-01.html
+/sdcard/android/layout_tests/fast/media/mq-min-constraint.html
+/sdcard/android/layout_tests/fast/media/mq-relative-constraints-08.html
+/sdcard/android/layout_tests/fast/media/mq-compound-query-05.html
+/sdcard/android/layout_tests/fast/media/mq-width-absolute-02.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-01.html
+/sdcard/android/layout_tests/fast/media/mq-simple-query-03.html
+/sdcard/android/layout_tests/fast/media/mq-js-media-forward-syntax.html
+/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-02.html
+/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-04.html
+/sdcard/android/layout_tests/fast/media/mq-aspect-ratio.html
+/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-04.html
+/sdcard/android/layout_tests/fast/media/mq-transform-03.html
+/sdcard/android/layout_tests/fast/media/mq-js-media-except-01.html
+/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-02.html
+/sdcard/android/layout_tests/fast/replaced/embed-display-none.html
+/sdcard/android/layout_tests/fast/replaced/width100percent-radio.html
+/sdcard/android/layout_tests/fast/replaced/selection-rect.html
+/sdcard/android/layout_tests/fast/replaced/applet-display-none.html
+/sdcard/android/layout_tests/fast/replaced/inline-box-wrapper-handover.html
+/sdcard/android/layout_tests/fast/replaced/maxheight-pxs.html
+/sdcard/android/layout_tests/fast/replaced/width100percent-searchfield.html
+/sdcard/android/layout_tests/fast/replaced/selection-rect-transform.html
+/sdcard/android/layout_tests/fast/replaced/minwidth-pxs.html
+/sdcard/android/layout_tests/fast/replaced/width100percent-textarea.html
+/sdcard/android/layout_tests/fast/replaced/maxwidth-pxs.html
+/sdcard/android/layout_tests/fast/replaced/absolute-position-percentage-height.html
+/sdcard/android/layout_tests/fast/replaced/004.html
+/sdcard/android/layout_tests/fast/replaced/applet-disabled-positioned.html
+/sdcard/android/layout_tests/fast/replaced/width100percent-checkbox.html
+/sdcard/android/layout_tests/fast/replaced/008.html
+/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block-widget.html
+/sdcard/android/layout_tests/fast/replaced/maxheight-percent.html
+/sdcard/android/layout_tests/fast/replaced/minwidth-percent.html
+/sdcard/android/layout_tests/fast/replaced/maxwidth-percent.html
+/sdcard/android/layout_tests/fast/replaced/applet-rendering-java-disabled.html
+/sdcard/android/layout_tests/fast/replaced/width100percent-button.html
+/sdcard/android/layout_tests/fast/replaced/image-resize-width.html
+/sdcard/android/layout_tests/fast/replaced/absolute-image-sizing.html
+/sdcard/android/layout_tests/fast/replaced/001.html
+/sdcard/android/layout_tests/fast/replaced/005.html
+/sdcard/android/layout_tests/fast/replaced/object-display-none.html
+/sdcard/android/layout_tests/fast/replaced/absolute-position-percentage-width.html
+/sdcard/android/layout_tests/fast/replaced/object-align-hspace-vspace.html
+/sdcard/android/layout_tests/fast/replaced/width100percent-menulist.html
+/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block-in-table.html
+/sdcard/android/layout_tests/fast/replaced/image-sizing.html
+/sdcard/android/layout_tests/fast/replaced/minheight-pxs.html
+/sdcard/android/layout_tests/fast/replaced/pdf-as-image.html
+/sdcard/android/layout_tests/fast/replaced/replaced-breaking-mixture.html
+/sdcard/android/layout_tests/fast/replaced/max-width-percent.html
+/sdcard/android/layout_tests/fast/replaced/002.html
+/sdcard/android/layout_tests/fast/replaced/006.html
+/sdcard/android/layout_tests/fast/replaced/minheight-percent.html
+/sdcard/android/layout_tests/fast/replaced/absolute-position-with-auto-width-and-left-and-right.html
+/sdcard/android/layout_tests/fast/replaced/selection-rect-in-table-cell.html
+/sdcard/android/layout_tests/fast/replaced/border-radius-clip.html
+/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block.html
+/sdcard/android/layout_tests/fast/replaced/three-selects-break.html
+/sdcard/android/layout_tests/fast/replaced/image-tag.html
+/sdcard/android/layout_tests/fast/replaced/image-onload.html
+/sdcard/android/layout_tests/fast/replaced/replaced-breaking.html
+/sdcard/android/layout_tests/fast/replaced/width100percent-image.html
+/sdcard/android/layout_tests/fast/replaced/image-solid-color-with-alpha.html
+/sdcard/android/layout_tests/fast/replaced/003.html
+/sdcard/android/layout_tests/fast/replaced/replaced-child-of-absolute-with-auto-height.html
+/sdcard/android/layout_tests/fast/replaced/007.html
+/sdcard/android/layout_tests/fast/replaced/absolute-position-with-auto-height-and-top-and-bottom.html
+/sdcard/android/layout_tests/fast/replaced/width100percent-textfield.html
+/sdcard/android/layout_tests/fast/dynamic/positioned-movement-with-positioned-children.html
+/sdcard/android/layout_tests/fast/dynamic/subtree-table-cell-height.html
+/sdcard/android/layout_tests/fast/dynamic/move-node-with-selection.html
+/sdcard/android/layout_tests/fast/dynamic/create-renderer-for-whitespace-only-text.html
+/sdcard/android/layout_tests/fast/dynamic/outerHTML-doc.html
+/sdcard/android/layout_tests/fast/dynamic/window-scrollbars-test.html
+/sdcard/android/layout_tests/fast/dynamic/floating-to-positioned-2.html
+/sdcard/android/layout_tests/fast/dynamic/anchor-lock.html
+/sdcard/android/layout_tests/fast/dynamic/012.html
+/sdcard/android/layout_tests/fast/dynamic/004.html
+/sdcard/android/layout_tests/fast/dynamic/008.html
+/sdcard/android/layout_tests/fast/dynamic/float-no-longer-overhanging.html
+/sdcard/android/layout_tests/fast/dynamic/float-withdrawal-2.html
+/sdcard/android/layout_tests/fast/dynamic/float-in-trailing-whitespace-after-last-line-break.html
+/sdcard/android/layout_tests/fast/dynamic/selection-highlight-adjust.html
+/sdcard/android/layout_tests/fast/dynamic/subtree-no-common-root-static-y.html
+/sdcard/android/layout_tests/fast/dynamic/genContentDestroyChildren.html
+/sdcard/android/layout_tests/fast/dynamic/001.html
+/sdcard/android/layout_tests/fast/dynamic/link-href-change.html
+/sdcard/android/layout_tests/fast/dynamic/013.html
+/sdcard/android/layout_tests/fast/dynamic/005.html
+/sdcard/android/layout_tests/fast/dynamic/009.html
+/sdcard/android/layout_tests/fast/dynamic/float-withdrawal.html
+/sdcard/android/layout_tests/fast/dynamic/anonymous-block-layer-lost.html
+/sdcard/android/layout_tests/fast/dynamic/layer-hit-test-crash.html
+/sdcard/android/layout_tests/fast/dynamic/view-overflow.html
+/sdcard/android/layout_tests/fast/dynamic/window-resize-scrollbars-test.html
+/sdcard/android/layout_tests/fast/dynamic/010.html
+/sdcard/android/layout_tests/fast/dynamic/002.html
+/sdcard/android/layout_tests/fast/dynamic/014.html
+/sdcard/android/layout_tests/fast/dynamic/006.html
+/sdcard/android/layout_tests/fast/dynamic/flash-replacement-test.html
+/sdcard/android/layout_tests/fast/dynamic/insertAdjacentElement.html
+/sdcard/android/layout_tests/fast/dynamic/insert-before-table-part-in-continuation.html
+/sdcard/android/layout_tests/fast/dynamic/staticY.html
+/sdcard/android/layout_tests/fast/dynamic/anonymous-block-orphaned-lines.html
+/sdcard/android/layout_tests/fast/dynamic/noninlinebadness.html
+/sdcard/android/layout_tests/fast/dynamic/subtree-parent-static-y.html
+/sdcard/android/layout_tests/fast/dynamic/outerHTML-img.html
+/sdcard/android/layout_tests/fast/dynamic/staticY-marking-parents-regression.html
+/sdcard/android/layout_tests/fast/dynamic/floating-to-positioned.html
+/sdcard/android/layout_tests/fast/dynamic/subtree-boundary-percent-height.html
+/sdcard/android/layout_tests/fast/dynamic/011.html
+/sdcard/android/layout_tests/fast/dynamic/containing-block-change.html
+/sdcard/android/layout_tests/fast/dynamic/015.html
+/sdcard/android/layout_tests/fast/dynamic/007.html
+/sdcard/android/layout_tests/fast/text/firstline/001.html
+/sdcard/android/layout_tests/fast/text/firstline/002.html
+/sdcard/android/layout_tests/fast/text/firstline/003.html
+/sdcard/android/layout_tests/fast/text/international/hindi-spacing.html
+/sdcard/android/layout_tests/fast/text/international/bidi-L2-run-reordering.html
+/sdcard/android/layout_tests/fast/text/international/bidi-override.html
+/sdcard/android/layout_tests/fast/text/international/hindi-whitespace.html
+/sdcard/android/layout_tests/fast/text/international/bidi-european-terminators.html
+/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-formatting-characters.html
+/sdcard/android/layout_tests/fast/text/international/bidi-AN-after-L.html
+/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-CSS.html
+/sdcard/android/layout_tests/fast/text/international/bidi-control-chars-treated-as-ZWS.html
+/sdcard/android/layout_tests/fast/text/international/bidi-neutral-directionality-paragraph-start.html
+/sdcard/android/layout_tests/fast/text/international/bidi-linebreak-001.html
+/sdcard/android/layout_tests/fast/text/international/bidi-linebreak-003.html
+/sdcard/android/layout_tests/fast/text/international/002.html
+/sdcard/android/layout_tests/fast/text/international/bidi-explicit-embedding.html
+/sdcard/android/layout_tests/fast/text/international/rtl-white-space-pre-wrap.html
+/sdcard/android/layout_tests/fast/text/international/bidi-CS-after-AN.html
+/sdcard/android/layout_tests/fast/text/international/complex-character-based-fallback.html
+/sdcard/android/layout_tests/fast/text/international/wrap-CJK-001.html
+/sdcard/android/layout_tests/fast/text/international/bidi-listbox-atsui.html
+/sdcard/android/layout_tests/fast/text/international/thai-line-breaks.html
+/sdcard/android/layout_tests/fast/text/international/bidi-neutral-run.html
+/sdcard/android/layout_tests/fast/text/international/bidi-innertext.html
+/sdcard/android/layout_tests/fast/text/international/bidi-listbox.html
+/sdcard/android/layout_tests/fast/text/international/khmer-selection.html
+/sdcard/android/layout_tests/fast/text/international/thai-baht-space.html
+/sdcard/android/layout_tests/fast/text/international/rtl-caret.html
+/sdcard/android/layout_tests/fast/text/international/bidi-AN-after-empty-run.html
+/sdcard/android/layout_tests/fast/text/international/001.html
+/sdcard/android/layout_tests/fast/text/international/bidi-linebreak-002.html
+/sdcard/android/layout_tests/fast/text/international/danda-space.html
+/sdcard/android/layout_tests/fast/text/international/003.html
+/sdcard/android/layout_tests/fast/text/international/bidi-ignored-for-first-child-inline.html
+/sdcard/android/layout_tests/fast/text/international/bidi-layout-across-linebreak.html
+/sdcard/android/layout_tests/fast/text/international/bidi-menulist.html
+/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-HTML.html
+/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-overflow-selection.html
+/sdcard/android/layout_tests/fast/text/whitespace/pre-newline-box-test.html
+/sdcard/android/layout_tests/fast/text/whitespace/span-in-word-space-causes-overflow.html
+/sdcard/android/layout_tests/fast/text/whitespace/nowrap-clear-float.html
+/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-line-test.html
+/sdcard/android/layout_tests/fast/text/whitespace/010.html
+/sdcard/android/layout_tests/fast/text/whitespace/020.html
+/sdcard/android/layout_tests/fast/text/whitespace/002.html
+/sdcard/android/layout_tests/fast/text/whitespace/030.html
+/sdcard/android/layout_tests/fast/text/whitespace/012.html
+/sdcard/android/layout_tests/fast/text/whitespace/022.html
+/sdcard/android/layout_tests/fast/text/whitespace/004.html
+/sdcard/android/layout_tests/fast/text/whitespace/014.html
+/sdcard/android/layout_tests/fast/text/whitespace/024.html
+/sdcard/android/layout_tests/fast/text/whitespace/006.html
+/sdcard/android/layout_tests/fast/text/whitespace/016.html
+/sdcard/android/layout_tests/fast/text/whitespace/008.html
+/sdcard/android/layout_tests/fast/text/whitespace/026.html
+/sdcard/android/layout_tests/fast/text/whitespace/018.html
+/sdcard/android/layout_tests/fast/text/whitespace/028.html
+/sdcard/android/layout_tests/fast/text/whitespace/normal-after-nowrap-breaking.html
+/sdcard/android/layout_tests/fast/text/whitespace/pre-break-word.html
+/sdcard/android/layout_tests/fast/text/whitespace/nbsp-mode-and-linewraps.html
+/sdcard/android/layout_tests/fast/text/whitespace/001.html
+/sdcard/android/layout_tests/fast/text/whitespace/011.html
+/sdcard/android/layout_tests/fast/text/whitespace/tab-character-basics.html
+/sdcard/android/layout_tests/fast/text/whitespace/003.html
+/sdcard/android/layout_tests/fast/text/whitespace/021.html
+/sdcard/android/layout_tests/fast/text/whitespace/013.html
+/sdcard/android/layout_tests/fast/text/whitespace/023.html
+/sdcard/android/layout_tests/fast/text/whitespace/005.html
+/sdcard/android/layout_tests/fast/text/whitespace/015.html
+/sdcard/android/layout_tests/fast/text/whitespace/025.html
+/sdcard/android/layout_tests/fast/text/whitespace/007.html
+/sdcard/android/layout_tests/fast/text/whitespace/017.html
+/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-spaces-after-newline.html
+/sdcard/android/layout_tests/fast/text/whitespace/027.html
+/sdcard/android/layout_tests/fast/text/whitespace/009.html
+/sdcard/android/layout_tests/fast/text/whitespace/019.html
+/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-last-char.html
+/sdcard/android/layout_tests/fast/text/whitespace/029.html
+/sdcard/android/layout_tests/fast/text/basic/001.html
+/sdcard/android/layout_tests/fast/text/basic/002.html
+/sdcard/android/layout_tests/fast/text/basic/011.html
+/sdcard/android/layout_tests/fast/text/basic/generic-family-changes.html
+/sdcard/android/layout_tests/fast/text/basic/003.html
+/sdcard/android/layout_tests/fast/text/basic/012.html
+/sdcard/android/layout_tests/fast/text/basic/004.html
+/sdcard/android/layout_tests/fast/text/basic/013.html
+/sdcard/android/layout_tests/fast/text/basic/005.html
+/sdcard/android/layout_tests/fast/text/basic/014.html
+/sdcard/android/layout_tests/fast/text/basic/006.html
+/sdcard/android/layout_tests/fast/text/basic/015.html
+/sdcard/android/layout_tests/fast/text/basic/007.html
+/sdcard/android/layout_tests/fast/text/basic/008.html
+/sdcard/android/layout_tests/fast/text/basic/009.html
+/sdcard/android/layout_tests/fast/text/basic/generic-family-reset.html
+/sdcard/android/layout_tests/fast/text/in-rendered-text-rtl.html
+/sdcard/android/layout_tests/fast/text/selection-painted-separately.html
+/sdcard/android/layout_tests/fast/text/bidi-embedding-pop-and-push-same.html
+/sdcard/android/layout_tests/fast/text/wbr-in-pre-crash.html
+/sdcard/android/layout_tests/fast/text/atsui-spacing-features.html
+/sdcard/android/layout_tests/fast/text/textIteratorNilRenderer.html
+/sdcard/android/layout_tests/fast/text/drawBidiText.html
+/sdcard/android/layout_tests/fast/text/selection-hard-linebreak.html
+/sdcard/android/layout_tests/fast/text/word-break.html
+/sdcard/android/layout_tests/fast/text/break-word.html
+/sdcard/android/layout_tests/fast/text/font-initial.html
+/sdcard/android/layout_tests/fast/text/complex-text-opacity.html
+/sdcard/android/layout_tests/fast/text/stroking.html
+/sdcard/android/layout_tests/fast/text/midword-break-hang.html
+/sdcard/android/layout_tests/fast/text/atsui-partial-selection.html
+/sdcard/android/layout_tests/fast/text/embed-at-end-of-pre-wrap-line.html
+/sdcard/android/layout_tests/fast/text/atsui-multiple-renderers.html
+/sdcard/android/layout_tests/fast/text/shadow-translucent-fill.html
+/sdcard/android/layout_tests/fast/text/apply-start-width-after-skipped-text.html
+/sdcard/android/layout_tests/fast/text/capitalize-preserve-nbsp.html
+/sdcard/android/layout_tests/fast/text/updateNewFont.html
+/sdcard/android/layout_tests/fast/text/atsui-rtl-override-selection.html
+/sdcard/android/layout_tests/fast/text/align-center-rtl-spill.html
+/sdcard/android/layout_tests/fast/text/wbr.html
+/sdcard/android/layout_tests/fast/text/cg-vs-atsui.html
+/sdcard/android/layout_tests/fast/text/monospace-width-cache.html
+/sdcard/android/layout_tests/fast/text/soft-hyphen-2.html
+/sdcard/android/layout_tests/fast/text/atsui-pointtooffset-calls-cg.html
+/sdcard/android/layout_tests/fast/text/justified-selection.html
+/sdcard/android/layout_tests/fast/text/atsui-kerning-and-ligatures.html
+/sdcard/android/layout_tests/fast/text/wbr-pre.html
+/sdcard/android/layout_tests/fast/text/capitalize-boundaries.html
+/sdcard/android/layout_tests/fast/text/trailing-white-space.html
+/sdcard/android/layout_tests/fast/text/capitalize-empty-generated-string.html
+/sdcard/android/layout_tests/fast/text/stripNullFromText.html
+/sdcard/android/layout_tests/fast/text/letter-spacing-negative-opacity.html
+/sdcard/android/layout_tests/fast/text/atsui-small-caps-punctuation-size.html
+/sdcard/android/layout_tests/fast/text/word-break-soft-hyphen.html
+/sdcard/android/layout_tests/fast/text/fixed-pitch-control-characters.html
+/sdcard/android/layout_tests/fast/text/cg-fallback-bolding.html
+/sdcard/android/layout_tests/fast/text/line-breaks-after-white-space.html
+/sdcard/android/layout_tests/fast/text/text-letter-spacing.html
+/sdcard/android/layout_tests/fast/text/soft-hyphen-3.html
+/sdcard/android/layout_tests/fast/text/should-use-atsui.html
+/sdcard/android/layout_tests/fast/text/wide-zero-width-space.html
+/sdcard/android/layout_tests/fast/text/justified-selection-at-edge.html
+/sdcard/android/layout_tests/fast/text/trailing-white-space-2.html
+/sdcard/android/layout_tests/fast/text/word-break-run-rounding.html
+/sdcard/android/layout_tests/fast/text/softHyphen.html
+/sdcard/android/layout_tests/fast/text/delete-hard-break-character.html
+/sdcard/android/layout_tests/fast/text/line-breaks.html
+/sdcard/android/layout_tests/fast/text/wbr-styled.html
+/sdcard/android/layout_tests/fast/text/large-text-composed-char.html
+/sdcard/android/layout_tests/fast/text/shadow-no-blur.html
+/sdcard/android/layout_tests/fast/text/reset-emptyRun.html
+/sdcard/android/layout_tests/fast/text/word-space.html
+/sdcard/android/layout_tests/fast/text/midword-break-after-breakable-char.html
+/sdcard/android/layout_tests/fast/text/stroking-decorations.html
+/sdcard/android/layout_tests/fast/encoding/utf-16-little-endian.html
+/sdcard/android/layout_tests/fast/encoding/denormalised-voiced-japanese-chars.html
+/sdcard/android/layout_tests/fast/encoding/utf-16-no-bom.xml
+/sdcard/android/layout_tests/fast/encoding/utf-16-big-endian.html
+/sdcard/android/layout_tests/fast/encoding/xmacroman-encoding-test.html
+/sdcard/android/layout_tests/fast/encoding/invalid-UTF-8.html
+/sdcard/android/layout_tests/fast/multicol/float-avoidance.html
+/sdcard/android/layout_tests/fast/multicol/negativeColumnWidth.html
+/sdcard/android/layout_tests/fast/multicol/column-rules.html
+/sdcard/android/layout_tests/fast/multicol/column-rules-stacking.html
+/sdcard/android/layout_tests/fast/multicol/zeroColumnCount.html
+/sdcard/android/layout_tests/fast/multicol/columns-shorthand-parsing.html
+/sdcard/android/layout_tests/fast/multicol/float-multicol.html
+/sdcard/android/layout_tests/fast/doctypes/001.html
+/sdcard/android/layout_tests/fast/doctypes/002.html
+/sdcard/android/layout_tests/fast/doctypes/003.html
+/sdcard/android/layout_tests/fast/doctypes/004.html
+/sdcard/android/layout_tests/fast/css-generated-content/table-row-group-to-inline.html
+/sdcard/android/layout_tests/fast/css-generated-content/spellingToolTip-assert.html
+/sdcard/android/layout_tests/fast/css-generated-content/no-openclose-quote.html
+/sdcard/android/layout_tests/fast/css-generated-content/before-with-first-letter.html
+/sdcard/android/layout_tests/fast/css-generated-content/table-row-group-with-before.html
+/sdcard/android/layout_tests/fast/css-generated-content/010.html
+/sdcard/android/layout_tests/fast/css-generated-content/table-with-before.html
+/sdcard/android/layout_tests/fast/css-generated-content/002.html
+/sdcard/android/layout_tests/fast/css-generated-content/012.html
+/sdcard/android/layout_tests/fast/css-generated-content/004.html
+/sdcard/android/layout_tests/fast/css-generated-content/014.html
+/sdcard/android/layout_tests/fast/css-generated-content/016.html
+/sdcard/android/layout_tests/fast/css-generated-content/008.html
+/sdcard/android/layout_tests/fast/css-generated-content/after-order.html
+/sdcard/android/layout_tests/fast/css-generated-content/table-cell-before-content.html
+/sdcard/android/layout_tests/fast/css-generated-content/visibleContentHiddenParent.html
+/sdcard/android/layout_tests/fast/css-generated-content/inline-display-types.html
+/sdcard/android/layout_tests/fast/css-generated-content/positioned-background-hit-test-crash.html
+/sdcard/android/layout_tests/fast/css-generated-content/001.html
+/sdcard/android/layout_tests/fast/css-generated-content/011.html
+/sdcard/android/layout_tests/fast/css-generated-content/003.html
+/sdcard/android/layout_tests/fast/css-generated-content/beforeAfter-interdocument.html
+/sdcard/android/layout_tests/fast/css-generated-content/013.html
+/sdcard/android/layout_tests/fast/css-generated-content/005.html
+/sdcard/android/layout_tests/fast/css-generated-content/hover-style-change.html
+/sdcard/android/layout_tests/fast/css-generated-content/table-row-with-before.html
+/sdcard/android/layout_tests/fast/css-generated-content/absolute-position-inside-inline.html
+/sdcard/android/layout_tests/fast/css-generated-content/015.html
+/sdcard/android/layout_tests/fast/css-generated-content/hit-test-generated-content.html
+/sdcard/android/layout_tests/fast/css-generated-content/007.html
+/sdcard/android/layout_tests/fast/css-generated-content/009.html
+/sdcard/android/layout_tests/fast/css-generated-content/wbr-with-before-content.html
+/sdcard/android/layout_tests/fast/lists/decimal-leading-zero.html
+/sdcard/android/layout_tests/fast/lists/ol-display-types.html
+/sdcard/android/layout_tests/fast/lists/li-style-alpha-huge-value-crash.html
+/sdcard/android/layout_tests/fast/lists/ol-start-dynamic.html
+/sdcard/android/layout_tests/fast/lists/numeric-markers-outside-list.html
+/sdcard/android/layout_tests/fast/lists/marker-image-error.html
+/sdcard/android/layout_tests/fast/lists/marker-before-empty-inline.html
+/sdcard/android/layout_tests/fast/lists/list-marker-with-line-height.html
+/sdcard/android/layout_tests/fast/lists/scrolled-marker-paint.html
+/sdcard/android/layout_tests/fast/lists/li-values.html
+/sdcard/android/layout_tests/fast/lists/002.html
+/sdcard/android/layout_tests/fast/lists/dynamic-marker-crash.html
+/sdcard/android/layout_tests/fast/lists/list-item-line-height.html
+/sdcard/android/layout_tests/fast/lists/004.html
+/sdcard/android/layout_tests/fast/lists/drag-into-marker.html
+/sdcard/android/layout_tests/fast/lists/list-style-none-crash.html
+/sdcard/android/layout_tests/fast/lists/alpha-list-wrap.html
+/sdcard/android/layout_tests/fast/lists/006.html
+/sdcard/android/layout_tests/fast/lists/ol-start-parsing.html
+/sdcard/android/layout_tests/fast/lists/008.html
+/sdcard/android/layout_tests/fast/lists/inlineBoxWrapperNullCheck.html
+/sdcard/android/layout_tests/fast/lists/w3-list-styles.html
+/sdcard/android/layout_tests/fast/lists/item-not-in-list-line-wrapping.html
+/sdcard/android/layout_tests/fast/lists/olstart.html
+/sdcard/android/layout_tests/fast/lists/big-list-marker.html
+/sdcard/android/layout_tests/fast/lists/markers-in-selection.html
+/sdcard/android/layout_tests/fast/lists/list-style-type-dynamic-change.html
+/sdcard/android/layout_tests/fast/lists/001.html
+/sdcard/android/layout_tests/fast/lists/ordered-list-with-no-ol-tag.html
+/sdcard/android/layout_tests/fast/lists/003.html
+/sdcard/android/layout_tests/fast/lists/005.html
+/sdcard/android/layout_tests/fast/lists/li-br.html
+/sdcard/android/layout_tests/fast/lists/007.html
+/sdcard/android/layout_tests/fast/lists/009.html
+/sdcard/android/layout_tests/fast/transforms/transform-overflow.html
+/sdcard/android/layout_tests/fast/transforms/transforms-with-opacity.html
+/sdcard/android/layout_tests/fast/transforms/transformed-caret.html
+/sdcard/android/layout_tests/fast/transforms/bounding-rect-zoom.html
+/sdcard/android/layout_tests/fast/transforms/matrix-01.html
+/sdcard/android/layout_tests/fast/transforms/matrix-02.html
+/sdcard/android/layout_tests/fast/transforms/overflow-with-transform.html
+/sdcard/android/layout_tests/fast/transforms/transformed-document-element.html
+/sdcard/android/layout_tests/fast/transforms/transforms-with-zoom.html
+/sdcard/android/layout_tests/fast/transforms/transformed-focused-text-input.html
+/sdcard/android/layout_tests/fast/transforms/identity-matrix.html
+/sdcard/android/layout_tests/fast/transforms/transform-on-inline.html
+/sdcard/android/layout_tests/fast/transforms/transform-positioned-ancestor.html
+/sdcard/android/layout_tests/fast/transforms/skew-with-unitless-zero.html
+/sdcard/android/layout_tests/fast/transforms/transform-table-row.html
+/sdcard/android/layout_tests/fast/transforms/shadows.html
+/sdcard/android/layout_tests/fast/transforms/diamond.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusSolid01.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDouble01.html
+/sdcard/android/layout_tests/fast/borders/block-mask-overlay-image.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDouble03.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusSolid03.html
+/sdcard/android/layout_tests/fast/borders/border-color-inherit.html
+/sdcard/android/layout_tests/fast/borders/svg-as-border-image-2.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusInvalidColor.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDotted02.html
+/sdcard/android/layout_tests/fast/borders/border-image-scale-transform.html
+/sdcard/android/layout_tests/fast/borders/border-fit.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusArcs01.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDashed01.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDashed03.html
+/sdcard/android/layout_tests/fast/borders/fieldsetBorderRadius.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusAllStylesAllCorners.html
+/sdcard/android/layout_tests/fast/borders/border-radius-split-inline.html
+/sdcard/android/layout_tests/fast/borders/border-radius-constraints.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusGroove01.html
+/sdcard/android/layout_tests/fast/borders/border-image-omit-right-slice.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDouble02.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusSolid02.html
+/sdcard/android/layout_tests/fast/borders/outline-offset-min-assert.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusSolid04.html
+/sdcard/android/layout_tests/fast/borders/border-radius-huge-assert.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusInset01.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDotted01.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusOutset01.html
+/sdcard/android/layout_tests/fast/borders/svg-as-border-image.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDotted03.html
+/sdcard/android/layout_tests/fast/borders/border-image-border-radius.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusDashed02.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusRidge01.html
+/sdcard/android/layout_tests/fast/borders/border-image-rotate-transform.html
+/sdcard/android/layout_tests/fast/borders/inline-mask-overlay-image.html
+/sdcard/android/layout_tests/fast/borders/borderRadiusGroove02.html
+/sdcard/android/layout_tests/fast/borders/border-image-01.html
+/sdcard/android/layout_tests/fast/innerHTML/001.html
+/sdcard/android/layout_tests/fast/innerHTML/002.html
+/sdcard/android/layout_tests/fast/innerHTML/003.html
+/sdcard/android/layout_tests/fast/innerHTML/006.html
+/sdcard/android/layout_tests/fast/selectors/175a.html
+/sdcard/android/layout_tests/fast/selectors/155c.html
+/sdcard/android/layout_tests/fast/selectors/059.html
+/sdcard/android/layout_tests/fast/selectors/066b.html
+/sdcard/android/layout_tests/fast/selectors/168.html
+/sdcard/android/layout_tests/fast/selectors/177a.html
+/sdcard/android/layout_tests/fast/selectors/087b.html
+/sdcard/android/layout_tests/fast/selectors/020.html
+/sdcard/android/layout_tests/fast/selectors/012.html
+/sdcard/android/layout_tests/fast/selectors/040.html
+/sdcard/android/layout_tests/fast/selectors/004.html
+/sdcard/android/layout_tests/fast/selectors/032.html
+/sdcard/android/layout_tests/fast/selectors/060.html
+/sdcard/android/layout_tests/fast/selectors/016.html
+/sdcard/android/layout_tests/fast/selectors/044.html
+/sdcard/android/layout_tests/fast/selectors/008.html
+/sdcard/android/layout_tests/fast/selectors/072.html
+/sdcard/android/layout_tests/fast/selectors/064.html
+/sdcard/android/layout_tests/fast/selectors/056.html
+/sdcard/android/layout_tests/fast/selectors/018b.html
+/sdcard/android/layout_tests/fast/selectors/090b.html
+/sdcard/android/layout_tests/fast/selectors/045c.html
+/sdcard/android/layout_tests/fast/selectors/170d.html
+/sdcard/android/layout_tests/fast/selectors/157.html
+/sdcard/android/layout_tests/fast/selectors/039b.html
+/sdcard/android/layout_tests/fast/selectors/156b.html
+/sdcard/android/layout_tests/fast/selectors/175b.html
+/sdcard/android/layout_tests/fast/selectors/155d.html
+/sdcard/android/layout_tests/fast/selectors/167a.html
+/sdcard/android/layout_tests/fast/selectors/169.html
+/sdcard/android/layout_tests/fast/selectors/077b.html
+/sdcard/android/layout_tests/fast/selectors/177b.html
+/sdcard/android/layout_tests/fast/selectors/169a.html
+/sdcard/android/layout_tests/fast/selectors/001.html
+/sdcard/android/layout_tests/fast/selectors/021.html
+/sdcard/android/layout_tests/fast/selectors/unqualified-hover-quirks.html
+/sdcard/android/layout_tests/fast/selectors/013.html
+/sdcard/android/layout_tests/fast/selectors/041.html
+/sdcard/android/layout_tests/fast/selectors/021b.html
+/sdcard/android/layout_tests/fast/selectors/005.html
+/sdcard/android/layout_tests/fast/selectors/061.html
+/sdcard/android/layout_tests/fast/selectors/170.html
+/sdcard/android/layout_tests/fast/selectors/017.html
+/sdcard/android/layout_tests/fast/selectors/170a.html
+/sdcard/android/layout_tests/fast/selectors/009.html
+/sdcard/android/layout_tests/fast/selectors/045.html
+/sdcard/android/layout_tests/fast/selectors/154.html
+/sdcard/android/layout_tests/fast/selectors/044b.html
+/sdcard/android/layout_tests/fast/selectors/065.html
+/sdcard/android/layout_tests/fast/selectors/155a.html
+/sdcard/android/layout_tests/fast/selectors/166.html
+/sdcard/android/layout_tests/fast/selectors/158.html
+/sdcard/android/layout_tests/fast/selectors/077.html
+/sdcard/android/layout_tests/fast/selectors/175c.html
+/sdcard/android/layout_tests/fast/selectors/089.html
+/sdcard/android/layout_tests/fast/selectors/088b.html
+/sdcard/android/layout_tests/fast/selectors/nondeterministic-combinators.html
+/sdcard/android/layout_tests/fast/selectors/unqualified-hover-strict.html
+/sdcard/android/layout_tests/fast/selectors/010.html
+/sdcard/android/layout_tests/fast/selectors/002.html
+/sdcard/android/layout_tests/fast/selectors/014.html
+/sdcard/android/layout_tests/fast/selectors/042.html
+/sdcard/android/layout_tests/fast/selectors/006.html
+/sdcard/android/layout_tests/fast/selectors/034.html
+/sdcard/android/layout_tests/fast/selectors/062.html
+/sdcard/android/layout_tests/fast/selectors/007a.html
+/sdcard/android/layout_tests/fast/selectors/054.html
+/sdcard/android/layout_tests/fast/selectors/018.html
+/sdcard/android/layout_tests/fast/selectors/046.html
+/sdcard/android/layout_tests/fast/selectors/170b.html
+/sdcard/android/layout_tests/fast/selectors/072b.html
+/sdcard/android/layout_tests/fast/selectors/044c.html
+/sdcard/android/layout_tests/fast/selectors/038.html
+/sdcard/android/layout_tests/fast/selectors/155.html
+/sdcard/android/layout_tests/fast/selectors/066.html
+/sdcard/android/layout_tests/fast/selectors/058.html
+/sdcard/android/layout_tests/fast/selectors/155b.html
+/sdcard/android/layout_tests/fast/selectors/166a.html
+/sdcard/android/layout_tests/fast/selectors/167.html
+/sdcard/android/layout_tests/fast/selectors/159.html
+/sdcard/android/layout_tests/fast/selectors/168a.html
+/sdcard/android/layout_tests/fast/selectors/078b.html
+/sdcard/android/layout_tests/fast/selectors/011.html
+/sdcard/android/layout_tests/fast/selectors/003.html
+/sdcard/android/layout_tests/fast/selectors/015.html
+/sdcard/android/layout_tests/fast/selectors/043.html
+/sdcard/android/layout_tests/fast/selectors/160.html
+/sdcard/android/layout_tests/fast/selectors/063.html
+/sdcard/android/layout_tests/fast/selectors/043b.html
+/sdcard/android/layout_tests/fast/selectors/007b.html
+/sdcard/android/layout_tests/fast/selectors/027.html
+/sdcard/android/layout_tests/fast/selectors/019.html
+/sdcard/android/layout_tests/fast/selectors/083.html
+/sdcard/android/layout_tests/fast/selectors/045b.html
+/sdcard/android/layout_tests/fast/selectors/170c.html
+/sdcard/android/layout_tests/fast/selectors/044d.html
+/sdcard/android/layout_tests/fast/selectors/039.html
+/sdcard/android/layout_tests/fast/overflow/overflow-focus-ring.html
+/sdcard/android/layout_tests/fast/overflow/overflow-x-y.html
+/sdcard/android/layout_tests/fast/overflow/overflow-text-hit-testing.html
+/sdcard/android/layout_tests/fast/overflow/unreachable-overflow-rtl-bug.html
+/sdcard/android/layout_tests/fast/overflow/overflow-auto-position-absolute.html
+/sdcard/android/layout_tests/fast/overflow/scrollRevealButton.html
+/sdcard/android/layout_tests/fast/overflow/overflow-rtl-inline-scrollbar.html
+/sdcard/android/layout_tests/fast/overflow/002.html
+/sdcard/android/layout_tests/fast/overflow/overflow-rtl.html
+/sdcard/android/layout_tests/fast/overflow/004.html
+/sdcard/android/layout_tests/fast/overflow/overflow-stacking.html
+/sdcard/android/layout_tests/fast/overflow/006.html
+/sdcard/android/layout_tests/fast/overflow/border-radius-clipping.html
+/sdcard/android/layout_tests/fast/overflow/scrollbar-position-update.html
+/sdcard/android/layout_tests/fast/overflow/008.html
+/sdcard/android/layout_tests/fast/overflow/overflow-float-stacking.html
+/sdcard/android/layout_tests/fast/overflow/scroll-nested-positioned-layer-in-overflow.html
+/sdcard/android/layout_tests/fast/overflow/image-selection-highlight.html
+/sdcard/android/layout_tests/fast/overflow/childFocusRingClip.html
+/sdcard/android/layout_tests/fast/overflow/position-relative.html
+/sdcard/android/layout_tests/fast/overflow/dynamic-hidden.html
+/sdcard/android/layout_tests/fast/overflow/overflow_hidden.html
+/sdcard/android/layout_tests/fast/overflow/clip-rects-fixed-ancestor.html
+/sdcard/android/layout_tests/fast/overflow/infiniteRecursionGuard.html
+/sdcard/android/layout_tests/fast/overflow/float-in-relpositioned.html
+/sdcard/android/layout_tests/fast/overflow/table-overflow-float.html
+/sdcard/android/layout_tests/fast/overflow/003.xml
+/sdcard/android/layout_tests/fast/overflow/overflow-auto-table.html
+/sdcard/android/layout_tests/fast/overflow/unreachable-content-test.html
+/sdcard/android/layout_tests/fast/overflow/infiniteRecursion.html
+/sdcard/android/layout_tests/fast/overflow/001.html
+/sdcard/android/layout_tests/fast/overflow/hit-test-overflow-controls.html
+/sdcard/android/layout_tests/fast/overflow/005.html
+/sdcard/android/layout_tests/fast/overflow/007.html
+/sdcard/android/layout_tests/fast/overflow/overflow-with-local-background-attachment.html
+/sdcard/android/layout_tests/fast/overflow/hidden-scrollbar-resize.html
+/sdcard/android/layout_tests/fast/events/context-no-deselect.html
+/sdcard/android/layout_tests/fast/events/autoscroll.html
+/sdcard/android/layout_tests/fast/events/5056619.html
+/sdcard/android/layout_tests/fast/events/updateLayoutForHitTest.html
+/sdcard/android/layout_tests/fast/events/label-focus.html
+/sdcard/android/layout_tests/fast/events/keydown-1.html
+/sdcard/android/layout_tests/fast/events/onloadFrameCrash.html
+/sdcard/android/layout_tests/fast/events/event-listener-on-link.html
+/sdcard/android/layout_tests/fast/events/onload-re-entry.html
+/sdcard/android/layout_tests/fast/events/standalone-image-drag-to-editable.html
+/sdcard/android/layout_tests/fast/events/focusingUnloadedFrame.html
+/sdcard/android/layout_tests/fast/events/event-sender-mouse-moved.html
+/sdcard/android/layout_tests/fast/events/reveal-link-when-focused.html
+/sdcard/android/layout_tests/fast/events/mouseout-dead-node.html
+/sdcard/android/layout_tests/fast/html/keygen.html
+/sdcard/android/layout_tests/fast/html/marquee-scroll.html
+/sdcard/android/layout_tests/fast/html/link-rel-stylesheet.html
+/sdcard/android/layout_tests/fast/html/listing.html
+/sdcard/android/layout_tests/fast/images/svg-as-background.html
+/sdcard/android/layout_tests/fast/images/pdf-as-image-landscape.html
+/sdcard/android/layout_tests/fast/images/pdf-as-tiled-background.html
+/sdcard/android/layout_tests/fast/images/pdf-as-image.html
+/sdcard/android/layout_tests/fast/images/image-map-anchor-children.html
+/sdcard/android/layout_tests/fast/images/animated-gif-with-offsets.html
+/sdcard/android/layout_tests/fast/images/favicon-as-image.html
+/sdcard/android/layout_tests/fast/images/svg-width-100p-as-background.html
+/sdcard/android/layout_tests/fast/images/svg-as-tiled-background.html
+/sdcard/android/layout_tests/fast/images/svg-as-image.html
+/sdcard/android/layout_tests/fast/images/object-image.html
+/sdcard/android/layout_tests/fast/images/pdf-as-background.html
+/sdcard/android/layout_tests/fast/images/imagemap-case.html
+/sdcard/android/layout_tests/fast/images/svg-as-relative-image.html
+/sdcard/android/layout_tests/fast/images/embed-image.html
+/sdcard/android/layout_tests/fast/images/animated-svg-as-image.html
+/sdcard/android/layout_tests/fast/images/image-in-map.html
+/sdcard/android/layout_tests/fast/images/icon-decoding.html
+/sdcard/android/layout_tests/fast/inline-block/14498-positionForCoordinates.html
+/sdcard/android/layout_tests/fast/inline-block/001.html
+/sdcard/android/layout_tests/fast/inline-block/002.html
+/sdcard/android/layout_tests/fast/inline-block/003.html
+/sdcard/android/layout_tests/fast/inline-block/004.html
+/sdcard/android/layout_tests/fast/inline-block/005.html
+/sdcard/android/layout_tests/fast/inline-block/contenteditable-baseline.html
+/sdcard/android/layout_tests/fast/inline-block/006.html
+/sdcard/android/layout_tests/fast/inline-block/inline-block-vertical-align.html
+/sdcard/android/layout_tests/fast/inline-block/tricky-baseline.html
+/sdcard/android/layout_tests/fast/inline-block/overflow-clip.html
+/sdcard/android/layout_tests/fast/inspector/matchedrules.html
+/sdcard/android/layout_tests/fast/inspector/style.html
+/sdcard/android/layout_tests/fast/flexbox/010.html
+/sdcard/android/layout_tests/fast/flexbox/020.html
+/sdcard/android/layout_tests/fast/flexbox/002.html
+/sdcard/android/layout_tests/fast/flexbox/012.html
+/sdcard/android/layout_tests/fast/flexbox/022.html
+/sdcard/android/layout_tests/fast/flexbox/004.html
+/sdcard/android/layout_tests/fast/flexbox/014.html
+/sdcard/android/layout_tests/fast/flexbox/024.html
+/sdcard/android/layout_tests/fast/flexbox/006.html
+/sdcard/android/layout_tests/fast/flexbox/016.html
+/sdcard/android/layout_tests/fast/flexbox/026.html
+/sdcard/android/layout_tests/fast/flexbox/008.html
+/sdcard/android/layout_tests/fast/flexbox/018.html
+/sdcard/android/layout_tests/fast/flexbox/001.html
+/sdcard/android/layout_tests/fast/flexbox/011.html
+/sdcard/android/layout_tests/fast/flexbox/003.html
+/sdcard/android/layout_tests/fast/flexbox/021.html
+/sdcard/android/layout_tests/fast/flexbox/013.html
+/sdcard/android/layout_tests/fast/flexbox/005.html
+/sdcard/android/layout_tests/fast/flexbox/023.html
+/sdcard/android/layout_tests/fast/flexbox/015.html
+/sdcard/android/layout_tests/fast/flexbox/007.html
+/sdcard/android/layout_tests/fast/flexbox/025.html
+/sdcard/android/layout_tests/fast/flexbox/017.html
+/sdcard/android/layout_tests/fast/flexbox/009.html
+/sdcard/android/layout_tests/fast/flexbox/019.html
+/sdcard/android/layout_tests/fast/flexbox/flex-hang.html
+/sdcard/android/layout_tests/fast/tokenizer/missing-style-end-tag-1.html
+/sdcard/android/layout_tests/fast/tokenizer/002.html
+/sdcard/android/layout_tests/fast/tokenizer/missing-title-end-tag-2.html
+/sdcard/android/layout_tests/fast/tokenizer/script-after-frameset.html
+/sdcard/android/layout_tests/fast/tokenizer/missing-style-end-tag-2.html
+/sdcard/android/layout_tests/fast/tokenizer/external-script-document-write.html
+/sdcard/android/layout_tests/fast/tokenizer/script_extra_close.html
+/sdcard/android/layout_tests/fast/tokenizer/001.html
+/sdcard/android/layout_tests/fast/tokenizer/003.html
+/sdcard/android/layout_tests/fast/tokenizer/missing-title-end-tag-1.html
+/sdcard/android/layout_tests/fast/tokenizer/external-script-document-write_2.html
+/sdcard/android/layout_tests/fast/box-shadow/transform-fringing.html
+/sdcard/android/layout_tests/fast/box-shadow/spread.html
+/sdcard/android/layout_tests/fast/box-shadow/border-radius-big.html
+/sdcard/android/layout_tests/fast/box-shadow/inset.html
+/sdcard/android/layout_tests/fast/box-shadow/basic-shadows.html
+/sdcard/android/layout_tests/fast/js/exception-linenums-in-html-3.html
+/sdcard/android/layout_tests/fast/js/missing-style-end-tag-js.html
+/sdcard/android/layout_tests/fast/inline/continuation-outlines-with-layers.html
+/sdcard/android/layout_tests/fast/inline/inline-padding-disables-text-quirk.html
+/sdcard/android/layout_tests/fast/inline/emptyInlinesWithinLists.html
+/sdcard/android/layout_tests/fast/inline/drawStyledEmptyInlines.html
+/sdcard/android/layout_tests/fast/inline/long-wrapped-line.html
+/sdcard/android/layout_tests/fast/inline/inline-continuation-borders.html
+/sdcard/android/layout_tests/fast/inline/vertical-align-text-bottom.html
+/sdcard/android/layout_tests/fast/inline/25277-2.html
+/sdcard/android/layout_tests/fast/inline/25277.html
+/sdcard/android/layout_tests/fast/inline/drawStyledEmptyInlinesWithWS.html
+/sdcard/android/layout_tests/fast/inline/positionedLifetime.html
+/sdcard/android/layout_tests/fast/inline/dirtyLinesForInline.html
+/sdcard/android/layout_tests/fast/inline/001.html
+/sdcard/android/layout_tests/fast/inline/002.html
+/sdcard/android/layout_tests/fast/inline/inline-text-quirk-bpm.html
+/sdcard/android/layout_tests/fast/inline/inline-borders-with-bidi-override.html
+/sdcard/android/layout_tests/fast/inline/styledEmptyInlinesWithBRs.html
+/sdcard/android/layout_tests/fast/inline/continuation-outlines.html
+/sdcard/android/layout_tests/fast/inline/br-text-decoration.html
+/sdcard/android/layout_tests/fast/inline/outline-continuations.html
+/sdcard/android/layout_tests/fast/inline/percentage-margins.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/010.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/001.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/002.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/003.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/004.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/005.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/006.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/007.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/008.html
+/sdcard/android/layout_tests/fast/body-propagation/background-image/009.html
+/sdcard/android/layout_tests/fast/body-propagation/overflow/001.html
+/sdcard/android/layout_tests/fast/body-propagation/overflow/002.html
+/sdcard/android/layout_tests/fast/body-propagation/overflow/003.html
+/sdcard/android/layout_tests/fast/body-propagation/overflow/004.html
+/sdcard/android/layout_tests/fast/body-propagation/overflow/005.html
+/sdcard/android/layout_tests/fast/body-propagation/overflow/006.html
+/sdcard/android/layout_tests/fast/body-propagation/overflow/007.html
+/sdcard/android/layout_tests/fast/body-propagation/background-color/001.html
+/sdcard/android/layout_tests/fast/body-propagation/background-color/002.html
+/sdcard/android/layout_tests/fast/body-propagation/background-color/003.html
+/sdcard/android/layout_tests/fast/body-propagation/background-color/004.html
+/sdcard/android/layout_tests/fast/body-propagation/background-color/005.html
+/sdcard/android/layout_tests/fast/body-propagation/background-color/006.html
+/sdcard/android/layout_tests/fast/body-propagation/background-color/007.html
+/sdcard/android/layout_tests/fast/body-propagation/background-color/008.html
+/sdcard/android/layout_tests/fast/dom/HTMLTableElement/colSpan.html
+/sdcard/android/layout_tests/fast/dom/HTMLTableElement/createCaption.html
+/sdcard/android/layout_tests/fast/dom/HTMLDocument/frameless-location-bugzilla10837.html
+/sdcard/android/layout_tests/fast/dom/Element/null-offset-parent.html
+/sdcard/android/layout_tests/fast/dom/Element/class-attribute-whitespace.html
+/sdcard/android/layout_tests/fast/dom/HTMLLinkElement/pending-stylesheet-count.html
+/sdcard/android/layout_tests/fast/dom/HTMLStyleElement/insert-parser-generated.html
+/sdcard/android/layout_tests/fast/dom/HTMLTableColElement/resize-table-using-col-width.html
+/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-image-alt-text.html
+/sdcard/android/layout_tests/fast/dom/Window/open-existing-pop-up-blocking.html
+/sdcard/android/layout_tests/fast/dom/Window/btoa-pnglet.html
+/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/vspace-hspace-as-number.html
+/sdcard/android/layout_tests/fast/dom/HTMLElement/bdo.html
+/sdcard/android/layout_tests/fast/dom/Range/surroundContents-1.html
+/sdcard/android/layout_tests/fast/dom/Range/create-contextual-fragment.html
+/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead1.html
+/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead2.html
+/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead3.html
+/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead4.html
+/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead5.html
+/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/head-link-style-href-check.html
+/sdcard/android/layout_tests/fast/dom/HTMLTextAreaElement/reset-textarea.html
+/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-alt-text.html
+/sdcard/android/layout_tests/fast/dom/dom-parse-serialize.html
+/sdcard/android/layout_tests/fast/dom/focus-contenteditable.html
+/sdcard/android/layout_tests/fast/dom/jsDevicePixelRatio.html
+/sdcard/android/layout_tests/fast/dom/isindex-001.html
+/sdcard/android/layout_tests/fast/dom/css-cached-import-rule.html
+/sdcard/android/layout_tests/fast/dom/dom-parse-serialize-display.html
+/sdcard/android/layout_tests/fast/dom/css-rule-functions.html
+/sdcard/android/layout_tests/fast/dom/createDocumentType.html
+/sdcard/android/layout_tests/fast/dom/clientWidthAfterDocumentIsRemoved.html
+/sdcard/android/layout_tests/fast/dom/css-inline-style-important.html
+/sdcard/android/layout_tests/fast/dom/replaceChild.html
+/sdcard/android/layout_tests/fast/dom/anchor-text.html
+/sdcard/android/layout_tests/fast/dom/importNodeHTML.html
+/sdcard/android/layout_tests/fast/dom/gc-10.html
+/sdcard/android/layout_tests/fast/dom/inner-text.html
+/sdcard/android/layout_tests/fast/dom/isindex-002.html
+/sdcard/android/layout_tests/fast/dom/outerText.html
+/sdcard/android/layout_tests/fast/dom/row-inner-text.html
+/sdcard/android/layout_tests/fast/dom/blur-contenteditable.html
+/sdcard/android/layout_tests/fast/dom/setPrimitiveValue.html
+/sdcard/android/layout_tests/fast/dom/delete-contents.html
+/sdcard/android/layout_tests/fast/dom/children-nodes.html
+/sdcard/android/layout_tests/fast/dom/css-mediarule-deleteRule-update.html
+/sdcard/android/layout_tests/fast/dom/attr_dead_doc.html
+/sdcard/android/layout_tests/fast/dom/clone-contents-0-end-offset.html
+/sdcard/android/layout_tests/fast/dom/comment-not-documentElement.html
+/sdcard/android/layout_tests/fast/dom/clone-node-dynamic-style.html
+/sdcard/android/layout_tests/fast/dom/css-mediarule-insertRule-update.html
+/sdcard/android/layout_tests/fast/dom/css-insert-import-rule.html
+/sdcard/android/layout_tests/fast/dom/stripNullFromTextNodes.html
+/sdcard/android/layout_tests/fast/gradients/crash-on-zero-radius.html
+/sdcard/android/layout_tests/fast/gradients/generated-gradients.html
+/sdcard/android/layout_tests/fast/gradients/background-clipped.html
+/sdcard/android/layout_tests/fast/gradients/list-item-gradient.html
+/sdcard/android/layout_tests/fast/gradients/border-image-gradient-sides-and-corners.html
+/sdcard/android/layout_tests/fast/gradients/simple-gradients.html
+/sdcard/android/layout_tests/fast/gradients/border-image-gradient.html
+/sdcard/android/layout_tests/fast/invalid/table-inside-stray-table-content.html
+/sdcard/android/layout_tests/fast/invalid/010.html
+/sdcard/android/layout_tests/fast/invalid/002.html
+/sdcard/android/layout_tests/fast/invalid/012.html
+/sdcard/android/layout_tests/fast/invalid/004.html
+/sdcard/android/layout_tests/fast/invalid/014.html
+/sdcard/android/layout_tests/fast/invalid/006.html
+/sdcard/android/layout_tests/fast/invalid/016.html
+/sdcard/android/layout_tests/fast/invalid/008.html
+/sdcard/android/layout_tests/fast/invalid/018.html
+/sdcard/android/layout_tests/fast/invalid/junk-data.xml
+/sdcard/android/layout_tests/fast/invalid/missing-dl-end-tag.html
+/sdcard/android/layout_tests/fast/invalid/td-inside-object.html
+/sdcard/android/layout_tests/fast/invalid/table-residual-style-crash.html
+/sdcard/android/layout_tests/fast/invalid/missing-font-end-tag.html
+/sdcard/android/layout_tests/fast/invalid/missing-dt-end-tag.html
+/sdcard/android/layout_tests/fast/invalid/020.xml
+/sdcard/android/layout_tests/fast/invalid/001.html
+/sdcard/android/layout_tests/fast/invalid/nestedh3s.html
+/sdcard/android/layout_tests/fast/invalid/011.html
+/sdcard/android/layout_tests/fast/invalid/003.html
+/sdcard/android/layout_tests/fast/invalid/021.html
+/sdcard/android/layout_tests/fast/invalid/013.html
+/sdcard/android/layout_tests/fast/invalid/005.html
+/sdcard/android/layout_tests/fast/invalid/015.html
+/sdcard/android/layout_tests/fast/invalid/007.html
+/sdcard/android/layout_tests/fast/invalid/residual-style.html
+/sdcard/android/layout_tests/fast/invalid/017.html
+/sdcard/android/layout_tests/fast/invalid/009.html
+/sdcard/android/layout_tests/fast/invalid/missing-address-end-tag.html
+/sdcard/android/layout_tests/fast/invalid/019.html
+/sdcard/android/layout_tests/fast/forms/input-width.html
+/sdcard/android/layout_tests/fast/forms/select-item-background-clip.html
+/sdcard/android/layout_tests/fast/forms/radio-nested-labels.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-preventDefault.html
+/sdcard/android/layout_tests/fast/forms/input-double-click-selection-gap-bug.html
+/sdcard/android/layout_tests/fast/forms/preserveFormDuringResidualStyle.html
+/sdcard/android/layout_tests/fast/forms/input-text-option-delete.html
+/sdcard/android/layout_tests/fast/forms/textfield-overflow.html
+/sdcard/android/layout_tests/fast/forms/search-zoomed.html
+/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label02.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-visibility.html
+/sdcard/android/layout_tests/fast/forms/search-vertical-alignment.html
+/sdcard/android/layout_tests/fast/forms/file-input-direction.html
+/sdcard/android/layout_tests/fast/forms/select-change-listbox-size.html
+/sdcard/android/layout_tests/fast/forms/002.html
+/sdcard/android/layout_tests/fast/forms/textarea-align.html
+/sdcard/android/layout_tests/fast/forms/control-restrict-line-height.html
+/sdcard/android/layout_tests/fast/forms/basic-textareas.html
+/sdcard/android/layout_tests/fast/forms/button-generated-content.html
+/sdcard/android/layout_tests/fast/forms/input-text-paste-maxlength.html
+/sdcard/android/layout_tests/fast/forms/select-display-none-style-resolve.html
+/sdcard/android/layout_tests/fast/forms/input-readonly-autoscroll.html
+/sdcard/android/layout_tests/fast/forms/thumbslider-no-parent-slider.html
+/sdcard/android/layout_tests/fast/forms/listbox-clip.html
+/sdcard/android/layout_tests/fast/forms/textarea-setinnerhtml.html
+/sdcard/android/layout_tests/fast/forms/input-align.html
+/sdcard/android/layout_tests/fast/forms/button-cannot-be-nested.html
+/sdcard/android/layout_tests/fast/forms/input-type-change.html
+/sdcard/android/layout_tests/fast/forms/menulist-option-wrap.html
+/sdcard/android/layout_tests/fast/forms/select-empty-option-height.html
+/sdcard/android/layout_tests/fast/forms/float-before-fieldset.html
+/sdcard/android/layout_tests/fast/forms/radio_checked.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-focus.html
+/sdcard/android/layout_tests/fast/forms/input-value.html
+/sdcard/android/layout_tests/fast/forms/select-selected.html
+/sdcard/android/layout_tests/fast/forms/control-clip-overflow.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-default-bkcolor.html
+/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label03.html
+/sdcard/android/layout_tests/fast/forms/button-default-title.html
+/sdcard/android/layout_tests/fast/forms/hidden-listbox.html
+/sdcard/android/layout_tests/fast/forms/input-baseline.html
+/sdcard/android/layout_tests/fast/forms/targeted-frame-submission.html
+/sdcard/android/layout_tests/fast/forms/003.html
+/sdcard/android/layout_tests/fast/forms/text-control-intrinsic-widths.html
+/sdcard/android/layout_tests/fast/forms/select-change-listbox-to-popup.html
+/sdcard/android/layout_tests/fast/forms/radio_checked_dynamic.html
+/sdcard/android/layout_tests/fast/forms/text-style-color.html
+/sdcard/android/layout_tests/fast/forms/button-sizes.html
+/sdcard/android/layout_tests/fast/forms/listbox-scrollbar-incremental-load.html
+/sdcard/android/layout_tests/fast/forms/password-placeholder.html
+/sdcard/android/layout_tests/fast/forms/button-style-color.html
+/sdcard/android/layout_tests/fast/forms/caret-rtl.html
+/sdcard/android/layout_tests/fast/forms/listbox-deselect-scroll.html
+/sdcard/android/layout_tests/fast/forms/select-initial-position.html
+/sdcard/android/layout_tests/fast/forms/placeholder-set-attribute.html
+/sdcard/android/layout_tests/fast/forms/radio-attr-order.html
+/sdcard/android/layout_tests/fast/forms/input-disabled-color.html
+/sdcard/android/layout_tests/fast/forms/fieldset-align.html
+/sdcard/android/layout_tests/fast/forms/select-baseline.html
+/sdcard/android/layout_tests/fast/forms/stuff-on-my-optgroup.html
+/sdcard/android/layout_tests/fast/forms/input-align-image.html
+/sdcard/android/layout_tests/fast/forms/option-index.html
+/sdcard/android/layout_tests/fast/forms/menulist-clip.html
+/sdcard/android/layout_tests/fast/forms/search-display-none-cancel-button.html
+/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label04.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-disabled.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-height.html
+/sdcard/android/layout_tests/fast/forms/004.html
+/sdcard/android/layout_tests/fast/forms/search-placeholder-value-changed.html
+/sdcard/android/layout_tests/fast/forms/input-field-text-truncated.html
+/sdcard/android/layout_tests/fast/forms/input-type-text-min-width.html
+/sdcard/android/layout_tests/fast/forms/slider-thumb-shared-style.html
+/sdcard/android/layout_tests/fast/forms/option-script.html
+/sdcard/android/layout_tests/fast/forms/input-paste-undo.html
+/sdcard/android/layout_tests/fast/forms/button-white-space.html
+/sdcard/android/layout_tests/fast/forms/slider-padding.html
+/sdcard/android/layout_tests/fast/forms/button-submit.html
+/sdcard/android/layout_tests/fast/forms/input-text-double-click.html
+/sdcard/android/layout_tests/fast/forms/form-hides-table.html
+/sdcard/android/layout_tests/fast/forms/listbox-width-change.html
+/sdcard/android/layout_tests/fast/forms/button-positioned.html
+/sdcard/android/layout_tests/fast/forms/control-clip.html
+/sdcard/android/layout_tests/fast/forms/listbox-hit-test-zoomed.html
+/sdcard/android/layout_tests/fast/forms/thumbslider-crash.html
+/sdcard/android/layout_tests/fast/forms/input-first-letter.html
+/sdcard/android/layout_tests/fast/forms/search-rtl.html
+/sdcard/android/layout_tests/fast/forms/isindex-placeholder.html
+/sdcard/android/layout_tests/fast/forms/plaintext-mode-2.html
+/sdcard/android/layout_tests/fast/forms/select-change-popup-to-listbox.html
+/sdcard/android/layout_tests/fast/forms/blankbuttons.html
+/sdcard/android/layout_tests/fast/forms/input-text-maxlength.html
+/sdcard/android/layout_tests/fast/forms/password-placeholder-text-security.html
+/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label05.html
+/sdcard/android/layout_tests/fast/forms/visual-hebrew-text-field.html
+/sdcard/android/layout_tests/fast/forms/005.html
+/sdcard/android/layout_tests/fast/forms/search-styled.html
+/sdcard/android/layout_tests/fast/forms/file-input-disabled.html
+/sdcard/android/layout_tests/fast/forms/select-disabled-appearance.html
+/sdcard/android/layout_tests/fast/forms/input-type-change2.html
+/sdcard/android/layout_tests/fast/forms/select-block-background.html
+/sdcard/android/layout_tests/fast/forms/select-dirty-parent-pref-widths.html
+/sdcard/android/layout_tests/fast/forms/range-thumb-height-percentage.html
+/sdcard/android/layout_tests/fast/forms/select-visual-hebrew.html
+/sdcard/android/layout_tests/fast/forms/textAreaLineHeight.html
+/sdcard/android/layout_tests/fast/forms/option-text-clip.html
+/sdcard/android/layout_tests/fast/forms/formmove.html
+/sdcard/android/layout_tests/fast/forms/textfield-outline.html
+/sdcard/android/layout_tests/fast/forms/button-text-transform.html
+/sdcard/android/layout_tests/fast/forms/textarea-scroll-height.html
+/sdcard/android/layout_tests/fast/forms/button-table-styles.html
+/sdcard/android/layout_tests/fast/forms/box-shadow-override.html
+/sdcard/android/layout_tests/fast/forms/checkbox-radio-onchange.html
+/sdcard/android/layout_tests/fast/forms/searchfield-heights.html
+/sdcard/android/layout_tests/fast/forms/input-spaces.html
+/sdcard/android/layout_tests/fast/forms/textarea-scrollbar.html
+/sdcard/android/layout_tests/fast/forms/minWidthPercent.html
+/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label06.html
+/sdcard/android/layout_tests/fast/forms/placeholder-pseudo-style.html
+/sdcard/android/layout_tests/fast/forms/menulist-width-change.html
+/sdcard/android/layout_tests/fast/forms/input-text-drag-down.html
+/sdcard/android/layout_tests/fast/forms/option-strip-whitespace.html
+/sdcard/android/layout_tests/fast/forms/006.html
+/sdcard/android/layout_tests/fast/forms/input-no-renderer.html
+/sdcard/android/layout_tests/fast/forms/input-text-click-outside.html
+/sdcard/android/layout_tests/fast/forms/input-text-scroll-left-on-blur.html
+/sdcard/android/layout_tests/fast/forms/form-element-geometry.html
+/sdcard/android/layout_tests/fast/forms/input-table.html
+/sdcard/android/layout_tests/fast/forms/textarea-scrolled-type.html
+/sdcard/android/layout_tests/fast/forms/select-align.html
+/sdcard/android/layout_tests/fast/forms/select-writing-direction-natural.html
+/sdcard/android/layout_tests/fast/forms/search-cancel-button-style-sharing.html
+/sdcard/android/layout_tests/fast/forms/tabbing-input-iframe.html
+/sdcard/android/layout_tests/fast/forms/hidden-input-file.html
+/sdcard/android/layout_tests/fast/forms/menulist-deselect-update.html
+/sdcard/android/layout_tests/fast/forms/slider-thumb-stylability.html
+/sdcard/android/layout_tests/fast/forms/input-readonly-dimmed.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-width.html
+/sdcard/android/layout_tests/fast/forms/select-list-box-with-height.html
+/sdcard/android/layout_tests/fast/forms/textarea-rows-cols.html
+/sdcard/android/layout_tests/fast/forms/button-align.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-readonly.html
+/sdcard/android/layout_tests/fast/forms/form-added-to-table.html
+/sdcard/android/layout_tests/fast/forms/menulist-no-overflow.html
+/sdcard/android/layout_tests/fast/forms/formmove2.html
+/sdcard/android/layout_tests/fast/forms/input-text-word-wrap.html
+/sdcard/android/layout_tests/fast/forms/listbox-selection-2.html
+/sdcard/android/layout_tests/fast/forms/input-readonly-empty.html
+/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label07.html
+/sdcard/android/layout_tests/fast/forms/007.html
+/sdcard/android/layout_tests/fast/forms/indeterminate.html
+/sdcard/android/layout_tests/fast/forms/negativeLineHeight.html
+/sdcard/android/layout_tests/fast/forms/select-style.html
+/sdcard/android/layout_tests/fast/forms/select-size.html
+/sdcard/android/layout_tests/fast/forms/menulist-separator-painting.html
+/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label01.html
+/sdcard/android/layout_tests/fast/forms/fieldset-with-float.html
+/sdcard/android/layout_tests/fast/forms/floating-textfield-relayout.html
+/sdcard/android/layout_tests/fast/forms/button-inner-block-reuse.html
+/sdcard/android/layout_tests/fast/forms/001.html
+/sdcard/android/layout_tests/fast/forms/input-text-click-inside.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-selection.html
+/sdcard/android/layout_tests/fast/forms/menulist-narrow-width.html
+/sdcard/android/layout_tests/fast/forms/linebox-overflow-in-textarea-padding.html
+/sdcard/android/layout_tests/fast/forms/menulist-restrict-line-height.html
+/sdcard/android/layout_tests/fast/forms/textarea-width.html
+/sdcard/android/layout_tests/fast/forms/disabled-select-change-index.html
+/sdcard/android/layout_tests/fast/forms/formmove3.html
+/sdcard/android/layout_tests/fast/forms/placeholder-set-value.html
+/sdcard/android/layout_tests/fast/forms/input-text-self-emptying-click.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-bkcolor.html
+/sdcard/android/layout_tests/fast/forms/search-transformed.html
+/sdcard/android/layout_tests/fast/forms/image-border.html
+/sdcard/android/layout_tests/fast/forms/encoding-test.html
+/sdcard/android/layout_tests/fast/forms/form-in-malformed-markup.html
+/sdcard/android/layout_tests/fast/forms/menulist-style-color.html
+/sdcard/android/layout_tests/fast/compact/001.html
+/sdcard/android/layout_tests/fast/compact/002.html
+/sdcard/android/layout_tests/fast/compact/003.html
+/sdcard/android/layout_tests/fast/clip/nestedTransparencyClip.html
+/sdcard/android/layout_tests/fast/clip/overflow-border-radius-clip.html
+/sdcard/android/layout_tests/fast/clip/outline-overflowClip.html
+/sdcard/android/layout_tests/fast/clip/001.html
+/sdcard/android/layout_tests/fast/clip/010.html
+/sdcard/android/layout_tests/fast/clip/002.html
+/sdcard/android/layout_tests/fast/clip/011.html
+/sdcard/android/layout_tests/fast/clip/003.html
+/sdcard/android/layout_tests/fast/clip/012.html
+/sdcard/android/layout_tests/fast/clip/004.html
+/sdcard/android/layout_tests/fast/clip/013.html
+/sdcard/android/layout_tests/fast/clip/005.html
+/sdcard/android/layout_tests/fast/clip/014.html
+/sdcard/android/layout_tests/fast/clip/006.html
+/sdcard/android/layout_tests/fast/clip/015.html
+/sdcard/android/layout_tests/fast/clip/016.html
+/sdcard/android/layout_tests/fast/clip/007.html
+/sdcard/android/layout_tests/fast/clip/008.html
+/sdcard/android/layout_tests/fast/clip/017.html
+/sdcard/android/layout_tests/fast/clip/009.html
+/sdcard/android/layout_tests/fast/table/border-collapsing/001.html
+/sdcard/android/layout_tests/fast/table/border-collapsing/002.html
+/sdcard/android/layout_tests/fast/table/border-collapsing/003.html
+/sdcard/android/layout_tests/fast/table/border-collapsing/004.html
+/sdcard/android/layout_tests/fast/table/border-collapsing/equal-precedence-resolution.html
+/sdcard/android/layout_tests/fast/table/border-collapsing/rtl-border-collapsing.html
+/sdcard/android/layout_tests/fast/table/border-collapsing/border-collapsing-head-foot.html
+/sdcard/android/layout_tests/fast/table/fixed-nested.html
+/sdcard/android/layout_tests/fast/table/frame-and-rules.html
+/sdcard/android/layout_tests/fast/table/empty-table-percent-height.html
+/sdcard/android/layout_tests/fast/table/100-percent-cell-width.html
+/sdcard/android/layout_tests/fast/table/stale-grid-crash.html
+/sdcard/android/layout_tests/fast/table/div-as-col-span.html
+/sdcard/android/layout_tests/fast/table/nobr.html
+/sdcard/android/layout_tests/fast/table/012.html
+/sdcard/android/layout_tests/fast/table/040.html
+/sdcard/android/layout_tests/fast/table/growCellForImageQuirk.html
+/sdcard/android/layout_tests/fast/table/024.html
+/sdcard/android/layout_tests/fast/table/cell-pref-width-invalidation.html
+/sdcard/android/layout_tests/fast/table/fixed-granular-cols.html
+/sdcard/android/layout_tests/fast/table/008.html
+/sdcard/android/layout_tests/fast/table/036.html
+/sdcard/android/layout_tests/fast/table/nested-percent-height-table.html
+/sdcard/android/layout_tests/fast/table/rules-attr-dynchange1.html
+/sdcard/android/layout_tests/fast/table/wide-column.html
+/sdcard/android/layout_tests/fast/table/fixed-with-auto-with-colspan.html
+/sdcard/android/layout_tests/fast/table/percent-heights.html
+/sdcard/android/layout_tests/fast/table/021.html
+/sdcard/android/layout_tests/fast/table/colspanMinWidth.html
+/sdcard/android/layout_tests/fast/table/005.html
+/sdcard/android/layout_tests/fast/table/033.html
+/sdcard/android/layout_tests/fast/table/floatingTablePaintBackground.html
+/sdcard/android/layout_tests/fast/table/017.html
+/sdcard/android/layout_tests/fast/table/029.html
+/sdcard/android/layout_tests/fast/table/cell-absolute-child.html
+/sdcard/android/layout_tests/fast/table/click-near-anonymous-table.html
+/sdcard/android/layout_tests/fast/table/auto-with-percent-height.html
+/sdcard/android/layout_tests/fast/table/insert-before-anonymous-ancestors.html
+/sdcard/android/layout_tests/fast/table/append-cells2.html
+/sdcard/android/layout_tests/fast/table/unused-percent-heights.html
+/sdcard/android/layout_tests/fast/table/max-width-integer-overflow.html
+/sdcard/android/layout_tests/fast/table/vertical-align-baseline-readjust.html
+/sdcard/android/layout_tests/fast/table/empty-row-crash.html
+/sdcard/android/layout_tests/fast/table/002.html
+/sdcard/android/layout_tests/fast/table/030.html
+/sdcard/android/layout_tests/fast/table/cell-width-auto.html
+/sdcard/android/layout_tests/fast/table/014.html
+/sdcard/android/layout_tests/fast/table/037.xml
+/sdcard/android/layout_tests/fast/table/large-width.html
+/sdcard/android/layout_tests/fast/table/026.html
+/sdcard/android/layout_tests/fast/table/unbreakable-images-quirk.html
+/sdcard/android/layout_tests/fast/table/038.html
+/sdcard/android/layout_tests/fast/table/dynamic-cellpadding.html
+/sdcard/android/layout_tests/fast/table/generated-caption.html
+/sdcard/android/layout_tests/fast/table/empty-cells.html
+/sdcard/android/layout_tests/fast/table/add-before-anonymous-child.html
+/sdcard/android/layout_tests/fast/table/011.html
+/sdcard/android/layout_tests/fast/table/table-display-types-strict.html
+/sdcard/android/layout_tests/fast/table/023.html
+/sdcard/android/layout_tests/fast/table/007.html
+/sdcard/android/layout_tests/fast/table/cellindex.html
+/sdcard/android/layout_tests/fast/table/035.html
+/sdcard/android/layout_tests/fast/table/colgroup-spanning-groups-rules.html
+/sdcard/android/layout_tests/fast/table/insert-row-before-form.html
+/sdcard/android/layout_tests/fast/table/rowspan-paint-order.html
+/sdcard/android/layout_tests/fast/table/rtl-cell-display-none-assert.html
+/sdcard/android/layout_tests/fast/table/insert-cell-before-form.html
+/sdcard/android/layout_tests/fast/table/replaced-percent-height.html
+/sdcard/android/layout_tests/fast/table/text-field-baseline.html
+/sdcard/android/layout_tests/fast/table/table-display-types.html
+/sdcard/android/layout_tests/fast/table/table-hspace-align-center.html
+/sdcard/android/layout_tests/fast/table/caption-relayout.html
+/sdcard/android/layout_tests/fast/table/020.html
+/sdcard/android/layout_tests/fast/table/fixed-table-non-cell-in-row.html
+/sdcard/android/layout_tests/fast/table/004.html
+/sdcard/android/layout_tests/fast/table/032.html
+/sdcard/android/layout_tests/fast/table/row-height-recalc.html
+/sdcard/android/layout_tests/fast/table/016.html
+/sdcard/android/layout_tests/fast/table/absolute-table-at-bottom.html
+/sdcard/android/layout_tests/fast/table/028.html
+/sdcard/android/layout_tests/fast/table/spanOverlapRepaint.html
+/sdcard/android/layout_tests/fast/table/invisible-cell-background.html
+/sdcard/android/layout_tests/fast/table/vertical-align-baseline.html
+/sdcard/android/layout_tests/fast/table/cell-coalescing.html
+/sdcard/android/layout_tests/fast/table/wide-colspan.html
+/sdcard/android/layout_tests/fast/table/rowindex.html
+/sdcard/android/layout_tests/fast/table/001.html
+/sdcard/android/layout_tests/fast/table/remove-td-display-none.html
+/sdcard/android/layout_tests/fast/table/013.html
+/sdcard/android/layout_tests/fast/table/041.html
+/sdcard/android/layout_tests/fast/table/colgroup-preceded-by-caption.html
+/sdcard/android/layout_tests/fast/table/025.html
+/sdcard/android/layout_tests/fast/table/giantCellspacing.html
+/sdcard/android/layout_tests/fast/table/009.html
+/sdcard/android/layout_tests/fast/table/edge-offsets.html
+/sdcard/android/layout_tests/fast/table/giantRowspan.html
+/sdcard/android/layout_tests/fast/table/inline-form-assert.html
+/sdcard/android/layout_tests/fast/table/overflowHidden.html
+/sdcard/android/layout_tests/fast/table/rules-attr-dynchange2.html
+/sdcard/android/layout_tests/fast/table/height-percent-test.html
+/sdcard/android/layout_tests/fast/table/multiple-percent-height-rows.html
+/sdcard/android/layout_tests/fast/table/giantRowspan2.html
+/sdcard/android/layout_tests/fast/table/010.html
+/sdcard/android/layout_tests/fast/table/tableInsideCaption.html
+/sdcard/android/layout_tests/fast/table/022.html
+/sdcard/android/layout_tests/fast/table/006.html
+/sdcard/android/layout_tests/fast/table/034.html
+/sdcard/android/layout_tests/fast/table/append-cells.html
+/sdcard/android/layout_tests/fast/table/018.html
+/sdcard/android/layout_tests/fast/table/percent-widths-stretch.html
+/sdcard/android/layout_tests/fast/table/prepend-in-anonymous-table.html
+/sdcard/android/layout_tests/fast/table/floating-th.html
+/sdcard/android/layout_tests/fast/table/empty-section-crash.html
+/sdcard/android/layout_tests/fast/table/form-with-table-style.html
+/sdcard/android/layout_tests/fast/table/003.html
+/sdcard/android/layout_tests/fast/table/031.html
+/sdcard/android/layout_tests/fast/table/015.html
+/sdcard/android/layout_tests/fast/table/027.html
+/sdcard/android/layout_tests/fast/table/039.html
+/sdcard/android/layout_tests/fast/css/counters/invalidate-cached-counter-node.html
+/sdcard/android/layout_tests/fast/css/counters/counter-text-security.html
+/sdcard/android/layout_tests/fast/css/counters/counter-text-transform.html
+/sdcard/android/layout_tests/fast/css/variables/multiple-term-test.html
+/sdcard/android/layout_tests/fast/css/variables/colors-test.html
+/sdcard/android/layout_tests/fast/css/variables/font-test.html
+/sdcard/android/layout_tests/fast/css/variables/multiple-blocks-test.html
+/sdcard/android/layout_tests/fast/css/variables/misplaced-variables-test.html
+/sdcard/android/layout_tests/fast/css/variables/invalid-variable-test.html
+/sdcard/android/layout_tests/fast/css/variables/misplaced-import-test.html
+/sdcard/android/layout_tests/fast/css/variables/import-test.html
+/sdcard/android/layout_tests/fast/css/variables/inline-style-test.html
+/sdcard/android/layout_tests/fast/css/variables/declaration-block-test.html
+/sdcard/android/layout_tests/fast/css/variables/margin-test.html
+/sdcard/android/layout_tests/fast/css/variables/set-variable-test.html
+/sdcard/android/layout_tests/fast/css/variables/override-test.html
+/sdcard/android/layout_tests/fast/css/variables/remove-variable-test.html
+/sdcard/android/layout_tests/fast/css/variables/variable-iteration-test.html
+/sdcard/android/layout_tests/fast/css/variables/image-test.html
+/sdcard/android/layout_tests/fast/css/variables/block-cycle-test.html
+/sdcard/android/layout_tests/fast/css/variables/shorthand-test.html
+/sdcard/android/layout_tests/fast/css/variables/print-test.html
+/sdcard/android/layout_tests/fast/css/namespaces/001.xml
+/sdcard/android/layout_tests/fast/css/namespaces/002.xml
+/sdcard/android/layout_tests/fast/css/namespaces/003.xml
+/sdcard/android/layout_tests/fast/css/namespaces/004.xml
+/sdcard/android/layout_tests/fast/css/namespaces/005.xml
+/sdcard/android/layout_tests/fast/css/namespaces/006.xml
+/sdcard/android/layout_tests/fast/css/namespaces/007.xml
+/sdcard/android/layout_tests/fast/css/font-face-in-media-rule.html
+/sdcard/android/layout_tests/fast/css/font-face-default-font.html
+/sdcard/android/layout_tests/fast/css/first-letter-float-after-float.html
+/sdcard/android/layout_tests/fast/css/invalidation-errors-2.html
+/sdcard/android/layout_tests/fast/css/line-height-negative.html
+/sdcard/android/layout_tests/fast/css/only-child-pseudo-class.html
+/sdcard/android/layout_tests/fast/css/008.html
+/sdcard/android/layout_tests/fast/css/first-of-type-pseudo-class.html
+/sdcard/android/layout_tests/fast/css/ZeroOpacityLayers2.html
+/sdcard/android/layout_tests/fast/css/target-fragment-match.html
+/sdcard/android/layout_tests/fast/css/attribute-selector-dynamic.xml
+/sdcard/android/layout_tests/fast/css/zoom-font-size.html
+/sdcard/android/layout_tests/fast/css/live-cssrules.html
+/sdcard/android/layout_tests/fast/css/005.html
+/sdcard/android/layout_tests/fast/css/first-letter-hover.html
+/sdcard/android/layout_tests/fast/css/clip-zooming.html
+/sdcard/android/layout_tests/fast/css/color-quirk.html
+/sdcard/android/layout_tests/fast/css/resize-corner-tracking-transformed.html
+/sdcard/android/layout_tests/fast/css/selector-set-attribute.html
+/sdcard/android/layout_tests/fast/css/attribute-selector-empty-value.html
+/sdcard/android/layout_tests/fast/css/line-height-overflow.html
+/sdcard/android/layout_tests/fast/css/002.html
+/sdcard/android/layout_tests/fast/css/empty-generated-content.html
+/sdcard/android/layout_tests/fast/css/border-radius-outline-offset.html
+/sdcard/android/layout_tests/fast/css/background-image-with-baseurl.html
+/sdcard/android/layout_tests/fast/css/hsla-color.html
+/sdcard/android/layout_tests/fast/css/first-letter-skip-out-of-flow.html
+/sdcard/android/layout_tests/fast/css/font-face-multiple-remote-sources.html
+/sdcard/android/layout_tests/fast/css/pseudo-cache-stale.html
+/sdcard/android/layout_tests/fast/css/hover-subselector.html
+/sdcard/android/layout_tests/fast/css/margin-bottom-form-element-strict.html
+/sdcard/android/layout_tests/fast/css/shadow-multiple.html
+/sdcard/android/layout_tests/fast/css/import_with_baseurl.html
+/sdcard/android/layout_tests/fast/css/list-outline.html
+/sdcard/android/layout_tests/fast/css/apple-prefix.html
+/sdcard/android/layout_tests/fast/css/line-height.html
+/sdcard/android/layout_tests/fast/css/first-letter-visibility.html
+/sdcard/android/layout_tests/fast/css/acid2.html
+/sdcard/android/layout_tests/fast/css/font_property_normal.html
+/sdcard/android/layout_tests/fast/css/css-imports.html
+/sdcard/android/layout_tests/fast/css/last-of-type-pseudo-class.html
+/sdcard/android/layout_tests/fast/css/last-child-pseudo-class.html
+/sdcard/android/layout_tests/fast/css/visibility-hit-test.html
+/sdcard/android/layout_tests/fast/css/absolute-poition-in-rtl-parent.html
+/sdcard/android/layout_tests/fast/css/content-dynamic.html
+/sdcard/android/layout_tests/fast/css/acid2-pixel.html
+/sdcard/android/layout_tests/fast/css/transition-color-unspecified.html
+/sdcard/android/layout_tests/fast/css/table-text-align-strict.html
+/sdcard/android/layout_tests/fast/css/transform-default-parameter.html
+/sdcard/android/layout_tests/fast/css/text-overflow-ellipsis-bidi.html
+/sdcard/android/layout_tests/fast/css/contentImage.html
+/sdcard/android/layout_tests/fast/css/value-list-out-of-bounds-crash.html
+/sdcard/android/layout_tests/fast/css/color-strict.html
+/sdcard/android/layout_tests/fast/css/ignore-text-zoom.html
+/sdcard/android/layout_tests/fast/css/max-height-none.html
+/sdcard/android/layout_tests/fast/css/invalidation-errors-3.html
+/sdcard/android/layout_tests/fast/css/empty-pseudo-class.html
+/sdcard/android/layout_tests/fast/css/begin-end-contain-selector-empty-value.html
+/sdcard/android/layout_tests/fast/css/find-next-layer.html
+/sdcard/android/layout_tests/fast/css/text-overflow-ellipsis.html
+/sdcard/android/layout_tests/fast/css/contentDiv.html
+/sdcard/android/layout_tests/fast/css/invalid-pseudo-classes.html
+/sdcard/android/layout_tests/fast/css/disabled-author-styles.html
+/sdcard/android/layout_tests/fast/css/text-security.html
+/sdcard/android/layout_tests/fast/css/font-weight-1.html
+/sdcard/android/layout_tests/fast/css/nested-floating-relative-position-percentages.html
+/sdcard/android/layout_tests/fast/css/margin-bottom-form-element-quirk.html
+/sdcard/android/layout_tests/fast/css/font-shorthand-weight-only.html
+/sdcard/android/layout_tests/fast/css/006.html
+/sdcard/android/layout_tests/fast/css/fieldset-display-row.html
+/sdcard/android/layout_tests/fast/css/border-height.html
+/sdcard/android/layout_tests/fast/css/css2-system-fonts.html
+/sdcard/android/layout_tests/fast/css/imageTileOpacity.html
+/sdcard/android/layout_tests/fast/css/font-face-remote.html
+/sdcard/android/layout_tests/fast/css/003.html
+/sdcard/android/layout_tests/fast/css/error-in-last-decl.html
+/sdcard/android/layout_tests/fast/css/zoom-property-parsing.html
+/sdcard/android/layout_tests/fast/css/style-outside-head.html
+/sdcard/android/layout_tests/fast/css/positioned-overflow-scroll.html
+/sdcard/android/layout_tests/fast/css/first-letter-capitalized.html
+/sdcard/android/layout_tests/fast/css/font-face-locally-installed.html
+/sdcard/android/layout_tests/fast/css/word-space-extra.html
+/sdcard/android/layout_tests/fast/css/first-letter-float.html
+/sdcard/android/layout_tests/fast/css/simple-selector-chain-parsing.html
+/sdcard/android/layout_tests/fast/css/xml-stylesheet-pi-not-in-prolog.xml
+/sdcard/android/layout_tests/fast/css/continuationCrash.html
+/sdcard/android/layout_tests/fast/css/vertical-align-lengths.html
+/sdcard/android/layout_tests/fast/css/first-child-pseudo-class.html
+/sdcard/android/layout_tests/fast/css/percent-top-value-with-relative-position.html
+/sdcard/android/layout_tests/fast/css/beforeSelectorOnCodeElement.html
+/sdcard/android/layout_tests/fast/css/getFloatValueForUnit.html
+/sdcard/android/layout_tests/fast/css/first-letter-detach.html
+/sdcard/android/layout_tests/fast/css/line-height-font-order.html
+/sdcard/android/layout_tests/fast/css/text-overflow-ellipsis-strict.html
+/sdcard/android/layout_tests/fast/css/font-face-unicode-range.html
+/sdcard/android/layout_tests/fast/css/layerZOrderCrash.html
+/sdcard/android/layout_tests/fast/css/compare-content-style.html
+/sdcard/android/layout_tests/fast/css/import-rule-regression-11590.html
+/sdcard/android/layout_tests/fast/css/last-child-style-sharing.html
+/sdcard/android/layout_tests/fast/css/css3-modsel-22.html
+/sdcard/android/layout_tests/fast/css/ex-after-font-variant.html
+/sdcard/android/layout_tests/fast/css/quirk-orphaned-units.html
+/sdcard/android/layout_tests/fast/css/outline-auto-location.html
+/sdcard/android/layout_tests/fast/css/margin-top-bottom-dynamic.html
+/sdcard/android/layout_tests/fast/css/font-face-descriptor-multiple-values.html
+/sdcard/android/layout_tests/fast/css/empty-body-test.html
+/sdcard/android/layout_tests/fast/css/007.html
+/sdcard/android/layout_tests/fast/css/link-outside-head.html
+/sdcard/android/layout_tests/fast/css/font-size-negative.html
+/sdcard/android/layout_tests/fast/css/rem-units-on-root.html
+/sdcard/android/layout_tests/fast/css/position-negative-top-margin.html
+/sdcard/android/layout_tests/fast/css/ZeroOpacityLayers.html
+/sdcard/android/layout_tests/fast/css/only-of-type-pseudo-class.html
+/sdcard/android/layout_tests/fast/css/004.html
+/sdcard/android/layout_tests/fast/css/rtl-ordering.html
+/sdcard/android/layout_tests/fast/css/affected-by-hover-after-style-change.html
+/sdcard/android/layout_tests/fast/css/resize-corner-tracking.html
+/sdcard/android/layout_tests/fast/css/invalidation-errors.html
+/sdcard/android/layout_tests/fast/css/background-shorthand-invalid-url.html
+/sdcard/android/layout_tests/fast/css/MarqueeLayoutTest.html
+/sdcard/android/layout_tests/fast/css/textCapitalizeEdgeCases.html
+/sdcard/android/layout_tests/fast/css/001.html
+/sdcard/android/layout_tests/fast/css/hsl-color.html
+/sdcard/android/layout_tests/fast/css/font-face-implicit-local-font.html
+/sdcard/android/layout_tests/fast/css/first-letter-recalculation.html
+/sdcard/android/layout_tests/fast/css/rem-dynamic-scaling.html
+/sdcard/android/layout_tests/fast/css/inline-properties-important.html
+/sdcard/android/layout_tests/fast/css/dynamic-sibling-selector.html
+/sdcard/android/layout_tests/fast/css/table-text-align-quirk.html
+/sdcard/android/layout_tests/fast/css/nth-child-dynamic.html
+/sdcard/android/layout_tests/fast/css/outline-auto-empty-rects.html
+/sdcard/android/layout_tests/fast/css/font-face-multiple-faces.html
+/sdcard/android/layout_tests/fast/css/rgb-float.html
+/sdcard/android/layout_tests/fast/css/pendingStylesheetFontSize.html
+/sdcard/android/layout_tests/fast/css/contentDivWithChildren.html
+/sdcard/android/layout_tests/fast/css/universal-hover-quirk.html
+/sdcard/android/layout_tests/fast/css/css3-nth-child.html
+/sdcard/android/layout_tests/fast/css/style-parsed-outside-head.html
+/sdcard/android/layout_tests/fast/css/percentage-non-integer.html
+/sdcard/android/layout_tests/fast/css/nested-layers-with-hover.html
+/sdcard/android/layout_tests/fast/css/negative-nth-child.html
+/sdcard/android/layout_tests/fast/box-sizing/panels-one.html
+/sdcard/android/layout_tests/fast/box-sizing/percentage-height.html
+/sdcard/android/layout_tests/fast/box-sizing/box-sizing.html
+/sdcard/android/layout_tests/fast/box-sizing/panels-two.html
+/sdcard/android/layout_tests/fast/block/basic/minheight.html
+/sdcard/android/layout_tests/fast/block/basic/min-pref-width-nowrap-floats.html
+/sdcard/android/layout_tests/fast/block/basic/fieldset-stretch-to-legend.html
+/sdcard/android/layout_tests/fast/block/basic/white-space-pre-wraps.html
+/sdcard/android/layout_tests/fast/block/basic/adding-near-anonymous-block.html
+/sdcard/android/layout_tests/fast/block/basic/quirk-percent-height-grandchild.html
+/sdcard/android/layout_tests/fast/block/basic/001.html
+/sdcard/android/layout_tests/fast/block/basic/010.html
+/sdcard/android/layout_tests/fast/block/basic/quirk-height.html
+/sdcard/android/layout_tests/fast/block/basic/020.html
+/sdcard/android/layout_tests/fast/block/basic/002.html
+/sdcard/android/layout_tests/fast/block/basic/011.html
+/sdcard/android/layout_tests/fast/block/basic/text-indent-rtl.html
+/sdcard/android/layout_tests/fast/block/basic/021.html
+/sdcard/android/layout_tests/fast/block/basic/003.html
+/sdcard/android/layout_tests/fast/block/basic/012.html
+/sdcard/android/layout_tests/fast/block/basic/013.html
+/sdcard/android/layout_tests/fast/block/basic/004.html
+/sdcard/android/layout_tests/fast/block/basic/014.html
+/sdcard/android/layout_tests/fast/block/basic/005.html
+/sdcard/android/layout_tests/fast/block/basic/015.html
+/sdcard/android/layout_tests/fast/block/basic/006.html
+/sdcard/android/layout_tests/fast/block/basic/016.html
+/sdcard/android/layout_tests/fast/block/basic/007.html
+/sdcard/android/layout_tests/fast/block/basic/008.html
+/sdcard/android/layout_tests/fast/block/basic/009.html
+/sdcard/android/layout_tests/fast/block/basic/018.html
+/sdcard/android/layout_tests/fast/block/basic/019.html
+/sdcard/android/layout_tests/fast/block/positioning/auto/001.html
+/sdcard/android/layout_tests/fast/block/positioning/auto/002.html
+/sdcard/android/layout_tests/fast/block/positioning/auto/003.html
+/sdcard/android/layout_tests/fast/block/positioning/auto/004.html
+/sdcard/android/layout_tests/fast/block/positioning/auto/005.html
+/sdcard/android/layout_tests/fast/block/positioning/auto/006.html
+/sdcard/android/layout_tests/fast/block/positioning/auto/007.html
+/sdcard/android/layout_tests/fast/block/positioning/059.html
+/sdcard/android/layout_tests/fast/block/positioning/negative-rel-position.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-short-rtl.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-short-ltr.html
+/sdcard/android/layout_tests/fast/block/positioning/fixed-positioning-scrollbar-bug.html
+/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-replaced-float.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-positioned-overconstrained.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-2.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr-2.html
+/sdcard/android/layout_tests/fast/block/positioning/020.html
+/sdcard/android/layout_tests/fast/block/positioning/012.html
+/sdcard/android/layout_tests/fast/block/positioning/004.html
+/sdcard/android/layout_tests/fast/block/positioning/040.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-position-direction-strict.html
+/sdcard/android/layout_tests/fast/block/positioning/032.html
+/sdcard/android/layout_tests/fast/block/positioning/060.html
+/sdcard/android/layout_tests/fast/block/positioning/024.html
+/sdcard/android/layout_tests/fast/block/positioning/052.html
+/sdcard/android/layout_tests/fast/block/positioning/016.html
+/sdcard/android/layout_tests/fast/block/positioning/044.html
+/sdcard/android/layout_tests/fast/block/positioning/008.html
+/sdcard/android/layout_tests/fast/block/positioning/036.html
+/sdcard/android/layout_tests/fast/block/positioning/028.html
+/sdcard/android/layout_tests/fast/block/positioning/056.html
+/sdcard/android/layout_tests/fast/block/positioning/048.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-position-direction-quirk.html
+/sdcard/android/layout_tests/fast/block/positioning/replaced-inside-fixed-top-bottom.html
+/sdcard/android/layout_tests/fast/block/positioning/pref-width-change.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr-3.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-3.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl.html
+/sdcard/android/layout_tests/fast/block/positioning/001.html
+/sdcard/android/layout_tests/fast/block/positioning/021.html
+/sdcard/android/layout_tests/fast/block/positioning/013.html
+/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-block.html
+/sdcard/android/layout_tests/fast/block/positioning/005.html
+/sdcard/android/layout_tests/fast/block/positioning/041.html
+/sdcard/android/layout_tests/fast/block/positioning/033.html
+/sdcard/android/layout_tests/fast/block/positioning/025.html
+/sdcard/android/layout_tests/fast/block/positioning/061.html
+/sdcard/android/layout_tests/fast/block/positioning/017.html
+/sdcard/android/layout_tests/fast/block/positioning/053.html
+/sdcard/android/layout_tests/fast/block/positioning/009.html
+/sdcard/android/layout_tests/fast/block/positioning/045.html
+/sdcard/android/layout_tests/fast/block/positioning/037.html
+/sdcard/android/layout_tests/fast/block/positioning/029.html
+/sdcard/android/layout_tests/fast/block/positioning/057.html
+/sdcard/android/layout_tests/fast/block/positioning/049.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-with-html-border-quirks.html
+/sdcard/android/layout_tests/fast/block/positioning/leftmargin-topmargin.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-length-of-neg-666666.html
+/sdcard/android/layout_tests/fast/block/positioning/complex-percentage-height.html
+/sdcard/android/layout_tests/fast/block/positioning/auto-height-with-top-and-bottom.html
+/sdcard/android/layout_tests/fast/block/positioning/010.html
+/sdcard/android/layout_tests/fast/block/positioning/002.html
+/sdcard/android/layout_tests/fast/block/positioning/030.html
+/sdcard/android/layout_tests/fast/block/positioning/relayout-on-position-change.html
+/sdcard/android/layout_tests/fast/block/positioning/022.html
+/sdcard/android/layout_tests/fast/block/positioning/padding-percent.html
+/sdcard/android/layout_tests/fast/block/positioning/014.html
+/sdcard/android/layout_tests/fast/block/positioning/050.html
+/sdcard/android/layout_tests/fast/block/positioning/042.html
+/sdcard/android/layout_tests/fast/block/positioning/006.html
+/sdcard/android/layout_tests/fast/block/positioning/034.html
+/sdcard/android/layout_tests/fast/block/positioning/offsetLeft-offsetTop-borders.html
+/sdcard/android/layout_tests/fast/block/positioning/062.html
+/sdcard/android/layout_tests/fast/block/positioning/026.html
+/sdcard/android/layout_tests/fast/block/positioning/054.html
+/sdcard/android/layout_tests/fast/block/positioning/018.html
+/sdcard/android/layout_tests/fast/block/positioning/046.html
+/sdcard/android/layout_tests/fast/block/positioning/abs-inside-inline-rel.html
+/sdcard/android/layout_tests/fast/block/positioning/038.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-with-html-border-strict.html
+/sdcard/android/layout_tests/fast/block/positioning/058.html
+/sdcard/android/layout_tests/fast/block/positioning/negative-right-pos.html
+/sdcard/android/layout_tests/fast/block/positioning/relative-overconstrained.html
+/sdcard/android/layout_tests/fast/block/positioning/child-of-absolute-with-auto-height.html
+/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-replaced.html
+/sdcard/android/layout_tests/fast/block/positioning/height-change.html
+/sdcard/android/layout_tests/fast/block/positioning/window-height-change.html
+/sdcard/android/layout_tests/fast/block/positioning/011.html
+/sdcard/android/layout_tests/fast/block/positioning/003.html
+/sdcard/android/layout_tests/fast/block/positioning/move-with-auto-width.html
+/sdcard/android/layout_tests/fast/block/positioning/031.html
+/sdcard/android/layout_tests/fast/block/positioning/023.html
+/sdcard/android/layout_tests/fast/block/positioning/051.html
+/sdcard/android/layout_tests/fast/block/positioning/015.html
+/sdcard/android/layout_tests/fast/block/positioning/043.html
+/sdcard/android/layout_tests/fast/block/positioning/007.html
+/sdcard/android/layout_tests/fast/block/positioning/035.html
+/sdcard/android/layout_tests/fast/block/positioning/027.html
+/sdcard/android/layout_tests/fast/block/positioning/055.html
+/sdcard/android/layout_tests/fast/block/positioning/019.html
+/sdcard/android/layout_tests/fast/block/positioning/047.html
+/sdcard/android/layout_tests/fast/block/positioning/039.html
+/sdcard/android/layout_tests/fast/block/positioning/inline-block-relposition.html
+/sdcard/android/layout_tests/fast/block/float/vertical-move-relayout.html
+/sdcard/android/layout_tests/fast/block/float/overlapping-floats-with-overflow-hidden.html
+/sdcard/android/layout_tests/fast/block/float/tableshifting.html
+/sdcard/android/layout_tests/fast/block/float/table-relayout.html
+/sdcard/android/layout_tests/fast/block/float/nested-clearance.html
+/sdcard/android/layout_tests/fast/block/float/br-with-clear-2.html
+/sdcard/android/layout_tests/fast/block/float/020.html
+/sdcard/android/layout_tests/fast/block/float/012.html
+/sdcard/android/layout_tests/fast/block/float/004.html
+/sdcard/android/layout_tests/fast/block/float/032.html
+/sdcard/android/layout_tests/fast/block/float/024.html
+/sdcard/android/layout_tests/fast/block/float/016.html
+/sdcard/android/layout_tests/fast/block/float/008.html
+/sdcard/android/layout_tests/fast/block/float/028.html
+/sdcard/android/layout_tests/fast/block/float/shrink-to-fit-width.html
+/sdcard/android/layout_tests/fast/block/float/clamped-right-float.html
+/sdcard/android/layout_tests/fast/block/float/independent-align-positioning.html
+/sdcard/android/layout_tests/fast/block/float/float-on-zero-height-line.html
+/sdcard/android/layout_tests/fast/block/float/nowrap-clear-min-width.html
+/sdcard/android/layout_tests/fast/block/float/overhanging-after-height-decrease-offsets.html
+/sdcard/android/layout_tests/fast/block/float/001.html
+/sdcard/android/layout_tests/fast/block/float/021.html
+/sdcard/android/layout_tests/fast/block/float/013.html
+/sdcard/android/layout_tests/fast/block/float/nopaint-after-layer-destruction2.html
+/sdcard/android/layout_tests/fast/block/float/005.html
+/sdcard/android/layout_tests/fast/block/float/033.html
+/sdcard/android/layout_tests/fast/block/float/025.html
+/sdcard/android/layout_tests/fast/block/float/017.html
+/sdcard/android/layout_tests/fast/block/float/009.html
+/sdcard/android/layout_tests/fast/block/float/float-in-float-hit-testing.html
+/sdcard/android/layout_tests/fast/block/float/029.html
+/sdcard/android/layout_tests/fast/block/float/4145535Crash.html
+/sdcard/android/layout_tests/fast/block/float/editable-text-overlapping-float.html
+/sdcard/android/layout_tests/fast/block/float/nestedAnonymousBlocks.html
+/sdcard/android/layout_tests/fast/block/float/intruding-painted-twice.html
+/sdcard/android/layout_tests/fast/block/float/010.html
+/sdcard/android/layout_tests/fast/block/float/002.html
+/sdcard/android/layout_tests/fast/block/float/dynamic-unfloat-pref-width.html
+/sdcard/android/layout_tests/fast/block/float/marquee-shrink-to-avoid-floats.html
+/sdcard/android/layout_tests/fast/block/float/030.html
+/sdcard/android/layout_tests/fast/block/float/022.html
+/sdcard/android/layout_tests/fast/block/float/014.html
+/sdcard/android/layout_tests/fast/block/float/006.html
+/sdcard/android/layout_tests/fast/block/float/relative-painted-twice.html
+/sdcard/android/layout_tests/fast/block/float/034.html
+/sdcard/android/layout_tests/fast/block/float/026.html
+/sdcard/android/layout_tests/fast/block/float/018.html
+/sdcard/android/layout_tests/fast/block/float/width-update-after-clear.html
+/sdcard/android/layout_tests/fast/block/float/nopaint-after-layer-destruction.html
+/sdcard/android/layout_tests/fast/block/float/float-in-float-painting.html
+/sdcard/android/layout_tests/fast/block/float/overhanging-after-height-decrease.html
+/sdcard/android/layout_tests/fast/block/float/float-avoidance.html
+/sdcard/android/layout_tests/fast/block/float/narrow-after-wide.html
+/sdcard/android/layout_tests/fast/block/float/multiple-float-positioning.html
+/sdcard/android/layout_tests/fast/block/float/br-with-clear.html
+/sdcard/android/layout_tests/fast/block/float/011.html
+/sdcard/android/layout_tests/fast/block/float/negative-margin-clear.html
+/sdcard/android/layout_tests/fast/block/float/003.html
+/sdcard/android/layout_tests/fast/block/float/031.html
+/sdcard/android/layout_tests/fast/block/float/023.html
+/sdcard/android/layout_tests/fast/block/float/015.html
+/sdcard/android/layout_tests/fast/block/float/007.html
+/sdcard/android/layout_tests/fast/block/float/035.html
+/sdcard/android/layout_tests/fast/block/float/027.html
+/sdcard/android/layout_tests/fast/block/float/019.html
+/sdcard/android/layout_tests/fast/block/float/nestedAnonymousBlocks2.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/059.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/empty-clear-blocks.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/010.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/negative-margins.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/002.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/020.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/101.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/030.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/012.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/040.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/022.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/004.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/103.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/032.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/006.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/042.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/016.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/034.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/062.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/044.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/026.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/018.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/028.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/056.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/038.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/058.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/100.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/001.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/011.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/102.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/021.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/003.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/031.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/005.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/041.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/104.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/033.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/015.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/025.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/043.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/035.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/017.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/027.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/045.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/063.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/037.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/019.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/055.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/029.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/039.html
+/sdcard/android/layout_tests/fast/block/margin-collapse/057.html
+/sdcard/android/layout_tests/fast/runin/generated.html
+/sdcard/android/layout_tests/fast/runin/001.html
+/sdcard/android/layout_tests/fast/runin/002.html
+/sdcard/android/layout_tests/fast/parser/comments.html
+/sdcard/android/layout_tests/fast/parser/title-error-test.html
+/sdcard/android/layout_tests/fast/parser/entity-comment-in-textarea.html
+/sdcard/android/layout_tests/fast/parser/parseCommentsInTitles.html
+/sdcard/android/layout_tests/fast/parser/open-comment-in-style.html
+/sdcard/android/layout_tests/fast/parser/document-write-option.html
+/sdcard/android/layout_tests/fast/parser/comment-in-textarea.html
+/sdcard/android/layout_tests/fast/parser/fonts.html
+/sdcard/android/layout_tests/fast/parser/comment-in-style.html
+/sdcard/android/layout_tests/fast/parser/comment-in-script.html
+/sdcard/android/layout_tests/fast/parser/broken-comments-vs-parsing-mode.html
+/sdcard/android/layout_tests/fast/parser/entity-comment-in-style.html
+/sdcard/android/layout_tests/fast/parser/xhtml-alternate-entities.xml
+/sdcard/android/layout_tests/fast/parser/nofoo-tags-inside-paragraph.html
+/sdcard/android/layout_tests/fast/parser/bad-xml-slash.html
+/sdcard/android/layout_tests/fast/parser/001.html
+/sdcard/android/layout_tests/fast/parser/open-comment-in-textarea.html
+/sdcard/android/layout_tests/fast/parser/tabs-in-scripts.html
+/sdcard/android/layout_tests/fast/parser/remove-block-in-residual-style.html
+/sdcard/android/layout_tests/fast/parser/style-script-head-test.html
+/sdcard/android/layout_tests/fast/layers/zindex-ridonkulous.html
+/sdcard/android/layout_tests/fast/layers/self-painting-outline.html
+/sdcard/android/layout_tests/fast/layers/positioned-inside-root-with-margins.html
+/sdcard/android/layout_tests/fast/layers/video-layer.html
+/sdcard/android/layout_tests/fast/layers/inline-dirty-z-order-lists.html
+/sdcard/android/layout_tests/fast/layers/layer-visibility-sublayer.html
+/sdcard/android/layout_tests/fast/layers/opacity-outline.html
+/sdcard/android/layout_tests/fast/layers/add-layer-with-nested-stacking.html
+/sdcard/android/layout_tests/fast/layers/layer-content-visibility-change.html
+/sdcard/android/layout_tests/fast/layers/normal-flow-hit-test.html
+/sdcard/android/layout_tests/fast/layers/remove-layer-with-nested-stacking.html
+/sdcard/android/layout_tests/fast/layers/layer-visibility.html
+/sdcard/android/layout_tests/fast/layers/zindex-inherit.html
+/sdcard/android/layout_tests/fast/layers/overflow-scroll-auto-switch.html
+/sdcard/android/layout_tests/fast/layers/opacity-transforms.html
+/sdcard/android/layout_tests/fast/layers/scroll-rect-to-visible.html
+/sdcard/android/layout_tests/fast/layers/opacity-stacking.html
+/sdcard/android/layout_tests/fast/layers/remove-only-this-layer-update.html
+/sdcard/android/layout_tests/fast/history/clicked-link-is-visited.html
+/sdcard/android/layout_tests/fast/backgrounds/repeat/mask-negative-offset-repeat.html
+/sdcard/android/layout_tests/fast/backgrounds/repeat/negative-offset-repeat.html
+/sdcard/android/layout_tests/fast/backgrounds/repeat/negative-offset-repeat-transformed.html
+/sdcard/android/layout_tests/fast/backgrounds/repeat/noRepeatCorrectClip.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize20.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize02.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize11.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize21.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize03.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize12.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize22.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize04.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize13.html
+/sdcard/android/layout_tests/fast/backgrounds/size/zero.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize05.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize14.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize06.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize15.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize07.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize16.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize08.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize17.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize09.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize18.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize19.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize10.html
+/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize01.html
+/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-2.html
+/sdcard/android/layout_tests/fast/backgrounds/background-origin-root-element.html
+/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-3.html
+/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-4.html
+/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-5.html
+/sdcard/android/layout_tests/fast/backgrounds/background-position-1.html
+/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-6.html
+/sdcard/android/layout_tests/fast/backgrounds/opacity-on-document-element.html
+/sdcard/android/layout_tests/fast/backgrounds/background-clip-text.html
+/sdcard/android/layout_tests/fast/backgrounds/svg-as-mask.html
+/sdcard/android/layout_tests/fast/backgrounds/solid-color-context-restore.html
+/sdcard/android/layout_tests/fast/backgrounds/mask-composite.html
+/sdcard/android/layout_tests/fast/backgrounds/animated-svg-as-background.html
+/sdcard/android/layout_tests/fast/backgrounds/body-generated-image-propagated-to-root.html
+/sdcard/android/layout_tests/fast/backgrounds/001.html
+/sdcard/android/layout_tests/fast/backgrounds/animated-gif-as-background.html
+/sdcard/android/layout_tests/fast/backgrounds/background-position-rounding.html
+/sdcard/android/layout_tests/fast/backgrounds/bgCompositeCopy.html
+/sdcard/android/layout_tests/fast/backgrounds/background-inherit-color-bug.html
+/sdcard/android/layout_tests/fast/backgrounds/animated-svg-as-mask.html
+/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-1.html
+/sdcard/android/layout_tests/fast/repaint/reflection-redraw.html
+/sdcard/android/layout_tests/fast/repaint/layer-full-repaint.html
+/sdcard/android/layout_tests/fast/repaint/subtree-root-clip.html
+/sdcard/android/layout_tests/fast/repaint/subtree-root-clip-3.html
+/sdcard/android/layout_tests/fast/repaint/layer-outline-horizontal.html
+/sdcard/android/layout_tests/fast/repaint/transform-layout-repaint.html
+/sdcard/android/layout_tests/fast/repaint/float-new-in-block.html
+/sdcard/android/layout_tests/fast/repaint/list-marker-2.html
+/sdcard/android/layout_tests/fast/repaint/layer-hide-when-needs-layout.html
+/sdcard/android/layout_tests/fast/repaint/layer-outline.html
+/sdcard/android/layout_tests/fast/repaint/table-section-overflow.html
+/sdcard/android/layout_tests/fast/repaint/body-background-image.html
+/sdcard/android/layout_tests/fast/repaint/shadow-multiple-strict-vertical.html
+/sdcard/android/layout_tests/fast/repaint/inline-outline-repaint.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-4.html
+/sdcard/android/layout_tests/fast/repaint/change-transform.html
+/sdcard/android/layout_tests/fast/repaint/fixed.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-8.html
+/sdcard/android/layout_tests/fast/repaint/erase-overflow.html
+/sdcard/android/layout_tests/fast/repaint/outline-child-repaint.html
+/sdcard/android/layout_tests/fast/repaint/float-overflow.html
+/sdcard/android/layout_tests/fast/repaint/containing-block-position-change.html
+/sdcard/android/layout_tests/fast/repaint/text-selection-rect-in-overflow.html
+/sdcard/android/layout_tests/fast/repaint/flexible-box-overflow-horizontal.html
+/sdcard/android/layout_tests/fast/repaint/table-cell-move.html
+/sdcard/android/layout_tests/fast/repaint/transform-absolute-child.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-10.html
+/sdcard/android/layout_tests/fast/repaint/opacity-change-on-overflow-float.html
+/sdcard/android/layout_tests/fast/repaint/float-move-during-layout.html
+/sdcard/android/layout_tests/fast/repaint/overflow-clip-subtree-layout.html
+/sdcard/android/layout_tests/fast/repaint/invisible-objects.html
+/sdcard/android/layout_tests/fast/repaint/shadow-multiple-strict-horizontal.html
+/sdcard/android/layout_tests/fast/repaint/focus-layers.html
+/sdcard/android/layout_tests/fast/repaint/inline-color-change.html
+/sdcard/android/layout_tests/fast/repaint/table-col-background.html
+/sdcard/android/layout_tests/fast/repaint/selection-after-remove.html
+/sdcard/android/layout_tests/fast/repaint/dynamic-table-vertical-alignment-change.html
+/sdcard/android/layout_tests/fast/repaint/flexible-box-overflow.html
+/sdcard/android/layout_tests/fast/repaint/table-two-pass-layout-overpaint.html
+/sdcard/android/layout_tests/fast/repaint/overflow-into-content.html
+/sdcard/android/layout_tests/fast/repaint/shadow-multiple-vertical.html
+/sdcard/android/layout_tests/fast/repaint/border-repaint-glitch.html
+/sdcard/android/layout_tests/fast/repaint/continuation-after-outline.html
+/sdcard/android/layout_tests/fast/repaint/intermediate-layout-position.html
+/sdcard/android/layout_tests/fast/repaint/table-section-repaint.html
+/sdcard/android/layout_tests/fast/repaint/clipped-relative.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-1.html
+/sdcard/android/layout_tests/fast/repaint/backgroundSizeRepaint.html
+/sdcard/android/layout_tests/fast/repaint/box-shadow-dynamic.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-5.html
+/sdcard/android/layout_tests/fast/repaint/text-shadow-horizontal.html
+/sdcard/android/layout_tests/fast/repaint/caret-outside-block.html
+/sdcard/android/layout_tests/fast/repaint/renderer-destruction-by-invalidateSelection-crash.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-9.html
+/sdcard/android/layout_tests/fast/repaint/float-in-new-block-with-layout-delta.html
+/sdcard/android/layout_tests/fast/repaint/transform-repaint-descendants.html
+/sdcard/android/layout_tests/fast/repaint/layout-state-relative.html
+/sdcard/android/layout_tests/fast/repaint/shadow-multiple-horizontal.html
+/sdcard/android/layout_tests/fast/repaint/border-fit-lines.html
+/sdcard/android/layout_tests/fast/repaint/repaint-resized-overflow.html
+/sdcard/android/layout_tests/fast/repaint/bugzilla-3509.html
+/sdcard/android/layout_tests/fast/repaint/inline-block-overflow.html
+/sdcard/android/layout_tests/fast/repaint/search-field-cancel.html
+/sdcard/android/layout_tests/fast/repaint/background-generated.html
+/sdcard/android/layout_tests/fast/repaint/bugzilla-6278.html
+/sdcard/android/layout_tests/fast/repaint/button-spurious-layout-hint.html
+/sdcard/android/layout_tests/fast/repaint/box-shadow-v.html
+/sdcard/android/layout_tests/fast/repaint/float-overflow-right.html
+/sdcard/android/layout_tests/fast/repaint/delete-into-nested-block.html
+/sdcard/android/layout_tests/fast/repaint/table-cell-collapsed-border.html
+/sdcard/android/layout_tests/fast/repaint/selection-after-delete.html
+/sdcard/android/layout_tests/fast/repaint/layout-state-only-positioned.html
+/sdcard/android/layout_tests/fast/repaint/lines-with-layout-delta.html
+/sdcard/android/layout_tests/fast/repaint/table-extra-bottom-grow.html
+/sdcard/android/layout_tests/fast/repaint/transform-relative-position.html
+/sdcard/android/layout_tests/fast/repaint/selection-gap-overflow-scroll.html
+/sdcard/android/layout_tests/fast/repaint/subtree-root-skipped.html
+/sdcard/android/layout_tests/fast/repaint/line-overflow.html
+/sdcard/android/layout_tests/fast/repaint/background-misaligned.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-2.html
+/sdcard/android/layout_tests/fast/repaint/text-append-dirty-lines.html
+/sdcard/android/layout_tests/fast/repaint/table-row.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-6.html
+/sdcard/android/layout_tests/fast/repaint/table-outer-border.html
+/sdcard/android/layout_tests/fast/repaint/transform-replaced-shadows.html
+/sdcard/android/layout_tests/fast/repaint/overflow-scroll-delete.html
+/sdcard/android/layout_tests/fast/repaint/layer-visibility.html
+/sdcard/android/layout_tests/fast/repaint/border-radius-repaint.html
+/sdcard/android/layout_tests/fast/repaint/table-collapsed-border.html
+/sdcard/android/layout_tests/fast/repaint/transform-translate.html
+/sdcard/android/layout_tests/fast/repaint/bugzilla-7235.html
+/sdcard/android/layout_tests/fast/repaint/reflection-repaint-test.html
+/sdcard/android/layout_tests/fast/repaint/4776765.html
+/sdcard/android/layout_tests/fast/repaint/selection-clear.html
+/sdcard/android/layout_tests/fast/repaint/bugzilla-6473.html
+/sdcard/android/layout_tests/fast/repaint/intermediate-layout-position-clip.html
+/sdcard/android/layout_tests/fast/repaint/focus-ring.html
+/sdcard/android/layout_tests/fast/repaint/table-cell-vertical-overflow.html
+/sdcard/android/layout_tests/fast/repaint/create-layer-repaint.html
+/sdcard/android/layout_tests/fast/repaint/subtree-root-clip-2.html
+/sdcard/android/layout_tests/fast/repaint/bugzilla-6388.html
+/sdcard/android/layout_tests/fast/repaint/overflow-outline-repaint.html
+/sdcard/android/layout_tests/fast/repaint/content-into-overflow.html
+/sdcard/android/layout_tests/fast/repaint/static-to-positioned.html
+/sdcard/android/layout_tests/fast/repaint/bugzilla-5699.html
+/sdcard/android/layout_tests/fast/repaint/transform-absolute-in-positioned-container.html
+/sdcard/android/layout_tests/fast/repaint/outline-repaint-glitch.html
+/sdcard/android/layout_tests/fast/repaint/overflow-delete-line.html
+/sdcard/android/layout_tests/fast/repaint/transform-disable-layoutstate.html
+/sdcard/android/layout_tests/fast/repaint/list-marker.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-3.html
+/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-7.html
+/sdcard/android/layout_tests/fast/repaint/outline-inset.html
+/sdcard/android/layout_tests/fast/repaint/box-shadow-h.html
+/sdcard/android/layout_tests/fast/repaint/4774354.html
+/sdcard/android/layout_tests/fast/repaint/clip-with-layout-delta.html
+/sdcard/android/layout_tests/fast/repaint/control-clip.html
+/sdcard/android/layout_tests/fast/repaint/selected-replaced.html
+/sdcard/android/layout_tests/fast/repaint/text-selection-rect-in-overflow-2.html
+/sdcard/android/layout_tests/fast/repaint/make-children-non-inline.html
+/sdcard/android/layout_tests/fast/repaint/text-shadow.html
+/sdcard/android/layout_tests/fast/repaint/outline-shrinking.html
+/sdcard/android/layout_tests/fast/repaint/layer-child-outline.html
+/sdcard/android/layout_tests/fast/loader/start-load-in-unload.html
+/sdcard/android/layout_tests/fast/loader/text-document-wrapping.html
+/sdcard/android/layout_tests/fast/xsl/document-function.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-extra-content-at-end.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-enc.xml
+/sdcard/android/layout_tests/fast/xsl/xslt_unicode.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-import-depth.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-enc16.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-enc16to16.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-missing-namespace-in-xslt.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-enc-cyr.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-relative-path.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-mismatched-tags-in-xslt.xml
+/sdcard/android/layout_tests/fast/xsl/xslt-entity.xml
+/sdcard/android/layout_tests/fast/canvas/fillrect-gradient-zero-stops.html
+/sdcard/android/layout_tests/fast/canvas/canvas-transforms-during-path.html
+/sdcard/android/layout_tests/fast/canvas/drawImage.html
+/sdcard/android/layout_tests/fast/canvas/shadow-offset-7.html
+/sdcard/android/layout_tests/fast/canvas/image-pattern-rotate.html
+/sdcard/android/layout_tests/fast/canvas/shadow-offset-4.html
+/sdcard/android/layout_tests/fast/canvas/drawImage-with-globalAlpha.html
+/sdcard/android/layout_tests/fast/canvas/canvas-text-baseline.html
+/sdcard/android/layout_tests/fast/canvas/canvas-as-image-incremental-repaint.html
+/sdcard/android/layout_tests/fast/canvas/shadow-offset-1.html
+/sdcard/android/layout_tests/fast/canvas/canvas-size-change-after-layout.html
+/sdcard/android/layout_tests/fast/canvas/canvas-resize-reset.html
+/sdcard/android/layout_tests/fast/canvas/canvas-bg.html
+/sdcard/android/layout_tests/fast/canvas/zero-size-fill-rect.html
+/sdcard/android/layout_tests/fast/canvas/shadow-offset-6.html
+/sdcard/android/layout_tests/fast/canvas/patternfill-repeat.html
+/sdcard/android/layout_tests/fast/canvas/image-object-in-canvas.html
+/sdcard/android/layout_tests/fast/canvas/shadow-offset-3.html
+/sdcard/android/layout_tests/fast/canvas/canvas-composite.html
+/sdcard/android/layout_tests/fast/canvas/quadraticCurveTo.xml
+/sdcard/android/layout_tests/fast/canvas/gradient-add-second-start-end-stop.html
+/sdcard/android/layout_tests/fast/canvas/fill-stroke-clip-reset-path.html
+/sdcard/android/layout_tests/fast/canvas/canvas-text-alignment.html
+/sdcard/android/layout_tests/fast/canvas/canvas-incremental-repaint.html
+/sdcard/android/layout_tests/fast/canvas/canvas-bg-zoom.html
+/sdcard/android/layout_tests/fast/canvas/canvasDrawingIntoSelf.html
+/sdcard/android/layout_tests/fast/canvas/canvas-as-image.html
+/sdcard/android/layout_tests/fast/canvas/canvas-before-css.html
+/sdcard/android/layout_tests/fast/canvas/canvas-incremental-repaint-2.html
+/sdcard/android/layout_tests/fast/canvas/shadow-offset-5.html
+/sdcard/android/layout_tests/fast/canvas/fillrect_gradient.html
+/sdcard/android/layout_tests/fast/canvas/shadow-offset-2.html
+/sdcard/android/layout_tests/fast/frames/contentWindow_Frame.html
+/sdcard/android/layout_tests/fast/frames/onlyCommentInIFrame.html
+/sdcard/android/layout_tests/fast/frames/content-opacity-2.html
+/sdcard/android/layout_tests/fast/frames/frame-src-attribute.html
+/sdcard/android/layout_tests/fast/frames/frameElement-frame.html
+/sdcard/android/layout_tests/fast/frames/empty-cols-attribute.html
+/sdcard/android/layout_tests/fast/frames/iframe-scrolling-attribute.html
+/sdcard/android/layout_tests/fast/frames/inline-object-inside-frameset.html
+/sdcard/android/layout_tests/fast/frames/valid.html
+/sdcard/android/layout_tests/fast/frames/no-frame-borders.html
+/sdcard/android/layout_tests/fast/frames/empty-frame-src.html
+/sdcard/android/layout_tests/fast/frames/calculate-round.html
+/sdcard/android/layout_tests/fast/frames/frame-navigation.html
+/sdcard/android/layout_tests/fast/frames/001.html
+/sdcard/android/layout_tests/fast/frames/viewsource-on-image-file.html
+/sdcard/android/layout_tests/fast/frames/invalid.html
+/sdcard/android/layout_tests/fast/frames/frameset-style-recalc.html
+/sdcard/android/layout_tests/fast/frames/viewsource-attribute.html
+/sdcard/android/layout_tests/fast/frames/002.html
+/sdcard/android/layout_tests/fast/frames/calculate-relative.html
+/sdcard/android/layout_tests/fast/frames/calculate-order.html
+/sdcard/android/layout_tests/fast/frames/calculate-percentage.html
+/sdcard/android/layout_tests/fast/frames/content-opacity-1.html
+/sdcard/android/layout_tests/fast/frames/iframe-text-contents.html
+/sdcard/android/layout_tests/fast/frames/frame-scrolling-attribute.html
+/sdcard/android/layout_tests/fast/frames/contentWindow_iFrame.html
+/sdcard/android/layout_tests/fast/frames/calculate-fixed.html
+/sdcard/android/layout_tests/fast/frames/frame-element-name.html
+/sdcard/android/layout_tests/fast/frames/frame-set-whitespace-attributes.html
+/sdcard/android/layout_tests/fast/frames/iframe-with-frameborder.html
+/sdcard/android/layout_tests/fast/frames/frameElement-iframe.html
+/sdcard/android/layout_tests/fast/reflections/inline-crash.html
+/sdcard/android/layout_tests/fast/reflections/reflection-masks-opacity.html
+/sdcard/android/layout_tests/fast/reflections/reflection-nesting.html
+/sdcard/android/layout_tests/fast/reflections/reflection-overflow-hidden.html
+/sdcard/android/layout_tests/fast/reflections/table-cell.html
+/sdcard/android/layout_tests/fast/reflections/reflection-masks.html
+/sdcard/android/layout_tests/fast/reflections/reflection-direction.html
+/sdcard/android/layout_tests/fonts/cursive.html
+/sdcard/android/layout_tests/fonts/default.html
+/sdcard/android/layout_tests/fonts/monospace.html
+/sdcard/android/layout_tests/fonts/fantasy.html
+/sdcard/android/layout_tests/fonts/serif.html
+/sdcard/android/layout_tests/fonts/sans-serif.html
+/sdcard/android/layout_tests/media/video-display-toggle.html
+/sdcard/android/layout_tests/media/video-transformed.html
+/sdcard/android/layout_tests/media/video-empty-source.html
+/sdcard/android/layout_tests/media/controls-strict.html
+/sdcard/android/layout_tests/media/audio-controls-rendering.html
+/sdcard/android/layout_tests/media/video-controls-visible-audio-only.html
+/sdcard/android/layout_tests/media/audio-no-installed-engines.html
+/sdcard/android/layout_tests/media/video-zoom.html
+/sdcard/android/layout_tests/media/video-zoom-controls.html
+/sdcard/android/layout_tests/media/video-controls-rendering.html
+/sdcard/android/layout_tests/media/controls-styling.html
+/sdcard/android/layout_tests/media/video-aspect-ratio.html
+/sdcard/android/layout_tests/media/controls-after-reload.html
+/sdcard/android/layout_tests/media/video-layer-crash.html
+/sdcard/android/layout_tests/plugins/netscape-dom-access.html
+/sdcard/android/layout_tests/plugins/embed-attributes-style.html
+/sdcard/android/layout_tests/printing/media-queries-print.html
+/sdcard/android/layout_tests/scrollbars/scrollbar-orientation.html
+/sdcard/android/layout_tests/scrollbars/scrollbar-buttons.html
+/sdcard/android/layout_tests/scrollbars/basic-scrollbar.html
+/sdcard/android/layout_tests/scrollbars/overflow-scrollbar-combinations.html
+/sdcard/android/layout_tests/scrollbars/disabled-scrollbar.html
+/sdcard/android/layout_tests/scrollbars/listbox-scrollbar-combinations.html
+/sdcard/android/layout_tests/security/block-test-no-port.html
+/sdcard/android/layout_tests/security/block-test.html
/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/insertTbodyRebuild1.html
/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/appendCellsRebuild1.html
/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/appendColGroup1.html
@@ -4073,8 +4208,45 @@
/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_purple.html
/sdcard/android/layout_tests/tables/mozilla/marvin/tr_valign_bottom.html
/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_id.xml
-/sdcard/android/layout_tests/css3/css3-modsel-33.html
-/sdcard/android/layout_tests/css3/css3-modsel-35.html
-/sdcard/android/layout_tests/css3/css3-modsel-36.html
-/sdcard/android/layout_tests/css3/css3-modsel-37.html
+/sdcard/android/layout_tests/transforms/2d/transform-borderbox.html
+/sdcard/android/layout_tests/transforms/2d/zoom-menulist.html
+/sdcard/android/layout_tests/transforms/2d/transform-origin-borderbox.html
+/sdcard/android/layout_tests/transforms/2d/compound-transforms-vs-containers.html
+/sdcard/android/layout_tests/transforms/3d/hit-testing/backface-hit-test.html
+/sdcard/android/layout_tests/transforms/3d/hit-testing/backface-no-transform-hit-test.html
+/sdcard/android/layout_tests/transforms/3d/hit-testing/rotated-hit-test.html
+/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-origins.html
+/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-deep.html
+/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-coplanar.html
+/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-preserve-3d.html
+/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-2.html
+/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-3.html
+/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping.html
+/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-overlapping.html
+/sdcard/android/layout_tests/transforms/3d/general/perspective-units.html
+/sdcard/android/layout_tests/transforms/3d/general/perspective-non-layer.html
+/sdcard/android/layout_tests/transforms/no_transform_hit_testing.html
/sdcard/android/layout_tests/transitions/transition-drt-api.html
+/sdcard/android/layout_tests/webarchive/loading/cache-expired-subresource.html
+/sdcard/android/layout_tests/webarchive/test-css-import.html
+/sdcard/android/layout_tests/webarchive/test-img-src.html
+/sdcard/android/layout_tests/webarchive/test-link-rel-icon.html
+/sdcard/android/layout_tests/webarchive/adopt-attribute-styled-body-webarchive.html
+/sdcard/android/layout_tests/webarchive/archive-empty-frame-dom.html
+/sdcard/android/layout_tests/webarchive/test-frameset.html
+/sdcard/android/layout_tests/webarchive/test-body-background.html
+/sdcard/android/layout_tests/webarchive/test-input-src.html
+/sdcard/android/layout_tests/webarchive/archive-empty-frame-source.html
+/sdcard/android/layout_tests/webarchive/doctype.html
+/sdcard/android/layout_tests/webarchive/test-css-url-resources-inline-styles.html
+/sdcard/android/layout_tests/webarchive/test-table-background.html
+/sdcard/android/layout_tests/webarchive/adopt-inline-styled-node-webarchive.html
+/sdcard/android/layout_tests/webarchive/test-object-data.html
+/sdcard/android/layout_tests/webarchive/test-css-url-resources-in-stylesheets.html
+/sdcard/android/layout_tests/webarchive/archive-with-unencoded-url.html
+/sdcard/android/layout_tests/webarchive/test-link-href.html
+/sdcard/android/layout_tests/webarchive/test-duplicate-resources.html
+/sdcard/android/layout_tests/webarchive/test-xml-stylesheet.xml
+/sdcard/android/layout_tests/webarchive/test-td-background.html
+/sdcard/android/layout_tests/webarchive/test-script-src.html
+/sdcard/android/layout_tests/webarchive/adopt-attribute-styled-node-webarchive.html
diff --git a/tests/DumpRenderTree/assets/results/layout_tests_passed.txt b/tests/DumpRenderTree/assets/results/layout_tests_passed.txt
index 37a4bbe..b40a21e 100644
--- a/tests/DumpRenderTree/assets/results/layout_tests_passed.txt
+++ b/tests/DumpRenderTree/assets/results/layout_tests_passed.txt
@@ -1,3 +1,31 @@
+/sdcard/android/layout_tests/accessibility/non-native-image-crash.html
+/sdcard/android/layout_tests/animations/animation-css-rule-types.html
+/sdcard/android/layout_tests/animations/animation-events-create.html
+/sdcard/android/layout_tests/animations/combo-transform-translate+scale.html
+/sdcard/android/layout_tests/animations/transform-origin-vs-functions.html
+/sdcard/android/layout_tests/animations/simultaneous-start-transform.html
+/sdcard/android/layout_tests/animations/lineheight-animation.html
+/sdcard/android/layout_tests/animations/simultaneous-start-left.html
+/sdcard/android/layout_tests/animations/fill-unset-properties.html
+/sdcard/android/layout_tests/animations/multiple-keyframes.html
+/sdcard/android/layout_tests/animations/change-one-anim.html
+/sdcard/android/layout_tests/animations/matrix-anim.html
+/sdcard/android/layout_tests/animations/generic-from-to.html
+/sdcard/android/layout_tests/animations/big-rotation.html
+/sdcard/android/layout_tests/animations/keyframe-timing-functions.html
+/sdcard/android/layout_tests/animations/transition-and-animation-1.html
+/sdcard/android/layout_tests/animations/computed-style.html
+/sdcard/android/layout_tests/animations/animation-iteration-event-destroy-renderer.html
+/sdcard/android/layout_tests/animations/keyframes.html
+/sdcard/android/layout_tests/animations/multiple-animations.html
+/sdcard/android/layout_tests/animations/transition-and-animation-2.html
+/sdcard/android/layout_tests/animations/import-crash.html
+/sdcard/android/layout_tests/animations/empty-keyframes.html
+/sdcard/android/layout_tests/animations/width-using-ems.html
+/sdcard/android/layout_tests/animations/combo-transform-rotate+scale.html
+/sdcard/android/layout_tests/css1/units/zero-duration-without-units.html
+/sdcard/android/layout_tests/css2.1/atrule_longest_match.html
+/sdcard/android/layout_tests/css3/khtml-background-size-0x0-bmp.html
/sdcard/android/layout_tests/dom/html/level1/core/hc_attrlastchild.html
/sdcard/android/layout_tests/dom/html/level1/core/hc_elementnormalize.html
/sdcard/android/layout_tests/dom/html/level1/core/hc_noderemovechildnode.html
@@ -550,6 +578,7 @@
/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement11.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement01.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement05.html
+/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement19.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection09.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement06.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement05.html
@@ -687,6 +716,7 @@
/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement08.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement24.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement04.html
+/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement10.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement12.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument26.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement14.html
@@ -812,6 +842,7 @@
/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement64.html
/sdcard/android/layout_tests/dom/html/level2/html/table19.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement02.html
+/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement16.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection06.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement07.html
/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement03.html
@@ -955,16 +986,21 @@
/sdcard/android/layout_tests/dom/html/level2/core/hc_entitiesremovenameditemns1.html
/sdcard/android/layout_tests/dom/html/level2/core/hc_nodedocumentfragmentnormalize1.html
/sdcard/android/layout_tests/dom/html/level2/core/createDocument08.html
-/sdcard/android/layout_tests/plugins/createScriptableObject-before-start.html
-/sdcard/android/layout_tests/plugins/get-empty-url.html
-/sdcard/android/layout_tests/plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html
/sdcard/android/layout_tests/editing/style/temporary-span-crash.html
/sdcard/android/layout_tests/editing/style/4230923.html
+/sdcard/android/layout_tests/editing/style/textdecoration-outside-of-unsplittable-element.html
+/sdcard/android/layout_tests/editing/style/textdecoration-outside-of-rooteditable.html
+/sdcard/android/layout_tests/editing/style/highlight-insert-paragraph.html
+/sdcard/android/layout_tests/editing/inserting/6609479-1.html
+/sdcard/android/layout_tests/editing/inserting/6609479.html
/sdcard/android/layout_tests/editing/inserting/5549929-1.html
+/sdcard/android/layout_tests/editing/inserting/font-size-clears-from-typing-style.html
/sdcard/android/layout_tests/editing/inserting/6104369.html
+/sdcard/android/layout_tests/editing/inserting/return-with-object-element.html
/sdcard/android/layout_tests/editing/inserting/5803706-2.html
/sdcard/android/layout_tests/editing/inserting/5685601-2.html
/sdcard/android/layout_tests/editing/inserting/5607069-1.html
+/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-007.html
/sdcard/android/layout_tests/editing/inserting/5803706-1.html
/sdcard/android/layout_tests/editing/inserting/5685601-1.html
/sdcard/android/layout_tests/editing/inserting/5994480.html
@@ -972,33 +1008,69 @@
/sdcard/android/layout_tests/editing/inserting/insert-before-link-1.html
/sdcard/android/layout_tests/editing/inserting/5378847.html
/sdcard/android/layout_tests/editing/inserting/5685601-3.html
+/sdcard/android/layout_tests/editing/inserting/6703873-2.html
+/sdcard/android/layout_tests/editing/execCommand/toggle-style-2.html
/sdcard/android/layout_tests/editing/execCommand/19403.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-div.html
+/sdcard/android/layout_tests/editing/execCommand/25256.html
/sdcard/android/layout_tests/editing/execCommand/default-parameters.html
+/sdcard/android/layout_tests/editing/execCommand/5120591.html
/sdcard/android/layout_tests/editing/execCommand/19455.html
/sdcard/android/layout_tests/editing/execCommand/19087.html
+/sdcard/android/layout_tests/editing/execCommand/5543472-3.html
+/sdcard/android/layout_tests/editing/execCommand/5207369.html
/sdcard/android/layout_tests/editing/execCommand/empty-span-removal.html
+/sdcard/android/layout_tests/editing/execCommand/4916583.html
+/sdcard/android/layout_tests/editing/execCommand/5658933-2.html
/sdcard/android/layout_tests/editing/execCommand/5469868.html
+/sdcard/android/layout_tests/editing/execCommand/insert-list-with-id.html
+/sdcard/android/layout_tests/editing/execCommand/indent-div-inside-list.html
/sdcard/android/layout_tests/editing/execCommand/5575101-1.html
+/sdcard/android/layout_tests/editing/execCommand/5432254-1.html
+/sdcard/android/layout_tests/editing/execCommand/indent-nested-blockquotes.html
+/sdcard/android/layout_tests/editing/execCommand/5062376.html
+/sdcard/android/layout_tests/editing/execCommand/indent-second-paragraph-in-blockquote.html
/sdcard/android/layout_tests/editing/execCommand/findString-3.html
+/sdcard/android/layout_tests/editing/execCommand/toggle-text-decorations.html
+/sdcard/android/layout_tests/editing/execCommand/5142012-3.html
+/sdcard/android/layout_tests/editing/execCommand/indent-empty-table-cell.html
+/sdcard/android/layout_tests/editing/execCommand/5700414-1.html
/sdcard/android/layout_tests/editing/execCommand/16049.html
/sdcard/android/layout_tests/editing/execCommand/19653-1.html
/sdcard/android/layout_tests/editing/execCommand/arguments-combinations.html
+/sdcard/android/layout_tests/editing/execCommand/5685604-1.html
+/sdcard/android/layout_tests/editing/execCommand/4128080-1.html
/sdcard/android/layout_tests/editing/execCommand/5575101-3.html
+/sdcard/android/layout_tests/editing/execCommand/5119244.html
+/sdcard/android/layout_tests/editing/execCommand/5543472-2.html
+/sdcard/android/layout_tests/editing/execCommand/inline-style-after-indentoutdent.html
/sdcard/android/layout_tests/editing/execCommand/5770834-1.html
/sdcard/android/layout_tests/editing/execCommand/5483526.html
/sdcard/android/layout_tests/editing/execCommand/5658933-1.html
+/sdcard/android/layout_tests/editing/execCommand/5164796.html
/sdcard/android/layout_tests/editing/execCommand/6355786.html
/sdcard/android/layout_tests/editing/execCommand/5604313.html
/sdcard/android/layout_tests/editing/execCommand/19653-3.html
-/sdcard/android/layout_tests/editing/execCommand/5763082.html
+/sdcard/android/layout_tests/editing/execCommand/outdent-regular-blockquote.html
/sdcard/android/layout_tests/editing/execCommand/6444148.html
+/sdcard/android/layout_tests/editing/execCommand/5763082.html
/sdcard/android/layout_tests/editing/execCommand/4976800.html
/sdcard/android/layout_tests/editing/execCommand/4928635.html
+/sdcard/android/layout_tests/editing/execCommand/list-wrapping-image-crash.html
/sdcard/android/layout_tests/editing/execCommand/4920742-2.html
/sdcard/android/layout_tests/editing/execCommand/4917055.html
+/sdcard/android/layout_tests/editing/execCommand/5658933-3.html
/sdcard/android/layout_tests/editing/execCommand/5575101-2.html
+/sdcard/android/layout_tests/editing/execCommand/5432254-2.html
+/sdcard/android/layout_tests/editing/execCommand/5144139-1.html
+/sdcard/android/layout_tests/editing/execCommand/5543472-1.html
+/sdcard/android/layout_tests/editing/execCommand/25320.html
+/sdcard/android/layout_tests/editing/execCommand/5210032.html
/sdcard/android/layout_tests/editing/execCommand/12244.html
+/sdcard/android/layout_tests/editing/execCommand/15381.html
+/sdcard/android/layout_tests/editing/execCommand/5700414-2.html
/sdcard/android/layout_tests/editing/execCommand/19653-2.html
+/sdcard/android/layout_tests/editing/execCommand/boldSelection.html
/sdcard/android/layout_tests/editing/execCommand/4916235.html
/sdcard/android/layout_tests/editing/execCommand/5458246.html
/sdcard/android/layout_tests/editing/execCommand/toggle-styles.html
@@ -1006,47 +1078,67 @@
/sdcard/android/layout_tests/editing/pasteboard/6018653.html
/sdcard/android/layout_tests/editing/pasteboard/4930986-1.html
/sdcard/android/layout_tests/editing/pasteboard/5780697-1.html
+/sdcard/android/layout_tests/editing/pasteboard/copy-crash-with-extraneous-attribute.html
/sdcard/android/layout_tests/editing/pasteboard/4930986-3.html
/sdcard/android/layout_tests/editing/pasteboard/5245519.html
+/sdcard/android/layout_tests/editing/pasteboard/copy-display-none.html
/sdcard/android/layout_tests/editing/pasteboard/5521237.html
/sdcard/android/layout_tests/editing/pasteboard/newlines-around-floating-or-positioned.html
/sdcard/android/layout_tests/editing/pasteboard/5078739.html
/sdcard/android/layout_tests/editing/pasteboard/createMarkup-assert.xml
/sdcard/android/layout_tests/editing/pasteboard/4930986-2.html
+/sdcard/android/layout_tests/editing/pasteboard/4840662.html
/sdcard/android/layout_tests/editing/pasteboard/5480736.html
-/sdcard/android/layout_tests/editing/selection/5497643.html
/sdcard/android/layout_tests/editing/selection/5825350-1.html
-/sdcard/android/layout_tests/editing/selection/setBaseAndExtent-revert-selection.html
/sdcard/android/layout_tests/editing/selection/selection-invalid-offset.html
+/sdcard/android/layout_tests/editing/selection/move-by-line-005.html
/sdcard/android/layout_tests/editing/selection/rangeCount.html
-/sdcard/android/layout_tests/editing/selection/5714333.html
-/sdcard/android/layout_tests/editing/selection/select-line.html
-/sdcard/android/layout_tests/editing/selection/doubleclick-whitespace-crash.html
/sdcard/android/layout_tests/editing/selection/containsNode.html
-/sdcard/android/layout_tests/editing/selection/select-all-user-select-none.html
/sdcard/android/layout_tests/editing/selection/selectAllChildren.html
-/sdcard/android/layout_tests/editing/selection/find-in-text-control.html
-/sdcard/android/layout_tests/editing/selection/extend.html
-/sdcard/android/layout_tests/editing/selection/5241148.html
/sdcard/android/layout_tests/editing/selection/cleared-by-relayout.html
+/sdcard/android/layout_tests/editing/selection/extend-selection.html
/sdcard/android/layout_tests/editing/selection/5825350-2.html
/sdcard/android/layout_tests/editing/selection/5794920-1.html
-/sdcard/android/layout_tests/editing/selection/5779984-1.html
/sdcard/android/layout_tests/editing/selection/deleteFromDocument.html
+/sdcard/android/layout_tests/editing/selection/5497643.html
+/sdcard/android/layout_tests/editing/selection/setBaseAndExtent-revert-selection.html
+/sdcard/android/layout_tests/editing/selection/crash-on-drag-with-mutation-events.html
+/sdcard/android/layout_tests/editing/selection/5714333.html
+/sdcard/android/layout_tests/editing/selection/select-all-user-select-none.html
+/sdcard/android/layout_tests/editing/selection/thai-word-at-document-end.html
+/sdcard/android/layout_tests/editing/selection/extend.html
+/sdcard/android/layout_tests/editing/selection/5241148.html
+/sdcard/android/layout_tests/editing/selection/5213963.html
+/sdcard/android/layout_tests/editing/selection/move-by-line-004.html
+/sdcard/android/layout_tests/editing/selection/extend-by-line-anonymous-content-crash.html
+/sdcard/android/layout_tests/editing/selection/5779984-1.html
/sdcard/android/layout_tests/editing/undo/4059423-1.html
/sdcard/android/layout_tests/editing/undo/4059423-2.html
/sdcard/android/layout_tests/editing/undo/5658727.html
/sdcard/android/layout_tests/editing/undo/5738768.html
+/sdcard/android/layout_tests/editing/deleting/25322-2.html
/sdcard/android/layout_tests/editing/deleting/2610675-2.html
/sdcard/android/layout_tests/editing/deleting/5847330-2.html
+/sdcard/android/layout_tests/editing/deleting/5156801.html
+/sdcard/android/layout_tests/editing/deleting/4866671.html
+/sdcard/android/layout_tests/editing/deleting/type-delete-after-quote-2.html
+/sdcard/android/layout_tests/editing/deleting/25322-1.html
+/sdcard/android/layout_tests/editing/deleting/merge-at-end-of-document.html
/sdcard/android/layout_tests/editing/deleting/6026335.html
/sdcard/android/layout_tests/editing/deleting/2610675-1.html
/sdcard/android/layout_tests/editing/deleting/5847330-1.html
/sdcard/android/layout_tests/editing/deleting/5433862-1.html
/sdcard/android/layout_tests/editing/deleting/5495723.html
/sdcard/android/layout_tests/editing/deleting/5290534.html
+/sdcard/android/layout_tests/editing/deleting/removeNodeCommand-assert.html
+/sdcard/android/layout_tests/editing/deleting/25322-3.html
/sdcard/android/layout_tests/editing/deleting/2610675-3.html
+/sdcard/android/layout_tests/editing/deleting/5890684.html
+/sdcard/android/layout_tests/editing/deleting/in-visibly-empty-root.html
+/sdcard/android/layout_tests/editing/deleting/4875189.html
+/sdcard/android/layout_tests/fast/media/matchmedium-query-api.html
/sdcard/android/layout_tests/fast/replaced/object-param-no-name.html
+/sdcard/android/layout_tests/fast/ruby/parse-rp.html
/sdcard/android/layout_tests/fast/dynamic/subtree-common-root.html
/sdcard/android/layout_tests/fast/dynamic/hovered-detach.html
/sdcard/android/layout_tests/fast/dynamic/insertAdjacentHTML.html
@@ -1060,11 +1152,16 @@
/sdcard/android/layout_tests/fast/dynamic/float-remove-above-line.html
/sdcard/android/layout_tests/fast/dynamic/recursive-layout.html
/sdcard/android/layout_tests/fast/dynamic/inline-to-block-crash.html
+/sdcard/android/layout_tests/fast/text/whitespace/nowrap-line-break-after-white-space.html
/sdcard/android/layout_tests/fast/text/find-backwards.html
/sdcard/android/layout_tests/fast/text/large-text-composed-char-dos.html
+/sdcard/android/layout_tests/fast/text/find-quotes.html
/sdcard/android/layout_tests/fast/text/find-case-folding.html
/sdcard/android/layout_tests/fast/text/text-shadow-extreme-value.html
+/sdcard/android/layout_tests/fast/text/find-hidden-text.html
/sdcard/android/layout_tests/fast/text/line-breaks-after-ideographic-comma-or-full-stop.html
+/sdcard/android/layout_tests/fast/text/find-spaces.html
+/sdcard/android/layout_tests/fast/text/text-large-negative-letter-spacing-with-opacity.html
/sdcard/android/layout_tests/fast/encoding/gbk/chinese.html
/sdcard/android/layout_tests/fast/encoding/gbk/x-euc-cn.html
/sdcard/android/layout_tests/fast/encoding/gbk/gb_2312-80.html
@@ -1084,43 +1181,45 @@
/sdcard/android/layout_tests/fast/encoding/hebrew/8859-8-i.html
/sdcard/android/layout_tests/fast/encoding/hebrew/logical.html
/sdcard/android/layout_tests/fast/encoding/hebrew/iso-ir-138.html
-/sdcard/android/layout_tests/fast/encoding/charset-invalid.html
-/sdcard/android/layout_tests/fast/encoding/hanarei-blog32-fc2-com.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-tags-in-attributes.html
-/sdcard/android/layout_tests/fast/encoding/decoder-allow-null-chars.html
-/sdcard/android/layout_tests/fast/encoding/charset-utf16.html
-/sdcard/android/layout_tests/fast/encoding/css-charset-dom.html
/sdcard/android/layout_tests/fast/encoding/pseudo-xml-4.html
-/sdcard/android/layout_tests/fast/encoding/char-encoding.html
-/sdcard/android/layout_tests/fast/encoding/css-link-charset.html
-/sdcard/android/layout_tests/fast/encoding/latin1-winlatin.html
/sdcard/android/layout_tests/fast/encoding/no-charset-on-dynamic-script-load.html
-/sdcard/android/layout_tests/fast/encoding/high-bit-latin1.html
/sdcard/android/layout_tests/fast/encoding/utf-32-little-endian-bom.html
/sdcard/android/layout_tests/fast/encoding/bandai-co-jp-releases.html
/sdcard/android/layout_tests/fast/encoding/utf-32-big-endian-bom.html
+/sdcard/android/layout_tests/fast/encoding/css-charset-evil.html
+/sdcard/android/layout_tests/fast/encoding/css-charset.html
+/sdcard/android/layout_tests/fast/encoding/xml-charset-utf16.html
+/sdcard/android/layout_tests/fast/encoding/pseudo-xml-3.html
+/sdcard/android/layout_tests/fast/encoding/tag-in-title.html
+/sdcard/android/layout_tests/fast/encoding/noscript-in-head.html
+/sdcard/android/layout_tests/fast/encoding/css-cached-bom.html
+/sdcard/android/layout_tests/fast/encoding/preload-encoding.html
+/sdcard/android/layout_tests/fast/encoding/charset-invalid.html
+/sdcard/android/layout_tests/fast/encoding/pseudo-tags-in-attributes.html
+/sdcard/android/layout_tests/fast/encoding/decoder-allow-null-chars.html
+/sdcard/android/layout_tests/fast/encoding/css-charset-dom.html
+/sdcard/android/layout_tests/fast/encoding/charset-utf16.html
+/sdcard/android/layout_tests/fast/encoding/char-encoding.html
+/sdcard/android/layout_tests/fast/encoding/css-link-charset.html
+/sdcard/android/layout_tests/fast/encoding/latin1-winlatin.html
+/sdcard/android/layout_tests/fast/encoding/high-bit-latin1.html
/sdcard/android/layout_tests/fast/encoding/bom-in-content.html
/sdcard/android/layout_tests/fast/encoding/bom-in-content-utf16.html
/sdcard/android/layout_tests/fast/encoding/namespace-tolerance.html
-/sdcard/android/layout_tests/fast/encoding/css-charset-evil.html
-/sdcard/android/layout_tests/fast/encoding/css-charset.html
/sdcard/android/layout_tests/fast/encoding/misplaced-xml-declaration.html
+/sdcard/android/layout_tests/fast/encoding/euckr-name.html
/sdcard/android/layout_tests/fast/encoding/charset-xuser-defined.html
-/sdcard/android/layout_tests/fast/encoding/xml-charset-utf16.html
/sdcard/android/layout_tests/fast/encoding/pseudo-xml-2.html
/sdcard/android/layout_tests/fast/encoding/floraexpress-ru.html
/sdcard/android/layout_tests/fast/encoding/charset-cp1251.html
-/sdcard/android/layout_tests/fast/encoding/utf-32-little-endian-nobom.xml
/sdcard/android/layout_tests/fast/encoding/charset-unicode.html
/sdcard/android/layout_tests/fast/encoding/meta-charset.html
-/sdcard/android/layout_tests/fast/encoding/utf-32-big-endian-nobom.xml
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml-3.html
+/sdcard/android/layout_tests/fast/encoding/xml-utf-8-default.xml
/sdcard/android/layout_tests/fast/encoding/pseudo-xml.html
-/sdcard/android/layout_tests/fast/encoding/tag-in-title.html
+/sdcard/android/layout_tests/fast/encoding/yahoo-mail.html
+/sdcard/android/layout_tests/fast/encoding/ahram-org-eg.html
/sdcard/android/layout_tests/fast/encoding/script-in-head.html
-/sdcard/android/layout_tests/fast/encoding/css-cached-bom.html
/sdcard/android/layout_tests/fast/encoding/mispositioned-meta.html
-/sdcard/android/layout_tests/fast/encoding/preload-encoding.html
/sdcard/android/layout_tests/fast/multicol/gap-non-negative.html
/sdcard/android/layout_tests/fast/multicol/content-height-zero-crash.html
/sdcard/android/layout_tests/fast/doctypes/doctype-at-end.html
@@ -1135,6 +1234,7 @@
/sdcard/android/layout_tests/fast/transforms/container-transform-crash.html
/sdcard/android/layout_tests/fast/leaks/001.html
/sdcard/android/layout_tests/fast/leaks/002.html
+/sdcard/android/layout_tests/fast/borders/border-radius-parsing.html
/sdcard/android/layout_tests/fast/innerHTML/innerHTML-custom-tag.html
/sdcard/android/layout_tests/fast/innerHTML/additional-inline-style.html
/sdcard/android/layout_tests/fast/innerHTML/005.html
@@ -1142,61 +1242,84 @@
/sdcard/android/layout_tests/fast/innerHTML/innerHTML-case.html
/sdcard/android/layout_tests/fast/overflow/onscroll-layer-self-destruct.html
/sdcard/android/layout_tests/fast/overflow/generated-content-crash.html
+/sdcard/android/layout_tests/fast/overflow/overflow-y-scroll.html
/sdcard/android/layout_tests/fast/events/dispatch-to-handle-event.html
+/sdcard/android/layout_tests/fast/events/scroll-during-zoom-change.html
+/sdcard/android/layout_tests/fast/events/scroll-event-does-not-bubble.html
/sdcard/android/layout_tests/fast/events/onload-after-document-close-with-subresource.html
+/sdcard/android/layout_tests/fast/events/message-channel-gc-4.html
+/sdcard/android/layout_tests/fast/events/message-channel-listener-circular-ownership.html
+/sdcard/android/layout_tests/fast/events/message-port-constructor-for-deleted-document.html
/sdcard/android/layout_tests/fast/events/dispatchEvent-crash.html
/sdcard/android/layout_tests/fast/events/programmatic-check-no-change-event.html
+/sdcard/android/layout_tests/fast/events/message-port-inactive-document.html
/sdcard/android/layout_tests/fast/events/onunload-body-property.html
+/sdcard/android/layout_tests/fast/events/event-trace.html
/sdcard/android/layout_tests/fast/events/init-event-after-dispatch.html
/sdcard/android/layout_tests/fast/events/delayed-style-mutation-event-crash.html
-/sdcard/android/layout_tests/fast/events/anchor-empty-focus.html
+/sdcard/android/layout_tests/fast/events/keydown-keypress-focus-change.html
/sdcard/android/layout_tests/fast/events/no-blur-on-page-leave.html
/sdcard/android/layout_tests/fast/events/onload-name-collision.html
/sdcard/android/layout_tests/fast/events/div-focus.html
-/sdcard/android/layout_tests/fast/events/related-target.html
/sdcard/android/layout_tests/fast/events/overflow-events.html
/sdcard/android/layout_tests/fast/events/create-document-crash-on-attach-event.html
/sdcard/android/layout_tests/fast/events/no-blur-on-enter-button.html
/sdcard/android/layout_tests/fast/events/keypress-removed-node.html
/sdcard/android/layout_tests/fast/events/shadow-boundary-crossing.html
/sdcard/android/layout_tests/fast/events/submit-reset-nested-bubble.html
+/sdcard/android/layout_tests/fast/events/message-port-deleted-frame.html
/sdcard/android/layout_tests/fast/events/nested-event-remove-node-crash.html
/sdcard/android/layout_tests/fast/events/onsubmit-bubbling.html
/sdcard/android/layout_tests/fast/events/onload-fires-twice.html
+/sdcard/android/layout_tests/fast/events/message-port-no-wrapper.html
/sdcard/android/layout_tests/fast/events/mousedown_in_scrollbar.html
+/sdcard/android/layout_tests/fast/events/onload-single-line-comment.html
+/sdcard/android/layout_tests/fast/events/message-channel-gc-2.html
/sdcard/android/layout_tests/fast/events/window-load-capture.html
+/sdcard/android/layout_tests/fast/events/message-port-deleted-document.html
/sdcard/android/layout_tests/fast/events/event-instanceof.html
+/sdcard/android/layout_tests/fast/events/message-channel-gc.html
/sdcard/android/layout_tests/fast/events/event-creation.html
+/sdcard/android/layout_tests/fast/events/event-listener-sharing.html
/sdcard/android/layout_tests/fast/events/caller-access-from-event-listener.html
/sdcard/android/layout_tests/fast/events/stopPropagation-submit.html
/sdcard/android/layout_tests/fast/events/remove-event-listener.html
/sdcard/android/layout_tests/fast/events/mouseup-outside-button.html
+/sdcard/android/layout_tests/fast/events/iframe-object-onload.html
/sdcard/android/layout_tests/fast/events/no-window-load.html
/sdcard/android/layout_tests/fast/events/event-listener-html-non-html-confusion.html
/sdcard/android/layout_tests/fast/events/onerror-bubbling.html
/sdcard/android/layout_tests/fast/events/keydown-remove-frame.html
+/sdcard/android/layout_tests/fast/events/message-channel-gc-3.html
+/sdcard/android/layout_tests/fast/events/scroll-to-anchor-in-overflow-hidden.html
/sdcard/android/layout_tests/fast/events/event-targets.html
/sdcard/android/layout_tests/fast/events/space-scroll-event.html
/sdcard/android/layout_tests/fast/events/onload-after-document-close-no-subresource.html
/sdcard/android/layout_tests/fast/events/nested-window-event.html
/sdcard/android/layout_tests/fast/events/selectstart-during-autoscroll.html
/sdcard/android/layout_tests/fast/events/stopPropagation-checkbox.html
+/sdcard/android/layout_tests/fast/events/message-port-clone.html
/sdcard/android/layout_tests/fast/events/tab-crash-with-image-map.html
/sdcard/android/layout_tests/fast/events/simulated-key-state.html
/sdcard/android/layout_tests/fast/events/init-event-null-view.html
-/sdcard/android/layout_tests/fast/events/resize-subframe.html
+/sdcard/android/layout_tests/fast/events/init-events.html
/sdcard/android/layout_tests/fast/events/onunload-window-property.html
+/sdcard/android/layout_tests/fast/events/message-port.html
+/sdcard/android/layout_tests/fast/html/tab-order.html
+/sdcard/android/layout_tests/fast/html/xhtml-serialize.html
/sdcard/android/layout_tests/fast/html/empty-fragment-id-goto-top.html
/sdcard/android/layout_tests/fast/html/script-allowed-types-languages.html
-/sdcard/android/layout_tests/fast/html/xhtml-serialize.html
+/sdcard/android/layout_tests/fast/html/text-field-input-types.html
+/sdcard/android/layout_tests/fast/html/draggable.html
/sdcard/android/layout_tests/fast/html/body-offset-properties.html
-/sdcard/android/layout_tests/fast/images/animated-background-image-crash.html
-/sdcard/android/layout_tests/fast/images/border.html
-/sdcard/android/layout_tests/fast/images/load-img-with-empty-src.html
/sdcard/android/layout_tests/fast/images/image-empty-data.html
-/sdcard/android/layout_tests/fast/images/text-content-crash-2.html
/sdcard/android/layout_tests/fast/images/text-content-crash.html
+/sdcard/android/layout_tests/fast/images/border.html
+/sdcard/android/layout_tests/fast/images/animated-background-image-crash.html
+/sdcard/android/layout_tests/fast/images/load-img-with-empty-src.html
+/sdcard/android/layout_tests/fast/images/text-content-crash-2.html
/sdcard/android/layout_tests/fast/inspector/cssURLQuotes.html
+/sdcard/android/layout_tests/fast/flexbox/repaint-scrollbar.html
/sdcard/android/layout_tests/fast/flexbox/inline-children-crash.html
/sdcard/android/layout_tests/fast/tokenizer/nested-cached-scripts.html
/sdcard/android/layout_tests/fast/tokenizer/image-empty-crash.html
@@ -1215,13 +1338,14 @@
/sdcard/android/layout_tests/fast/tokenizer/badscript.html
/sdcard/android/layout_tests/fast/regex/quantified-assertions.html
/sdcard/android/layout_tests/fast/regex/non-pattern-characters.html
-/sdcard/android/layout_tests/fast/regex/slow.html
/sdcard/android/layout_tests/fast/regex/malformed-escapes.html
/sdcard/android/layout_tests/fast/regex/early-acid3-86.html
/sdcard/android/layout_tests/fast/regex/alternative-length-miscalculation.html
/sdcard/android/layout_tests/fast/regex/test4.html
/sdcard/android/layout_tests/fast/regex/non-capturing-backtracking.html
+/sdcard/android/layout_tests/fast/box-shadow/box-shadow-overflow-scroll.html
/sdcard/android/layout_tests/fast/js/kde/Boolean.html
+/sdcard/android/layout_tests/fast/js/kde/garbage-n.html
/sdcard/android/layout_tests/fast/js/kde/function.html
/sdcard/android/layout_tests/fast/js/kde/function_length.html
/sdcard/android/layout_tests/fast/js/kde/const.html
@@ -1257,8 +1381,10 @@
/sdcard/android/layout_tests/fast/js/kde/j-comment-4.html
/sdcard/android/layout_tests/fast/js/kde/iteration.html
/sdcard/android/layout_tests/fast/js/kde/comment-1.html
+/sdcard/android/layout_tests/fast/js/kde/string-2-n.html
/sdcard/android/layout_tests/fast/js/kde/Prototype.html
/sdcard/android/layout_tests/fast/js/kde/completion.html
+/sdcard/android/layout_tests/fast/js/kde/encode_decode_uri.html
/sdcard/android/layout_tests/fast/js/kde/exceptions.html
/sdcard/android/layout_tests/fast/js/kde/md5-2.html
/sdcard/android/layout_tests/fast/js/kde/Error.html
@@ -1266,6 +1392,7 @@
/sdcard/android/layout_tests/fast/js/kde/object_prototype.html
/sdcard/android/layout_tests/fast/js/kde/empty.html
/sdcard/android/layout_tests/fast/js/kde/inbuilt_function_proto.html
+/sdcard/android/layout_tests/fast/js/kde/string-1-n.html
/sdcard/android/layout_tests/fast/js/kde/func-decl.html
/sdcard/android/layout_tests/fast/js/kde/comment-2.html
/sdcard/android/layout_tests/fast/js/kde/inbuilt_function_tostring.html
@@ -1284,15 +1411,20 @@
/sdcard/android/layout_tests/fast/js/pic/cached-deleted-properties.html
/sdcard/android/layout_tests/fast/js/pic/dictionary-prototype.html
/sdcard/android/layout_tests/fast/js/bitwise-and-on-undefined.html
+/sdcard/android/layout_tests/fast/js/exception-sequencing-binops.html
/sdcard/android/layout_tests/fast/js/exception-thrown-from-eval-inside-closure.html
+/sdcard/android/layout_tests/fast/js/recursion-limit-equal.html
/sdcard/android/layout_tests/fast/js/string_replace.html
/sdcard/android/layout_tests/fast/js/ignored-result-ref-crash.html
/sdcard/android/layout_tests/fast/js/function-toString-object-literals.html
/sdcard/android/layout_tests/fast/js/numeric-conversion.html
/sdcard/android/layout_tests/fast/js/select-options-remove.html
/sdcard/android/layout_tests/fast/js/array-tostring-ignore-separator.html
+/sdcard/android/layout_tests/fast/js/exception-sequencing-binops2.html
+/sdcard/android/layout_tests/fast/js/function-declaration.html
/sdcard/android/layout_tests/fast/js/number-toExponential.html
/sdcard/android/layout_tests/fast/js/direct-entry-to-function-code.html
+/sdcard/android/layout_tests/fast/js/number-parsing-crash.html
/sdcard/android/layout_tests/fast/js/vardecl-preserve-vardecl.html
/sdcard/android/layout_tests/fast/js/unexpected-constant-crash.html
/sdcard/android/layout_tests/fast/js/var-shadows-arg-gc-crash.html
@@ -1316,9 +1448,12 @@
/sdcard/android/layout_tests/fast/js/function-name.html
/sdcard/android/layout_tests/fast/js/logical-or-jless.html
/sdcard/android/layout_tests/fast/js/regexp-non-character.html
+/sdcard/android/layout_tests/fast/js/JSON-parse.html
/sdcard/android/layout_tests/fast/js/assign.html
/sdcard/android/layout_tests/fast/js/for-in-avoid-duplicates.html
+/sdcard/android/layout_tests/fast/js/math-transforms.html
/sdcard/android/layout_tests/fast/js/sort-stability.html
+/sdcard/android/layout_tests/fast/js/try-catch-crash.html
/sdcard/android/layout_tests/fast/js/duplicate-param-gc-crash.html
/sdcard/android/layout_tests/fast/js/regexp-stack-overflow.html
/sdcard/android/layout_tests/fast/js/function-argument-evaluation-before-exception.html
@@ -1327,6 +1462,7 @@
/sdcard/android/layout_tests/fast/js/do-while-semicolon.html
/sdcard/android/layout_tests/fast/js/regexp-divequal.html
/sdcard/android/layout_tests/fast/js/named-function-expression.html
+/sdcard/android/layout_tests/fast/js/array-iterate-backwards.html
/sdcard/android/layout_tests/fast/js/constructor-attributes.html
/sdcard/android/layout_tests/fast/js/array-some.html
/sdcard/android/layout_tests/fast/js/missing-title-end-tag-js.html
@@ -1341,8 +1477,10 @@
/sdcard/android/layout_tests/fast/js/debugger.html
/sdcard/android/layout_tests/fast/js/rehash-assign.html
/sdcard/android/layout_tests/fast/js/object-prototype-constructor.html
+/sdcard/android/layout_tests/fast/js/function-call-aliased.html
/sdcard/android/layout_tests/fast/js/string-replace-exception-crash.html
/sdcard/android/layout_tests/fast/js/date-big-setmonth.html
+/sdcard/android/layout_tests/fast/js/array-enumerators-functions.html
/sdcard/android/layout_tests/fast/js/exception-linenums-in-html-2.html
/sdcard/android/layout_tests/fast/js/select-options-add.html
/sdcard/android/layout_tests/fast/js/toString-dontEnum.html
@@ -1352,36 +1490,46 @@
/sdcard/android/layout_tests/fast/js/string-substr.html
/sdcard/android/layout_tests/fast/js/for-in-var-scope.html
/sdcard/android/layout_tests/fast/js/exec-state-marking.html
-/sdcard/android/layout_tests/fast/js/string-sort.html
/sdcard/android/layout_tests/fast/js/primitive-method-this.html
+/sdcard/android/layout_tests/fast/js/string-sort.html
+/sdcard/android/layout_tests/fast/js/for-in-cached.html
/sdcard/android/layout_tests/fast/js/delete-getters-setters.html
/sdcard/android/layout_tests/fast/js/const-without-initializer.html
+/sdcard/android/layout_tests/fast/js/function-apply-aliased.html
/sdcard/android/layout_tests/fast/js/sparse-array.html
/sdcard/android/layout_tests/fast/js/same-origin-subframe-about-blank.html
/sdcard/android/layout_tests/fast/js/nested-function-scope.html
+/sdcard/android/layout_tests/fast/js/function-constructor-single-line-comment.html
+/sdcard/android/layout_tests/fast/js/JSON-stringify.html
+/sdcard/android/layout_tests/fast/js/uncaught-exception-line-number.html
+/sdcard/android/layout_tests/fast/js/const.html
/sdcard/android/layout_tests/fast/js/reparsing-semicolon-insertion.html
/sdcard/android/layout_tests/fast/js/regexp-non-capturing-groups.html
/sdcard/android/layout_tests/fast/js/has-own-property.html
/sdcard/android/layout_tests/fast/js/window-location-href-file-urls.html
-/sdcard/android/layout_tests/fast/js/convert-nan-to-bool.html
/sdcard/android/layout_tests/fast/js/regexp-extended-characters-more.html
-/sdcard/android/layout_tests/fast/js/arguments.html
/sdcard/android/layout_tests/fast/js/prefix-syntax.html
+/sdcard/android/layout_tests/fast/js/exceptions-thrown-in-callbacks.html
/sdcard/android/layout_tests/fast/js/exception-with-handler-inside-eval-with-dynamic-scope.html
/sdcard/android/layout_tests/fast/js/for-in-exeception.html
/sdcard/android/layout_tests/fast/js/array-lastIndexOf.html
/sdcard/android/layout_tests/fast/js/modify-non-references.html
+/sdcard/android/layout_tests/fast/js/exception-for-nonobject.html
/sdcard/android/layout_tests/fast/js/regexp-find-first-asserted.html
/sdcard/android/layout_tests/fast/js/sort-randomly.html
/sdcard/android/layout_tests/fast/js/array-indexing.html
+/sdcard/android/layout_tests/fast/js/registerCachingAcrossBranchTargets.html
/sdcard/android/layout_tests/fast/js/regexp-caching.html
/sdcard/android/layout_tests/fast/js/typeof-syntax.html
/sdcard/android/layout_tests/fast/js/regexp-character-match-out-of-order.html
+/sdcard/android/layout_tests/fast/js/date-toisostring.html
/sdcard/android/layout_tests/fast/js/function-call-register-allocation.html
+/sdcard/android/layout_tests/fast/js/arguments.html
/sdcard/android/layout_tests/fast/js/constant-folding.html
/sdcard/android/layout_tests/fast/js/activation-object-function-lifetime.html
/sdcard/android/layout_tests/fast/js/array-filter.html
/sdcard/android/layout_tests/fast/js/implicit-global-to-global-reentry.html
+/sdcard/android/layout_tests/fast/js/array-reduceRight.html
/sdcard/android/layout_tests/fast/js/array-foreach.html
/sdcard/android/layout_tests/fast/js/regexp-many-brackets.html
/sdcard/android/layout_tests/fast/js/activation-proto.html
@@ -1389,21 +1537,25 @@
/sdcard/android/layout_tests/fast/js/regexp-unicode-overflow.html
/sdcard/android/layout_tests/fast/js/postfix-syntax.html
/sdcard/android/layout_tests/fast/js/global-recursion-on-full-stack.html
-/sdcard/android/layout_tests/fast/js/number-cell-reuse.html
/sdcard/android/layout_tests/fast/js/closure-inside-extra-arg-call.html
+/sdcard/android/layout_tests/fast/js/number-cell-reuse.html
/sdcard/android/layout_tests/fast/js/removing-Cf-characters.html
/sdcard/android/layout_tests/fast/js/pretty-print.html
-/sdcard/android/layout_tests/fast/js/const.html
/sdcard/android/layout_tests/fast/js/isPrototypeOf.html
+/sdcard/android/layout_tests/fast/js/prototypes.html
/sdcard/android/layout_tests/fast/js/math.html
/sdcard/android/layout_tests/fast/js/string-from-char-code.html
+/sdcard/android/layout_tests/fast/js/sort-no-jit-code-crash.html
/sdcard/android/layout_tests/fast/js/eval-overriding.html
/sdcard/android/layout_tests/fast/js/regexp-char-insensitive.html
/sdcard/android/layout_tests/fast/js/array-float-delete.html
/sdcard/android/layout_tests/fast/js/array-index-immediate-types.html
/sdcard/android/layout_tests/fast/js/integer-extremes.html
+/sdcard/android/layout_tests/fast/js/console-non-string-values.html
/sdcard/android/layout_tests/fast/js/regexp-non-bmp.html
+/sdcard/android/layout_tests/fast/js/regexp-range-bound-ffff.html
/sdcard/android/layout_tests/fast/js/delete-then-put.html
+/sdcard/android/layout_tests/fast/js/nested-object-gc.html
/sdcard/android/layout_tests/fast/js/string-replace-2.html
/sdcard/android/layout_tests/fast/js/cached-eval-gc.html
/sdcard/android/layout_tests/fast/js/property-getters-and-setters.html
@@ -1414,11 +1566,14 @@
/sdcard/android/layout_tests/fast/js/codegen-loops-logical-nodes.html
/sdcard/android/layout_tests/fast/js/string-capitalization.html
/sdcard/android/layout_tests/fast/js/caller-property.html
+/sdcard/android/layout_tests/fast/js/regexp-overflow-too-big.html
+/sdcard/android/layout_tests/fast/js/repeat-cached-vm-reentry.html
/sdcard/android/layout_tests/fast/js/date-DST-time-cusps.html
/sdcard/android/layout_tests/fast/js/regexp-unicode-handling.html
/sdcard/android/layout_tests/fast/js/unmatching-argument-count.html
-/sdcard/android/layout_tests/fast/js/delete-multiple-global-blocks.html
/sdcard/android/layout_tests/fast/js/text-field-resize.html
+/sdcard/android/layout_tests/fast/js/delete-multiple-global-blocks.html
+/sdcard/android/layout_tests/fast/js/eval-throw-return.html
/sdcard/android/layout_tests/fast/js/duplicate-param-crash.html
/sdcard/android/layout_tests/fast/js/switch-behaviour.html
/sdcard/android/layout_tests/fast/js/delete-syntax.html
@@ -1430,22 +1585,26 @@
/sdcard/android/layout_tests/fast/js/parse-backslash-before-newline.html
/sdcard/android/layout_tests/fast/js/delete-function-parameter.html
/sdcard/android/layout_tests/fast/js/exception-expression-offset.html
+/sdcard/android/layout_tests/fast/js/JSON-stringify-replacer.html
/sdcard/android/layout_tests/fast/js/invalid-syntax-for-function.html
+/sdcard/android/layout_tests/fast/js/toString-and-valueOf-override.html
/sdcard/android/layout_tests/fast/js/cyclic-prototypes.html
/sdcard/android/layout_tests/fast/js/equality.html
/sdcard/android/layout_tests/fast/js/order-of-operations.html
/sdcard/android/layout_tests/fast/js/regexp-no-extensions.html
/sdcard/android/layout_tests/fast/js/stack-unwinding.html
-/sdcard/android/layout_tests/fast/js/reserved-words.html
/sdcard/android/layout_tests/fast/js/toString-try-else.html
+/sdcard/android/layout_tests/fast/js/reserved-words.html
/sdcard/android/layout_tests/fast/js/function-dot-arguments-and-caller.html
/sdcard/android/layout_tests/fast/js/do-while-expression-value.html
/sdcard/android/layout_tests/fast/js/bom-in-file-retains-correct-offset.html
/sdcard/android/layout_tests/fast/js/string-split-ignore-case.html
/sdcard/android/layout_tests/fast/js/date-constructor.html
+/sdcard/android/layout_tests/fast/js/global-function-resolve.html
/sdcard/android/layout_tests/fast/js/date-big-setdate.html
/sdcard/android/layout_tests/fast/js/array-every.html
/sdcard/android/layout_tests/fast/js/array-functions-non-arrays.html
+/sdcard/android/layout_tests/fast/js/function-toString-parentheses.html
/sdcard/android/layout_tests/fast/js/while-expression-value.html
/sdcard/android/layout_tests/fast/js/string-replace-3.html
/sdcard/android/layout_tests/fast/js/avl-crash.html
@@ -1453,9 +1612,11 @@
/sdcard/android/layout_tests/fast/js/null-char-in-string.html
/sdcard/android/layout_tests/fast/js/codegen-temporaries-multiple-global-blocks.html
/sdcard/android/layout_tests/fast/js/char-at.html
+/sdcard/android/layout_tests/fast/js/function-constructor-newline-after-brace.html
/sdcard/android/layout_tests/fast/js/propertyIsEnumerable.html
/sdcard/android/layout_tests/fast/js/exception-thrown-from-equal.html
/sdcard/android/layout_tests/fast/js/constructor.html
+/sdcard/android/layout_tests/fast/js/regexp-backreferences.html
/sdcard/android/layout_tests/fast/js/regexp-overflow.html
/sdcard/android/layout_tests/fast/js/var-declarations.html
/sdcard/android/layout_tests/fast/js/continue-break-multiple-labels.html
@@ -1463,8 +1624,8 @@
/sdcard/android/layout_tests/fast/js/regexp-test-null-string.html
/sdcard/android/layout_tests/fast/js/date-parse-comments-test.html
/sdcard/android/layout_tests/fast/js/select-options-remove-gc.html
-/sdcard/android/layout_tests/fast/js/array-tostring-and-join.html
/sdcard/android/layout_tests/fast/js/implicit-call-with-global-reentry.html
+/sdcard/android/layout_tests/fast/js/array-tostring-and-join.html
/sdcard/android/layout_tests/fast/js/function-names.html
/sdcard/android/layout_tests/fast/js/primitive-property-access-edge-cases.html
/sdcard/android/layout_tests/fast/js/date-preserve-milliseconds.html
@@ -1474,16 +1635,22 @@
/sdcard/android/layout_tests/fast/js/static-scope-object.html
/sdcard/android/layout_tests/fast/js/var-shadows-arg-crash.html
/sdcard/android/layout_tests/fast/js/function-apply.html
+/sdcard/android/layout_tests/fast/js/array-reduce.html
/sdcard/android/layout_tests/fast/js/function-prototype.html
/sdcard/android/layout_tests/fast/js/tostring-exception-in-property-access.html
/sdcard/android/layout_tests/fast/js/function-declaration-statement.html
+/sdcard/android/layout_tests/fast/js/large-expressions.html
/sdcard/android/layout_tests/fast/js/date-negative-setmonth.html
/sdcard/android/layout_tests/fast/js/reentrant-call-unwind.html
+/sdcard/android/layout_tests/fast/js/dictionary-no-cache.html
/sdcard/android/layout_tests/fast/js/regexp-lastindex.html
/sdcard/android/layout_tests/fast/js/finally-codegen-failure.html
+/sdcard/android/layout_tests/fast/js/instance-of-immediates.html
/sdcard/android/layout_tests/fast/js/read-modify-eval.html
/sdcard/android/layout_tests/fast/js/exception-thrown-from-function-with-lazy-activation.html
/sdcard/android/layout_tests/fast/js/cyclic-ref-toString.html
+/sdcard/android/layout_tests/fast/js/function-toString-semicolon-insertion.html
+/sdcard/android/layout_tests/fast/js/exception-sequencing.html
/sdcard/android/layout_tests/fast/js/date-big-constructor.html
/sdcard/android/layout_tests/fast/js/gmail-re-re.html
/sdcard/android/layout_tests/fast/js/deep-recursion-test.html
@@ -1501,48 +1668,54 @@
/sdcard/android/layout_tests/fast/js/eval-cross-window.html
/sdcard/android/layout_tests/fast/js/function-decompilation-operators.html
/sdcard/android/layout_tests/fast/js/sort-non-numbers.html
+/sdcard/android/layout_tests/fast/js/excessive-comma-usage.html
+/sdcard/android/layout_tests/fast/js/method-check.html
/sdcard/android/layout_tests/fast/js/function-declarations.html
-/sdcard/android/layout_tests/fast/js/non-object-proto.html
/sdcard/android/layout_tests/fast/js/regexp-extended-characters-match.html
+/sdcard/android/layout_tests/fast/js/non-object-proto.html
/sdcard/android/layout_tests/fast/js/toString-number-dot-expr.html
/sdcard/android/layout_tests/fast/js/date-parse-test.html
/sdcard/android/layout_tests/fast/js/exception-try-finally-scope-error.html
/sdcard/android/layout_tests/fast/js/function-dot-arguments.html
/sdcard/android/layout_tests/fast/js/toString-prefix-postfix-preserve-parens.html
/sdcard/android/layout_tests/fast/js/regexp-ranges-and-escaped-hyphens.html
-/sdcard/android/layout_tests/fast/js/exception-linenums.html
-/sdcard/android/layout_tests/fast/js/array-holes.html
/sdcard/android/layout_tests/fast/js/construct-global-object.html
+/sdcard/android/layout_tests/fast/js/array-holes.html
+/sdcard/android/layout_tests/fast/js/exception-linenums.html
/sdcard/android/layout_tests/fast/js/codegen-temporaries.html
/sdcard/android/layout_tests/fast/js/array-join-bug-11524.html
/sdcard/android/layout_tests/fast/js/with-scope-gc.html
-/sdcard/android/layout_tests/fast/js/array-map.html
/sdcard/android/layout_tests/fast/js/string-index-overflow.html
/sdcard/android/layout_tests/fast/js/eval-cache-crash.html
-/sdcard/android/layout_tests/fast/js/typeof-constant-string.html
+/sdcard/android/layout_tests/fast/js/array-map.html
+/sdcard/android/layout_tests/fast/js/exception-codegen-crash.html
/sdcard/android/layout_tests/fast/js/comparefn-sort-stability.html
+/sdcard/android/layout_tests/fast/js/typeof-constant-string.html
/sdcard/android/layout_tests/fast/js/navigator-plugins-crash.html
/sdcard/android/layout_tests/fast/js/vardecl-preserve-parameters.html
/sdcard/android/layout_tests/fast/inline/clean-after-removing-temp-boxes.html
+/sdcard/android/layout_tests/fast/inline/continuation-positioned-reparenting.html
/sdcard/android/layout_tests/fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
/sdcard/android/layout_tests/fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
/sdcard/android/layout_tests/fast/dom/HTMLTableElement/cellpadding-attribute.html
/sdcard/android/layout_tests/fast/dom/HTMLTableElement/insert-row.html
/sdcard/android/layout_tests/fast/dom/HTMLTableElement/tBodies.html
/sdcard/android/layout_tests/fast/dom/HTMLTableElement/rows.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/write-multiple-calls.html
+/sdcard/android/layout_tests/fast/dom/HTMLDocument/activeElement.html
+/sdcard/android/layout_tests/fast/dom/HTMLDocument/hasFocus-frameless-crash.html
/sdcard/android/layout_tests/fast/dom/HTMLDocument/writeln-call.html
/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-plugins.html
/sdcard/android/layout_tests/fast/dom/HTMLDocument/title-get.html
/sdcard/android/layout_tests/fast/dom/HTMLDocument/object-by-name-unknown-child-element.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/write-call.html
/sdcard/android/layout_tests/fast/dom/HTMLDocument/object-by-name-or-id.html
+/sdcard/android/layout_tests/fast/dom/HTMLDocument/title-set.html
+/sdcard/android/layout_tests/fast/dom/HTMLDocument/write-multiple-calls.html
+/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-special-properties.html
+/sdcard/android/layout_tests/fast/dom/HTMLDocument/url-getset.html
+/sdcard/android/layout_tests/fast/dom/HTMLDocument/write-call.html
/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-open-return-value.html
/sdcard/android/layout_tests/fast/dom/HTMLDocument/writeln-multiple-calls.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/title-set.html
/sdcard/android/layout_tests/fast/dom/HTMLLabelElement/form/test1.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/options-collection-set-string-length.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/options-collection-detached.html
/sdcard/android/layout_tests/fast/dom/Document/replace-child.html
/sdcard/android/layout_tests/fast/dom/Document/title-property-creates-title-element.html
/sdcard/android/layout_tests/fast/dom/Document/createElementNS-namespace-err.html
@@ -1552,22 +1725,35 @@
/sdcard/android/layout_tests/fast/dom/Document/replaceChild-null-oldChild.html
/sdcard/android/layout_tests/fast/dom/Document/createAttributeNS-namespace-err.html
/sdcard/android/layout_tests/fast/dom/Document/open-with-pending-load.html
+/sdcard/android/layout_tests/fast/dom/Document/document-write-doctype.html
/sdcard/android/layout_tests/fast/dom/Document/doc-open-while-parsing.html
+/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/named-options.html
+/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/length-not-overridden.html
+/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/options-collection-set-string-length.html
+/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/listbox-select-reset.html
+/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/options-collection-detached.html
+/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/remove-element-from-within-focus-handler-crash.html
+/sdcard/android/layout_tests/fast/dom/Selection/getRangeAt.html
/sdcard/android/layout_tests/fast/dom/HTMLMetaElement/meta-attributes.html
+/sdcard/android/layout_tests/fast/dom/Element/fixed-position-offset-parent.html
/sdcard/android/layout_tests/fast/dom/Element/getAttribute-check-case-sensitivity.html
/sdcard/android/layout_tests/fast/dom/Element/attr-param-typechecking.html
/sdcard/android/layout_tests/fast/dom/Element/attribute-uppercase.html
/sdcard/android/layout_tests/fast/dom/Element/element-traversal.html
/sdcard/android/layout_tests/fast/dom/Element/onclick-case.html
+/sdcard/android/layout_tests/fast/dom/Element/offsetLeft-offsetTop-body-quirk.html
/sdcard/android/layout_tests/fast/dom/Element/contains-method.html
+/sdcard/android/layout_tests/fast/dom/Element/scrollWidth.html
/sdcard/android/layout_tests/fast/dom/Element/setAttribute-with-colon.html
/sdcard/android/layout_tests/fast/dom/Element/setAttribute-case-insensitivity.html
/sdcard/android/layout_tests/fast/dom/Element/dimension-properties-unrendered.html
+/sdcard/android/layout_tests/fast/dom/Element/offsetLeft-offsetTop-html.html
/sdcard/android/layout_tests/fast/dom/Element/offsetTop-table-cell.html
/sdcard/android/layout_tests/fast/dom/DOMException/EventException.html
/sdcard/android/layout_tests/fast/dom/DOMException/prototype-object.html
/sdcard/android/layout_tests/fast/dom/DOMException/RangeException.html
/sdcard/android/layout_tests/fast/dom/HTMLButtonElement/value/getset.html
+/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution.html
/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-reexecution.html
/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-set-src.html
/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-load-events.html
@@ -1583,10 +1769,12 @@
/sdcard/android/layout_tests/fast/dom/NodeList/invalidate-node-lists-when-parsing.html
/sdcard/android/layout_tests/fast/dom/NodeList/item-by-id-with-no-document.html
/sdcard/android/layout_tests/fast/dom/NodeList/nodelist-item-with-name.html
+/sdcard/android/layout_tests/fast/dom/DOMImplementation/createDocument-namespace-err.html
/sdcard/android/layout_tests/fast/dom/DOMImplementation/createDocumentType-err.html
/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/transition-property-names.html
/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html
/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/empty-string-property.html
+/sdcard/android/layout_tests/fast/dom/Node/normalize.html
/sdcard/android/layout_tests/fast/dom/Node/initial-values.html
/sdcard/android/layout_tests/fast/dom/Node/DOMNodeRemovedEvent.html
/sdcard/android/layout_tests/fast/dom/SelectorAPI/viewless-document.html
@@ -1597,6 +1785,7 @@
/sdcard/android/layout_tests/fast/dom/SelectorAPI/id-fastpath.html
/sdcard/android/layout_tests/fast/dom/SelectorAPI/dumpNodeList.html
/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseTag.html
+/sdcard/android/layout_tests/fast/dom/SelectorAPI/undefined-null-stringify.html
/sdcard/android/layout_tests/fast/dom/SelectorAPI/detached-element.html
/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseID.html
/sdcard/android/layout_tests/fast/dom/SelectorAPI/bug-17313.html
@@ -1604,6 +1793,13 @@
/sdcard/android/layout_tests/fast/dom/SelectorAPI/id-fastpath-strict.html
/sdcard/android/layout_tests/fast/dom/SelectorAPI/dumpNodeList-almost-strict.html
/sdcard/android/layout_tests/fast/dom/HTMLTableSectionElement/rows.html
+/sdcard/android/layout_tests/fast/dom/HTMLInputElement/checked-pseudo-selector.html
+/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-text-reset.html
+/sdcard/android/layout_tests/fast/dom/HTMLInputElement/size-as-number.html
+/sdcard/android/layout_tests/fast/dom/HTMLInputElement/duplicate-element-names.html
+/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-hidden-value.html
+/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-checked-reset.html
+/sdcard/android/layout_tests/fast/dom/HTMLInputElement/size-attribute.html
/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/001.html
/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/002.html
/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/003.html
@@ -1622,45 +1818,70 @@
/sdcard/android/layout_tests/fast/dom/getElementsByClassName/015.html
/sdcard/android/layout_tests/fast/dom/getElementsByClassName/007.html
/sdcard/android/layout_tests/fast/dom/getElementsByClassName/009.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/checked-pseudo-selector.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-text-reset.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/size-as-number.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/duplicate-element-names.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-hidden-value.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-checked-reset.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/size-attribute.html
/sdcard/android/layout_tests/fast/dom/TreeWalker/TreeWalker-currentNode.html
/sdcard/android/layout_tests/fast/dom/HTMLDivElement/align/getset.html
/sdcard/android/layout_tests/fast/dom/Text/replaceWholeText.html
+/sdcard/android/layout_tests/fast/dom/HTMLFormElement/adopt-assertion.html
+/sdcard/android/layout_tests/fast/dom/HTMLFormElement/document-deactivation-callback-crash.html
/sdcard/android/layout_tests/fast/dom/HTMLFormElement/htmlformelement-indexed-getter.html
/sdcard/android/layout_tests/fast/dom/HTMLFormElement/elements-not-in-document.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/window-override-window-using-defineGetter.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/window-override-location-using-defineGetter.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-using-with.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-on-proto-using-defineGetter.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/window-shadow-location-using-string.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-on-proto-using-with.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-on-proto.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/window-shadow-window-using-js-object-with-location-field.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/window-shadow-location-using-js-object-with-toString.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-using-defineGetter.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-using-with.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-on-proto-using-defineGetter.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-on-proto-using-with.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-on-proto.html
+/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-using-defineGetter.html
/sdcard/android/layout_tests/fast/dom/Window/window-closed-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/setTimeout-no-arguments.html
+/sdcard/android/layout_tests/fast/dom/Window/window-function-name-getter-precedence.html
/sdcard/android/layout_tests/fast/dom/Window/window-open-self.html
+/sdcard/android/layout_tests/fast/dom/Window/console-functions.html
+/sdcard/android/layout_tests/fast/dom/Window/window-postmessage-args.html
+/sdcard/android/layout_tests/fast/dom/Window/attr-constructor.html
+/sdcard/android/layout_tests/fast/dom/Window/window-remove-event-listener.html
+/sdcard/android/layout_tests/fast/dom/Window/window-frames-self-referential.html
+/sdcard/android/layout_tests/fast/dom/Window/redirect-with-timer.html
+/sdcard/android/layout_tests/fast/dom/Window/setting-properties-on-closed-window.html
+/sdcard/android/layout_tests/fast/dom/Window/window-open-parent.html
+/sdcard/android/layout_tests/fast/dom/Window/window-access-after-navigation.html
+/sdcard/android/layout_tests/fast/dom/Window/window-appendages-cleared.html
+/sdcard/android/layout_tests/fast/dom/Window/window-special-properties.html
+/sdcard/android/layout_tests/fast/dom/Window/window-custom-prototype.html
+/sdcard/android/layout_tests/fast/dom/Window/window-collection-length-no-crash.html
+/sdcard/android/layout_tests/fast/dom/Window/setTimeout-no-arguments.html
/sdcard/android/layout_tests/fast/dom/Window/getMatchedCSSRules-null-crash.html
/sdcard/android/layout_tests/fast/dom/Window/window-open-self-from-other-frame.html
/sdcard/android/layout_tests/fast/dom/Window/window-custom-prototype-crash.html
+/sdcard/android/layout_tests/fast/dom/Window/setTimeout-string-argument.html
/sdcard/android/layout_tests/fast/dom/Window/window-object-cross-frame-calls.html
/sdcard/android/layout_tests/fast/dom/Window/window-location-replace-functions.html
-/sdcard/android/layout_tests/fast/dom/Window/attr-constructor.html
-/sdcard/android/layout_tests/fast/dom/Window/window-remove-event-listener.html
+/sdcard/android/layout_tests/fast/dom/Window/dispatchEvent.html
/sdcard/android/layout_tests/fast/dom/Window/window-function-frame-getter-precedence.html
/sdcard/android/layout_tests/fast/dom/Window/atob-btoa.html
/sdcard/android/layout_tests/fast/dom/Window/clear-timeout.html
+/sdcard/android/layout_tests/fast/dom/Window/window-early-properties-xhr.html
/sdcard/android/layout_tests/fast/dom/Window/window-property-clearing.html
/sdcard/android/layout_tests/fast/dom/Window/element-constructors-on-window.html
/sdcard/android/layout_tests/fast/dom/Window/orphaned-frame-access.html
-/sdcard/android/layout_tests/fast/dom/Window/redirect-with-timer.html
+/sdcard/android/layout_tests/fast/dom/Window/window-open-pending-url.html
/sdcard/android/layout_tests/fast/dom/Window/window-resize-and-move-sub-frame.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-parent.html
/sdcard/android/layout_tests/fast/dom/Window/console-trace.html
/sdcard/android/layout_tests/fast/dom/Window/alert-undefined.html
/sdcard/android/layout_tests/fast/dom/Window/window-open-top.html
-/sdcard/android/layout_tests/fast/dom/Window/window-appendages-cleared.html
/sdcard/android/layout_tests/fast/dom/Window/global-opener-function.html
/sdcard/android/layout_tests/fast/dom/Window/window-property-shadowing.html
/sdcard/android/layout_tests/fast/dom/Window/remove-timeout-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/window-custom-prototype.html
+/sdcard/android/layout_tests/fast/dom/Window/customized-property-survives-gc.html
/sdcard/android/layout_tests/fast/dom/Window/timeout-callback-scope.html
/sdcard/android/layout_tests/fast/dom/Window/window-property-shadowing-name.html
/sdcard/android/layout_tests/fast/dom/Window/window-open-parent-no-parent.html
@@ -1670,20 +1891,23 @@
/sdcard/android/layout_tests/fast/dom/HTMLFontElement/size-attribute.html
/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/form/test1.html
/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/object-as-frame.html
+/sdcard/android/layout_tests/fast/dom/HTMLElement/innerHTML-selection-crash.html
/sdcard/android/layout_tests/fast/dom/HTMLElement/set-inner-outer-optimization.html
/sdcard/android/layout_tests/fast/dom/Range/compareBoundaryPoints-1.html
/sdcard/android/layout_tests/fast/dom/Range/range-compareNode.html
/sdcard/android/layout_tests/fast/dom/Range/range-comparePoint.html
/sdcard/android/layout_tests/fast/dom/Range/acid3-surround-contents.html
/sdcard/android/layout_tests/fast/dom/Range/mutation.html
+/sdcard/android/layout_tests/fast/dom/Range/deleted-range-endpoints.html
/sdcard/android/layout_tests/fast/dom/Range/13000.html
/sdcard/android/layout_tests/fast/dom/Range/range-processing-instructions.html
/sdcard/android/layout_tests/fast/dom/Range/range-insertNode-separate-endContainer.html
/sdcard/android/layout_tests/fast/dom/Range/range-intersectsNode.html
/sdcard/android/layout_tests/fast/dom/Range/range-isPointInRange.html
-/sdcard/android/layout_tests/fast/dom/Range/range-clone-empty.html
/sdcard/android/layout_tests/fast/dom/Range/compareBoundaryPoints-2.html
+/sdcard/android/layout_tests/fast/dom/Range/range-clone-empty.html
/sdcard/android/layout_tests/fast/dom/Range/range-modifycontents.html
+/sdcard/android/layout_tests/fast/dom/Range/bug-19527.html
/sdcard/android/layout_tests/fast/dom/Range/range-insertNode-splittext.html
/sdcard/android/layout_tests/fast/dom/Range/surroundContents-check-boundary-points.html
/sdcard/android/layout_tests/fast/dom/Range/range-exceptions.html
@@ -1695,16 +1919,19 @@
/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-loading-gc.html
/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-longdesc-absolute-url.html
/sdcard/android/layout_tests/fast/dom/HTMLImageElement/constructor-mutation-event-dispatch.html
+/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-load-cross-document.html
/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-without-renderer-width.html
/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-natural-width-height.html
/sdcard/android/layout_tests/fast/dom/StyleSheet/ownerNode-lifetime.html
/sdcard/android/layout_tests/fast/dom/EntityReference/readonly-exceptions.html
/sdcard/android/layout_tests/fast/dom/script-element-remove-self.html
/sdcard/android/layout_tests/fast/dom/remove-named-attribute-crash.html
+/sdcard/android/layout_tests/fast/dom/style-sheet-candidate-remove-unrendered-document.html
/sdcard/android/layout_tests/fast/dom/node-item.html
/sdcard/android/layout_tests/fast/dom/clone-node-style.html
/sdcard/android/layout_tests/fast/dom/script-element-without-frame-crash.html
/sdcard/android/layout_tests/fast/dom/script-element-gc.html
+/sdcard/android/layout_tests/fast/dom/empty-hash-and-search.html
/sdcard/android/layout_tests/fast/dom/duplicate-ids.html
/sdcard/android/layout_tests/fast/dom/prototypes.html
/sdcard/android/layout_tests/fast/dom/clone-node-form-elements.html
@@ -1716,7 +1943,23 @@
/sdcard/android/layout_tests/fast/dom/image-object.html
/sdcard/android/layout_tests/fast/dom/gc-5.html
/sdcard/android/layout_tests/fast/dom/cssTarget-crash.html
-/sdcard/android/layout_tests/fast/dom/xmlhttprequest-invalid-values.html
+/sdcard/android/layout_tests/fast/dom/noscript-canvas-in-created-html-document.html
+/sdcard/android/layout_tests/fast/dom/DOMParser-assign-variable.html
+/sdcard/android/layout_tests/fast/dom/offset-parent-positioned-and-inline.html
+/sdcard/android/layout_tests/fast/dom/timer-clear-interval-in-handler.html
+/sdcard/android/layout_tests/fast/dom/implementation-createHTMLDocument.html
+/sdcard/android/layout_tests/fast/dom/iframe-document.html
+/sdcard/android/layout_tests/fast/dom/document-all-input.html
+/sdcard/android/layout_tests/fast/dom/null-document-location-href-put-crash.html
+/sdcard/android/layout_tests/fast/dom/getelementsbytagnamens-mixed-namespaces.html
+/sdcard/android/layout_tests/fast/dom/object-plugin-hides-properties.html
+/sdcard/android/layout_tests/fast/dom/gc-2.html
+/sdcard/android/layout_tests/fast/dom/computed-style-set-property.html
+/sdcard/android/layout_tests/fast/dom/inner-text-001.html
+/sdcard/android/layout_tests/fast/dom/css-selectorText.html
+/sdcard/android/layout_tests/fast/dom/replace-first-child.html
+/sdcard/android/layout_tests/fast/dom/select-selectedIndex-multiple.html
+/sdcard/android/layout_tests/fast/dom/importNode-null.html
/sdcard/android/layout_tests/fast/dom/space-to-text.html
/sdcard/android/layout_tests/fast/dom/css-set-property-exception.html
/sdcard/android/layout_tests/fast/dom/java-applet-calls.html
@@ -1729,17 +1972,18 @@
/sdcard/android/layout_tests/fast/dom/serialize-cdata.html
/sdcard/android/layout_tests/fast/dom/createDocument.html
/sdcard/android/layout_tests/fast/dom/getelementbyname-invalidation.html
+/sdcard/android/layout_tests/fast/dom/setAttributeNS-empty-namespace.html
/sdcard/android/layout_tests/fast/dom/capturing-event-listeners.html
/sdcard/android/layout_tests/fast/dom/title-text-property.html
/sdcard/android/layout_tests/fast/dom/null-page-show-modal-dialog-crash.html
/sdcard/android/layout_tests/fast/dom/incompatible-operations.html
-/sdcard/android/layout_tests/fast/dom/xmlhttprequest-html-response-encoding.html
/sdcard/android/layout_tests/fast/dom/inner-text-rtl.html
/sdcard/android/layout_tests/fast/dom/createDocument-empty.html
/sdcard/android/layout_tests/fast/dom/documenturi-assigned-junk-implies-baseuri-null.html
/sdcard/android/layout_tests/fast/dom/option-properties.html
/sdcard/android/layout_tests/fast/dom/background-shorthand-csstext.html
/sdcard/android/layout_tests/fast/dom/Range-insertNode-crash.html
+/sdcard/android/layout_tests/fast/dom/NamedNodeMap-setNamedItem-crash.html
/sdcard/android/layout_tests/fast/dom/early-frame-url.html
/sdcard/android/layout_tests/fast/dom/everything-to-string.html
/sdcard/android/layout_tests/fast/dom/attribute-empty-value-no-children.html
@@ -1755,19 +1999,24 @@
/sdcard/android/layout_tests/fast/dom/defaultView.html
/sdcard/android/layout_tests/fast/dom/collection-null-like-arguments.html
/sdcard/android/layout_tests/fast/dom/gc-3.html
+/sdcard/android/layout_tests/fast/dom/event-attribute-availability.html
+/sdcard/android/layout_tests/fast/dom/select-selectedIndex.html
/sdcard/android/layout_tests/fast/dom/compatMode-Strict.html
/sdcard/android/layout_tests/fast/dom/attribute-downcast-right.html
/sdcard/android/layout_tests/fast/dom/document-all-select.html
+/sdcard/android/layout_tests/fast/dom/wrapper-context.html
/sdcard/android/layout_tests/fast/dom/anchor-backslash.html
/sdcard/android/layout_tests/fast/dom/css-mediarule-functions.html
+/sdcard/android/layout_tests/fast/dom/gc-acid3.html
/sdcard/android/layout_tests/fast/dom/duplicate-ids-document-order.html
/sdcard/android/layout_tests/fast/dom/exception-no-frame-inline-script-crash.html
/sdcard/android/layout_tests/fast/dom/XMLSerializer-doctype2.html
/sdcard/android/layout_tests/fast/dom/dir-no-body.html
/sdcard/android/layout_tests/fast/dom/null-document-window-open-crash.html
/sdcard/android/layout_tests/fast/dom/css-RGBValue.html
-/sdcard/android/layout_tests/fast/dom/innerHTML-nbsp.html
/sdcard/android/layout_tests/fast/dom/documentElement-null.html
+/sdcard/android/layout_tests/fast/dom/innerHTML-nbsp.html
+/sdcard/android/layout_tests/fast/dom/createElementNS-empty-namespace.html
/sdcard/android/layout_tests/fast/dom/class-all-whitespace.html
/sdcard/android/layout_tests/fast/dom/wrapper-identity.html
/sdcard/android/layout_tests/fast/dom/null-document-location-assign-crash.html
@@ -1782,8 +2031,8 @@
/sdcard/android/layout_tests/fast/dom/documenturi-affects-relative-paths.html
/sdcard/android/layout_tests/fast/dom/javascript-backslash.html
/sdcard/android/layout_tests/fast/dom/setAttribute-using-initial-input-value.html
-/sdcard/android/layout_tests/fast/dom/generic-form-element-assert.html
/sdcard/android/layout_tests/fast/dom/css-shortHands.html
+/sdcard/android/layout_tests/fast/dom/generic-form-element-assert.html
/sdcard/android/layout_tests/fast/dom/dom-instanceof.html
/sdcard/android/layout_tests/fast/dom/array-special-accessors-should-ignore-items.html
/sdcard/android/layout_tests/fast/dom/element-attribute-js-null.html
@@ -1793,22 +2042,25 @@
/sdcard/android/layout_tests/fast/dom/setter-type-enforcement.html
/sdcard/android/layout_tests/fast/dom/XMLSerializer.html
/sdcard/android/layout_tests/fast/dom/navigator-vendorSub.html
-/sdcard/android/layout_tests/fast/dom/gc-7.html
/sdcard/android/layout_tests/fast/dom/outerText-no-element.html
/sdcard/android/layout_tests/fast/dom/replace-child-siblings.html
+/sdcard/android/layout_tests/fast/dom/xmlhttprequest-constructor-in-detached-document.html
/sdcard/android/layout_tests/fast/dom/constants.html
/sdcard/android/layout_tests/fast/dom/inner-text-with-no-renderer.html
+/sdcard/android/layout_tests/fast/dom/gc-7.html
/sdcard/android/layout_tests/fast/dom/onerror-img.html
/sdcard/android/layout_tests/fast/dom/document-attribute-js-null.html
/sdcard/android/layout_tests/fast/dom/css-element-attribute-js-null.html
/sdcard/android/layout_tests/fast/dom/gc-11.html
/sdcard/android/layout_tests/fast/dom/mutation-event-remove-inserted-node.html
+/sdcard/android/layout_tests/fast/dom/constructors-cached.html
/sdcard/android/layout_tests/fast/dom/null-chardata-crash.html
/sdcard/android/layout_tests/fast/dom/compatMode-AlmostStrict.html
/sdcard/android/layout_tests/fast/dom/createElement-with-column.html
/sdcard/android/layout_tests/fast/dom/exception-no-frame-timeout-crash.html
/sdcard/android/layout_tests/fast/dom/title-text-property-2.html
/sdcard/android/layout_tests/fast/dom/no-elements.html
+/sdcard/android/layout_tests/fast/dom/non-numeric-values-numeric-parameters.html
/sdcard/android/layout_tests/fast/dom/gc-4.html
/sdcard/android/layout_tests/fast/dom/inner-width-height.html
/sdcard/android/layout_tests/fast/dom/XMLSerializer-doctype.html
@@ -1816,127 +2068,200 @@
/sdcard/android/layout_tests/fast/dom/undetectable-document-all.html
/sdcard/android/layout_tests/fast/dom/prototype-chain.html
/sdcard/android/layout_tests/fast/dom/gc-1.html
+/sdcard/android/layout_tests/fast/dom/script-add.html
/sdcard/android/layout_tests/fast/dom/select-selectedIndex-bug-12942.html
+/sdcard/android/layout_tests/fast/dom/text-control-crash-on-select.html
/sdcard/android/layout_tests/fast/dom/frame-contentWindow-crash.html
+/sdcard/android/layout_tests/fast/dom/document_write_params.html
+/sdcard/android/layout_tests/fast/dom/namednodemap-namelookup.html
+/sdcard/android/layout_tests/fast/dom/null-document-location-replace-crash.html
+/sdcard/android/layout_tests/fast/dom/htmlcollection-detectability.html
+/sdcard/android/layout_tests/fast/dom/documenturi-assigned-junk-implies-relative-urls-do-not-resolve.html
+/sdcard/android/layout_tests/fast/dom/collection-namedItem-via-item.html
+/sdcard/android/layout_tests/fast/dom/set-inner-text-newlines.html
+/sdcard/android/layout_tests/fast/dom/document-dir-property.html
+/sdcard/android/layout_tests/fast/dom/undetectable-style-filter.html
/sdcard/android/layout_tests/fast/dom/domListEnumeration.html
/sdcard/android/layout_tests/fast/dom/destroy-selected-radio-button-crash.html
-/sdcard/android/layout_tests/fast/dom/script-add.html
+/sdcard/android/layout_tests/fast/dom/tabindex-clamp.html
/sdcard/android/layout_tests/fast/dom/iframe-contentWindow-crash.html
/sdcard/android/layout_tests/fast/dom/comment-dom-node.html
+/sdcard/android/layout_tests/fast/dom/constructors-cached-navigate.html
/sdcard/android/layout_tests/fast/dom/features.html
/sdcard/android/layout_tests/fast/dom/canvasContext2d-element-attribute-js-null.html
/sdcard/android/layout_tests/fast/dom/remove-style-element.html
/sdcard/android/layout_tests/fast/dom/attribute-namespaces-get-set.html
/sdcard/android/layout_tests/fast/dom/innerHTML-escaping-attribute.html
-/sdcard/android/layout_tests/fast/dom/null-document-xmlhttprequest-open.html
/sdcard/android/layout_tests/fast/dom/null-document-location-put-crash.html
/sdcard/android/layout_tests/fast/dom/ImageDocument-image-deletion.html
/sdcard/android/layout_tests/fast/dom/document-scripts.html
+/sdcard/android/layout_tests/fast/dom/cloneNode.html
+/sdcard/android/layout_tests/fast/dom/onload-open.html
/sdcard/android/layout_tests/fast/gradients/crash-on-remove.html
-/sdcard/android/layout_tests/fast/xpath/xpath-empty-string.html
/sdcard/android/layout_tests/fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html
/sdcard/android/layout_tests/fast/invalid/nestedh3s-rapidweaver.html
-/sdcard/android/layout_tests/fast/forms/element-by-name.html
/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_selected.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-003.html
-/sdcard/android/layout_tests/fast/forms/radio-button-no-change-event.html
+/sdcard/android/layout_tests/fast/forms/option-value-and-label.html
/sdcard/android/layout_tests/fast/forms/menulist-selection-reset.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-customError-001.html
/sdcard/android/layout_tests/fast/forms/textfield-focus-out.html
/sdcard/android/layout_tests/fast/forms/willvalidate-000.html
/sdcard/android/layout_tests/fast/forms/form-data-encoding-normalization-overrun.html
+/sdcard/android/layout_tests/fast/forms/textarea-trailing-newline.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-002.html
+/sdcard/android/layout_tests/fast/forms/selection-functions.html
+/sdcard/android/layout_tests/fast/forms/select-no-name.html
+/sdcard/android/layout_tests/fast/forms/multiple-selected-options-innerHTML.html
/sdcard/android/layout_tests/fast/forms/input-named-action-overrides-action-attribute.html
/sdcard/android/layout_tests/fast/forms/empty-get.html
/sdcard/android/layout_tests/fast/forms/display-none-in-onchange-keyboard.html
-/sdcard/android/layout_tests/fast/forms/range-default-value.html
-/sdcard/android/layout_tests/fast/forms/paste-into-textarea.html
/sdcard/android/layout_tests/fast/forms/4628409.html
-/sdcard/android/layout_tests/fast/forms/radio-no-theme-padding.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-006.html
+/sdcard/android/layout_tests/fast/forms/numeric-input-name.html
/sdcard/android/layout_tests/fast/forms/activate-and-disabled-elements.html
-/sdcard/android/layout_tests/fast/forms/form-get-multipart2.html
/sdcard/android/layout_tests/fast/forms/tabs-with-modifiers.html
+/sdcard/android/layout_tests/fast/forms/form-get-multipart2.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-002.html
/sdcard/android/layout_tests/fast/forms/menulist-no-renderer-onmousedown.html
-/sdcard/android/layout_tests/fast/forms/saved-state-adoptNode-crash.html
/sdcard/android/layout_tests/fast/forms/select-replace-option.html
/sdcard/android/layout_tests/fast/forms/textarea-setvalue-submit.html
-/sdcard/android/layout_tests/fast/forms/11423.html
-/sdcard/android/layout_tests/fast/forms/cursor-position.html
/sdcard/android/layout_tests/fast/forms/willvalidate-007.html
-/sdcard/android/layout_tests/fast/forms/input-changing-value.html
/sdcard/android/layout_tests/fast/forms/double-focus.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-004.html
/sdcard/android/layout_tests/fast/forms/form-data-encoding-2.html
+/sdcard/android/layout_tests/fast/forms/inline-ignored-on-legend.html
/sdcard/android/layout_tests/fast/forms/focus.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-004.html
-/sdcard/android/layout_tests/fast/forms/button-in-forms-collection.html
/sdcard/android/layout_tests/fast/forms/input-text-enter.html
-/sdcard/android/layout_tests/fast/forms/input-delete.html
-/sdcard/android/layout_tests/fast/forms/placeholder-non-textfield.html
+/sdcard/android/layout_tests/fast/forms/input-implicit-length-limit.html
/sdcard/android/layout_tests/fast/forms/element-order.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-customError-002.html
/sdcard/android/layout_tests/fast/forms/form-post-urlencoded.html
/sdcard/android/layout_tests/fast/forms/willvalidate-001.html
-/sdcard/android/layout_tests/fast/forms/option-constructor-selected.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-003.html
/sdcard/android/layout_tests/fast/forms/8250.html
-/sdcard/android/layout_tests/fast/forms/input-zero-height-focus.html
/sdcard/android/layout_tests/fast/forms/var-name-conflict-in-form-event-handler.html
+/sdcard/android/layout_tests/fast/forms/listbox-select-all.html
/sdcard/android/layout_tests/fast/forms/range-reset.html
-/sdcard/android/layout_tests/fast/forms/textarea-linewrap-dynamic.html
/sdcard/android/layout_tests/fast/forms/select-remove-option.html
/sdcard/android/layout_tests/fast/forms/onselect-selectall.html
-/sdcard/android/layout_tests/fast/forms/select-width-font-change.html
-/sdcard/android/layout_tests/fast/forms/text-field-setvalue-crash.html
+/sdcard/android/layout_tests/fast/forms/input-select-webkit-user-select-none.html
/sdcard/android/layout_tests/fast/forms/paste-multiline-text-input.html
-/sdcard/android/layout_tests/fast/forms/form-get-multipart.html
+/sdcard/android/layout_tests/fast/forms/textarea-no-scroll-on-blur.html
+/sdcard/android/layout_tests/fast/forms/select-reset-multiple-selections-4-single-selection.html
/sdcard/android/layout_tests/fast/forms/tab-in-input.html
/sdcard/android/layout_tests/fast/forms/button-click-DOM.html
-/sdcard/android/layout_tests/fast/forms/domstring-replace-crash.html
/sdcard/android/layout_tests/fast/forms/submit-nil-value-field-assert.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-007.html
+/sdcard/android/layout_tests/fast/forms/domstring-replace-crash.html
+/sdcard/android/layout_tests/fast/forms/select-max-length.html
/sdcard/android/layout_tests/fast/forms/form-get-multipart3.html
/sdcard/android/layout_tests/fast/forms/select-out-of-bounds-index.html
-/sdcard/android/layout_tests/fast/forms/select-type-ahead-list-box-no-selection.html
/sdcard/android/layout_tests/fast/forms/selected-index-assert.html
-/sdcard/android/layout_tests/fast/forms/remove-radio-button-assert.html
-/sdcard/android/layout_tests/fast/forms/textarea-crlf.html
+/sdcard/android/layout_tests/fast/forms/legend-display-none.html
/sdcard/android/layout_tests/fast/forms/form-collection-lookup.html
/sdcard/android/layout_tests/fast/forms/autofocus-opera-004.html
/sdcard/android/layout_tests/fast/forms/select-list-box-mouse-focus.html
-/sdcard/android/layout_tests/fast/forms/text-set-value-crash.html
/sdcard/android/layout_tests/fast/forms/willvalidate-008.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-001.html
-/sdcard/android/layout_tests/fast/forms/select-namedItem.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-005.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-005.html
+/sdcard/android/layout_tests/fast/forms/required-attribute-001.html
/sdcard/android/layout_tests/fast/forms/select-index-setter.html
/sdcard/android/layout_tests/fast/forms/option-change-single-selected.html
/sdcard/android/layout_tests/fast/forms/listbox-scroll-after-options-removed.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-customError-003.html
/sdcard/android/layout_tests/fast/forms/input-selection-hidden.html
-/sdcard/android/layout_tests/fast/forms/input-type-change-in-onfocus-keyboard.html
/sdcard/android/layout_tests/fast/forms/willvalidate-002.html
-/sdcard/android/layout_tests/fast/forms/option-in-optgroup-removal.html
-/sdcard/android/layout_tests/fast/forms/form-data-encoding.html
-/sdcard/android/layout_tests/fast/forms/textarea-default-value-leading-newline.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-008.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-004.html
+/sdcard/android/layout_tests/fast/forms/select-set-inner.html
+/sdcard/android/layout_tests/fast/forms/input-appearance-elementFromPoint.html
+/sdcard/android/layout_tests/fast/forms/missing-action.html
/sdcard/android/layout_tests/fast/forms/listbox-typeahead-empty.html
/sdcard/android/layout_tests/fast/forms/submit-to-url-fragment.html
+/sdcard/android/layout_tests/fast/forms/autofocus-opera-005.html
+/sdcard/android/layout_tests/fast/forms/willvalidate-009.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-006.html
+/sdcard/android/layout_tests/fast/forms/old-names.html
+/sdcard/android/layout_tests/fast/forms/required-attribute-002.html
+/sdcard/android/layout_tests/fast/forms/add-and-remove-option.html
+/sdcard/android/layout_tests/fast/forms/focus-style-pending.html
+/sdcard/android/layout_tests/fast/forms/textarea-initial-caret-position.html
+/sdcard/android/layout_tests/fast/forms/input-type-change-in-onfocus-mouse.html
+/sdcard/android/layout_tests/fast/forms/mutation-event-recalc.html
+/sdcard/android/layout_tests/fast/forms/slow-click.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-customError-004.html
+/sdcard/android/layout_tests/fast/forms/autofocus-attribute.html
+/sdcard/android/layout_tests/fast/forms/element-by-name.html
+/sdcard/android/layout_tests/fast/forms/willvalidate-003.html
+/sdcard/android/layout_tests/fast/forms/radio-button-no-change-event.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-005.html
+/sdcard/android/layout_tests/fast/forms/input-maxlength.html
+/sdcard/android/layout_tests/fast/forms/select-reset.html
+/sdcard/android/layout_tests/fast/forms/input-hit-test-border.html
+/sdcard/android/layout_tests/fast/forms/pattern-attribute-001.html
+/sdcard/android/layout_tests/fast/forms/range-default-value.html
+/sdcard/android/layout_tests/fast/forms/shadow-tree-exposure.html
+/sdcard/android/layout_tests/fast/forms/paste-into-textarea.html
+/sdcard/android/layout_tests/fast/forms/radio-no-theme-padding.html
+/sdcard/android/layout_tests/fast/forms/textfield-drag-into-disabled.html
+/sdcard/android/layout_tests/fast/forms/autofocus-opera-006.html
+/sdcard/android/layout_tests/fast/forms/saved-state-adoptNode-crash.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-007.html
+/sdcard/android/layout_tests/fast/forms/radio-check-click-and-drag.html
+/sdcard/android/layout_tests/fast/forms/11423.html
+/sdcard/android/layout_tests/fast/forms/cursor-position.html
+/sdcard/android/layout_tests/fast/forms/input-changing-value.html
+/sdcard/android/layout_tests/fast/forms/willvalidate-004.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-001.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-006.html
+/sdcard/android/layout_tests/fast/forms/button-in-forms-collection.html
+/sdcard/android/layout_tests/fast/forms/input-delete.html
+/sdcard/android/layout_tests/fast/forms/placeholder-non-textfield.html
+/sdcard/android/layout_tests/fast/forms/option-constructor-selected.html
+/sdcard/android/layout_tests/fast/forms/input-multiple.html
+/sdcard/android/layout_tests/fast/forms/input-zero-height-focus.html
+/sdcard/android/layout_tests/fast/forms/pattern-attribute-002.html
+/sdcard/android/layout_tests/fast/forms/textarea-linewrap-dynamic.html
+/sdcard/android/layout_tests/fast/forms/placeholder-dom-property.html
+/sdcard/android/layout_tests/fast/forms/select-width-font-change.html
+/sdcard/android/layout_tests/fast/forms/text-field-setvalue-crash.html
+/sdcard/android/layout_tests/fast/forms/form-get-multipart.html
+/sdcard/android/layout_tests/fast/forms/autofocus-opera-007.html
+/sdcard/android/layout_tests/fast/forms/select-type-ahead-list-box-no-selection.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-008.html
+/sdcard/android/layout_tests/fast/forms/textarea-crlf.html
+/sdcard/android/layout_tests/fast/forms/remove-radio-button-assert.html
+/sdcard/android/layout_tests/fast/forms/text-set-value-crash.html
+/sdcard/android/layout_tests/fast/forms/autofocus-opera-001.html
+/sdcard/android/layout_tests/fast/forms/select-namedItem.html
+/sdcard/android/layout_tests/fast/forms/willvalidate-005.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-002.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-007.html
+/sdcard/android/layout_tests/fast/forms/add-remove-option-modification-event.html
+/sdcard/android/layout_tests/fast/forms/input-type-change-in-onfocus-keyboard.html
+/sdcard/android/layout_tests/fast/forms/option-in-optgroup-removal.html
+/sdcard/android/layout_tests/fast/forms/form-data-encoding.html
+/sdcard/android/layout_tests/fast/forms/pattern-attribute-003.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-001.html
+/sdcard/android/layout_tests/fast/forms/textarea-default-value-leading-newline.html
+/sdcard/android/layout_tests/fast/forms/autofocus-opera-008.html
+/sdcard/android/layout_tests/fast/forms/add-remove-form-elements-stress-test.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-009.html
/sdcard/android/layout_tests/fast/forms/textarea-setvalue-without-renderer.html
/sdcard/android/layout_tests/fast/forms/hidden-input-not-enabled.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-005.html
/sdcard/android/layout_tests/fast/forms/input-appearance-maxlength.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-001.html
/sdcard/android/layout_tests/fast/forms/submit-with-base.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-009.html
/sdcard/android/layout_tests/fast/forms/input-setvalue-selection.html
/sdcard/android/layout_tests/fast/forms/autofocus-opera-002.html
-/sdcard/android/layout_tests/fast/forms/old-names.html
-/sdcard/android/layout_tests/fast/forms/focus-style-pending.html
+/sdcard/android/layout_tests/fast/forms/textarea-appearance-wrap.html
+/sdcard/android/layout_tests/fast/forms/add-selected-option.html
+/sdcard/android/layout_tests/fast/forms/willvalidate-006.html
+/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-003.html
/sdcard/android/layout_tests/fast/forms/textarea-hard-linewrap-empty.html
-/sdcard/android/layout_tests/fast/forms/input-type-change-in-onfocus-mouse.html
/sdcard/android/layout_tests/fast/forms/document-write.html
-/sdcard/android/layout_tests/fast/forms/slow-click.html
-/sdcard/android/layout_tests/fast/forms/autofocus-attribute.html
/sdcard/android/layout_tests/fast/table/incomplete-table-in-fragment-hang.html
/sdcard/android/layout_tests/fast/table/section-in-table-before-misnested-text-crash-css.html
/sdcard/android/layout_tests/fast/table/large-rowspan-crash.html
/sdcard/android/layout_tests/fast/table/colgroup-relative.html
/sdcard/android/layout_tests/fast/table/border-changes.html
+/sdcard/android/layout_tests/fast/table/table-row-compositing-repaint-crash.html
/sdcard/android/layout_tests/fast/table/cell-in-row-before-misnested-text-crash-css.html
/sdcard/android/layout_tests/fast/table/incomplete-table-in-fragment-2.html
/sdcard/android/layout_tests/fast/table/rowindex-comment-nodes.html
@@ -1950,7 +2275,22 @@
/sdcard/android/layout_tests/fast/css/counters/counter-function-input-2.html
/sdcard/android/layout_tests/fast/css/counters/counter-function-input.html
/sdcard/android/layout_tests/fast/css/counters/counter-number-input.html
+/sdcard/android/layout_tests/fast/css/variables/color-hex-test.html
/sdcard/android/layout_tests/fast/css/variables/invalid-identifier.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style-negative-top.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-borderRadius.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-background-size.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-border-image.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-border-spacing.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style-font-family.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-zIndex-auto.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-transform.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style-display-none.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-background-position.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-text-overflow.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-border-box.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-relayout.html
+/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-text-decoration.html
/sdcard/android/layout_tests/fast/css/media-rule-dyn.html
/sdcard/android/layout_tests/fast/css/transform-function-lowercase-assert.html
/sdcard/android/layout_tests/fast/css/word-break-user-modify-allowed-values.html
@@ -1958,19 +2298,22 @@
/sdcard/android/layout_tests/fast/css/outline-invert-assertion.html
/sdcard/android/layout_tests/fast/css/insertRule-font-face.html
/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-004.html
+/sdcard/android/layout_tests/fast/css/zoom-in-length-round-trip.html
/sdcard/android/layout_tests/fast/css/transform-inline-style-remove.html
/sdcard/android/layout_tests/fast/css/padding-no-renderer.html
/sdcard/android/layout_tests/fast/css/transition_shorthand_parsing.html
/sdcard/android/layout_tests/fast/css/css-selector-text.html
/sdcard/android/layout_tests/fast/css/dashboard-regions-attr-crash.html
/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-001.html
+/sdcard/android/layout_tests/fast/css/pseudo-required-optional-006.html
/sdcard/android/layout_tests/fast/css/font-property-priority.html
-/sdcard/android/layout_tests/fast/css/computed-style-negative-top.html
+/sdcard/android/layout_tests/fast/css/number-parsing-crash.html
/sdcard/android/layout_tests/fast/css/device-aspect-ratio.html
/sdcard/android/layout_tests/fast/css/pseudostyle-anonymous-text.html
/sdcard/android/layout_tests/fast/css/css-properties-case-insensitive.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-border-image.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-border-spacing.html
+/sdcard/android/layout_tests/fast/css/sheet-collection-link.html
+/sdcard/android/layout_tests/fast/css/pseudo-required-optional-003.html
+/sdcard/android/layout_tests/fast/css/resize-value-compared.html
/sdcard/android/layout_tests/fast/css/font-face-descriptor-multiple-values-parsing.html
/sdcard/android/layout_tests/fast/css/hexColor-isDigit-assert.html
/sdcard/android/layout_tests/fast/css/transform-inline-style.html
@@ -1978,120 +2321,144 @@
/sdcard/android/layout_tests/fast/css/outline-hidden-illegal-value.html
/sdcard/android/layout_tests/fast/css/emptyStyleTag.html
/sdcard/android/layout_tests/fast/css/stale-style-selector-crash-1.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-background-size.html
/sdcard/android/layout_tests/fast/css/display-none-inline-style-change-crash.html
/sdcard/android/layout_tests/fast/css/getPropertyValue-clip.html
/sdcard/android/layout_tests/fast/css/border-image-crash.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-border-box.html
/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-005.html
/sdcard/android/layout_tests/fast/css/insertRule-media.html
+/sdcard/android/layout_tests/fast/css/html-attr-case-sensitivity.html
/sdcard/android/layout_tests/fast/css/font-face-multiple-families.html
/sdcard/android/layout_tests/fast/css/getPropertyValue-border.html
/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-002.html
/sdcard/android/layout_tests/fast/css/invalid-rule-value.html
/sdcard/android/layout_tests/fast/css/max-device-aspect-ratio.html
/sdcard/android/layout_tests/fast/css/background-currentcolor.html
+/sdcard/android/layout_tests/fast/css/pseudo-required-optional-004.html
/sdcard/android/layout_tests/fast/css/orphaned_units_crash.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-relayout.html
/sdcard/android/layout_tests/fast/css/invalid-cursor-property-crash.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-borderRadius.html
/sdcard/android/layout_tests/fast/css/sheet-title.html
+/sdcard/android/layout_tests/fast/css/large-list-of-rules-crash.html
+/sdcard/android/layout_tests/fast/css/pseudo-required-optional-001.html
/sdcard/android/layout_tests/fast/css/background-position-serialize.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-background-position.html
/sdcard/android/layout_tests/fast/css/stale-style-selector-crash-2.html
/sdcard/android/layout_tests/fast/css/webkit-marquee-speed-unit-in-quirksmode.html
/sdcard/android/layout_tests/fast/css/CSSPrimitiveValue-exceptions.html
/sdcard/android/layout_tests/fast/css/empty-script.html
-/sdcard/android/layout_tests/fast/css/mask-missing-image-crash.html
-/sdcard/android/layout_tests/fast/css/parse-timing-function-crash.html
-/sdcard/android/layout_tests/fast/css/background-position-inherit.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-003.html
-/sdcard/android/layout_tests/fast/css/overflow-property.html
-/sdcard/android/layout_tests/fast/css/remove-shorthand.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-zIndex-auto.html
+/sdcard/android/layout_tests/fast/css/pseudo-required-optional-005.html
/sdcard/android/layout_tests/fast/css/min-device-aspect-ratio.html
-/sdcard/android/layout_tests/fast/css/case-transform.html
/sdcard/android/layout_tests/fast/css/nested-rule-parent-sheet.html
+/sdcard/android/layout_tests/fast/css/case-transform.html
+/sdcard/android/layout_tests/fast/css/number-parsing-crash-2.html
+/sdcard/android/layout_tests/fast/css/matrix-as-function-crash.html
+/sdcard/android/layout_tests/fast/css/pseudo-required-optional-002.html
+/sdcard/android/layout_tests/fast/css/attr-parsing.html
/sdcard/android/layout_tests/fast/css/font-family-initial.html
-/sdcard/android/layout_tests/fast/css/computed-style-display-none.html
/sdcard/android/layout_tests/fast/css/small-caps-crash.html
/sdcard/android/layout_tests/fast/css/max-height-and-max-width.html
/sdcard/android/layout_tests/fast/css/legacy-opacity-styles.html
/sdcard/android/layout_tests/fast/css/transition-timing-function.html
+/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-4.html
+/sdcard/android/layout_tests/fast/block/float/selection-gap-clip-out-tiger-crash.html
+/sdcard/android/layout_tests/fast/block/float/crash-on-absolute-positioning.html
+/sdcard/android/layout_tests/fast/block/float/crash-replaced-display-block.html
+/sdcard/android/layout_tests/fast/parser/implicit-head-in-fragment-crash.html
+/sdcard/android/layout_tests/fast/parser/smart-quotes-in-tag.html
+/sdcard/android/layout_tests/fast/parser/entity-comment-in-iframe.html
/sdcard/android/layout_tests/fast/parser/remove-node-stack.html
/sdcard/android/layout_tests/fast/parser/remove-current-node-parent.html
/sdcard/android/layout_tests/fast/parser/entity-end-iframe-tag.html
/sdcard/android/layout_tests/fast/parser/nsup-entity.html
-/sdcard/android/layout_tests/fast/parser/parse-wbr.html
+/sdcard/android/layout_tests/fast/parser/block-nesting-cap.html
/sdcard/android/layout_tests/fast/parser/residual-style-close-across-n-blocks.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-script-tricky.html
/sdcard/android/layout_tests/fast/parser/tag-with-exclamation-point.html
/sdcard/android/layout_tests/fast/parser/p-in-scope-strict.html
-/sdcard/android/layout_tests/fast/parser/hex-entities-length.html
/sdcard/android/layout_tests/fast/parser/entity-end-style-tag.html
/sdcard/android/layout_tests/fast/parser/entity-end-xmp-tag.html
-/sdcard/android/layout_tests/fast/parser/html-whitespace.html
+/sdcard/android/layout_tests/fast/parser/external-entities.xml
/sdcard/android/layout_tests/fast/parser/head-comment.html
/sdcard/android/layout_tests/fast/parser/test-unicode-characters-in-attribute-name.html
/sdcard/android/layout_tests/fast/parser/entity-end-textarea-tag.html
-/sdcard/android/layout_tests/fast/parser/script-after-frameset-assert.html
-/sdcard/android/layout_tests/fast/parser/duplicate-html-body-element-IDs.html
+/sdcard/android/layout_tests/fast/parser/script-tag-with-trailing-slash.html
+/sdcard/android/layout_tests/fast/parser/empty-text-resource.html
/sdcard/android/layout_tests/fast/parser/comment-in-title.html
/sdcard/android/layout_tests/fast/parser/residual-style-close-across-removed-block.html
/sdcard/android/layout_tests/fast/parser/entity-comment-in-title.html
-/sdcard/android/layout_tests/fast/parser/assertion-empty-attribute.html
/sdcard/android/layout_tests/fast/parser/entity-end-title-tag.html
-/sdcard/android/layout_tests/fast/parser/comment-in-script-tricky.html
+/sdcard/android/layout_tests/fast/parser/head-content-after-head-removal.html
/sdcard/android/layout_tests/fast/parser/pre-first-line-break.html
-/sdcard/android/layout_tests/fast/parser/rewrite-form.html
/sdcard/android/layout_tests/fast/parser/number-sign-in-map-name.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-script-tricky.html
/sdcard/android/layout_tests/fast/parser/input-textarea-inside-select-element.html
+/sdcard/android/layout_tests/fast/parser/entity-end-script-tag.html
+/sdcard/android/layout_tests/fast/parser/area-in-div.html
+/sdcard/android/layout_tests/fast/parser/entity-surrogate-pairs.html
+/sdcard/android/layout_tests/fast/parser/eightdigithexentity.html
+/sdcard/android/layout_tests/fast/parser/parse-wbr.html
+/sdcard/android/layout_tests/fast/parser/open-comment-in-script-tricky.html
+/sdcard/android/layout_tests/fast/parser/head-element-for-yahoo-player.html
+/sdcard/android/layout_tests/fast/parser/hex-entities-length.html
+/sdcard/android/layout_tests/fast/parser/html-whitespace.html
+/sdcard/android/layout_tests/fast/parser/script-after-frameset-assert.html
+/sdcard/android/layout_tests/fast/parser/comment-in-iframe.html
+/sdcard/android/layout_tests/fast/parser/duplicate-html-body-element-IDs.html
+/sdcard/android/layout_tests/fast/parser/assertion-empty-attribute.html
+/sdcard/android/layout_tests/fast/parser/comment-in-script-tricky.html
+/sdcard/android/layout_tests/fast/parser/rewrite-form.html
+/sdcard/android/layout_tests/fast/parser/entity-comment-in-script-tricky.html
+/sdcard/android/layout_tests/fast/parser/head-parsing-19517.html
/sdcard/android/layout_tests/fast/parser/entities-in-html.html
/sdcard/android/layout_tests/fast/parser/remove-parser-current-node.html
-/sdcard/android/layout_tests/fast/parser/area-in-div.html
/sdcard/android/layout_tests/fast/parser/rewrite-map.html
-/sdcard/android/layout_tests/fast/parser/entity-surrogate-pairs.html
/sdcard/android/layout_tests/fast/parser/strict-img-in-map.html
/sdcard/android/layout_tests/fast/parser/p-in-scope.html
/sdcard/android/layout_tests/fast/layers/removed-by-scroll-handler.html
/sdcard/android/layout_tests/fast/layers/generated-layer-scrollbar-crash.html
+/sdcard/android/layout_tests/fast/layers/zindex-hit-test.html
/sdcard/android/layout_tests/fast/layers/resize-layer-deletion-crash.html
+/sdcard/android/layout_tests/fast/history/subframe-is-visited.html
/sdcard/android/layout_tests/fast/loader/early-load-cancel.html
/sdcard/android/layout_tests/fast/loader/iframe-recursive-synchronous-load.html
-/sdcard/android/layout_tests/fast/loader/xmlhttprequest-bad-mimetype.html
+/sdcard/android/layout_tests/fast/loader/location-port.html
/sdcard/android/layout_tests/fast/loader/local-css-allowed-in-strict-mode.html
-/sdcard/android/layout_tests/fast/loader/user-style-sheet-resource-load-callbacks.html
/sdcard/android/layout_tests/fast/loader/url-strip-cr-lf-tab.html
+/sdcard/android/layout_tests/fast/loader/hashchange-event.html
/sdcard/android/layout_tests/fast/loader/unloadable-script.html
/sdcard/android/layout_tests/fast/loader/url-parse-1.html
/sdcard/android/layout_tests/fast/loader/redirect-with-open-subframe-2.html
/sdcard/android/layout_tests/fast/loader/simultaneous-reloads-assert.html
/sdcard/android/layout_tests/fast/loader/invalid-charset-on-script-crashes-loader.html
/sdcard/android/layout_tests/fast/loader/javascript-url-encoding.html
+/sdcard/android/layout_tests/fast/loader/empty-embed-src-attribute.html
/sdcard/android/layout_tests/fast/loader/charset-parse.html
/sdcard/android/layout_tests/fast/loader/meta-refresh-vs-open.html
+/sdcard/android/layout_tests/fast/loader/submit-form-while-parsing-2.html
/sdcard/android/layout_tests/fast/loader/url-data-replace-backslash.html
/sdcard/android/layout_tests/fast/loader/redirect-with-open-subframe.html
/sdcard/android/layout_tests/fast/loader/empty-ref-versus-no-ref.html
-/sdcard/android/layout_tests/fast/loader/window-clearing.html
/sdcard/android/layout_tests/fast/loader/javascript-url-encoding-2.html
+/sdcard/android/layout_tests/fast/loader/window-clearing.html
+/sdcard/android/layout_tests/fast/loader/frame-creation-removal.html
/sdcard/android/layout_tests/fast/loader/external-script-URL-location.html
+/sdcard/android/layout_tests/fast/loader/link-no-URL.html
/sdcard/android/layout_tests/fast/loader/loadInProgress.html
/sdcard/android/layout_tests/fast/loader/inherit-charset-to-empty-frame.html
/sdcard/android/layout_tests/fast/loader/font-face-empty.html
-/sdcard/android/layout_tests/fast/loader/data-url-encoding-html.html
+/sdcard/android/layout_tests/fast/loader/goto-anchor-infinite-layout.html
/sdcard/android/layout_tests/fast/loader/file-URL-with-port-number.html
-/sdcard/android/layout_tests/fast/loader/link-no-URL.html
-/sdcard/android/layout_tests/fast/xsl/xslt-fragment-in-empty-doc.html
+/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-default-attributes.html
+/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-missing-file-exception.html
+/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-invalid-values.html
+/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-html-response-encoding.html
+/sdcard/android/layout_tests/fast/xmlhttprequest/null-document-xmlhttprequest-open.html
+/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html
+/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html
/sdcard/android/layout_tests/fast/canvas/pattern-with-transform.html
/sdcard/android/layout_tests/fast/canvas/gradient-addColorStop-with-invalid-color.html
/sdcard/android/layout_tests/fast/canvas/canvas-gradient-without-path.html
-/sdcard/android/layout_tests/fast/canvas/canvas-pattern-behaviour.html
/sdcard/android/layout_tests/fast/canvas/radialGradient-infinite-values.html
/sdcard/android/layout_tests/fast/canvas/drawImage-with-negative-source-destination.html
/sdcard/android/layout_tests/fast/canvas/drawImage-with-invalid-args.html
/sdcard/android/layout_tests/fast/canvas/canvas-stroke-empty-fill.html
+/sdcard/android/layout_tests/fast/canvas/canvas-lineWidth.html
/sdcard/android/layout_tests/fast/canvas/access-zero-sized-canvas.html
/sdcard/android/layout_tests/fast/canvas/script-inside-canvas-fallback.html
/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-2.html
@@ -2099,8 +2466,7 @@
/sdcard/android/layout_tests/fast/canvas/gradient-with-clip.html
/sdcard/android/layout_tests/fast/canvas/canvas-hides-fallback.html
/sdcard/android/layout_tests/fast/canvas/arc-crash.html
-/sdcard/android/layout_tests/fast/canvas/canvas-ImageData-behaviour.html
-/sdcard/android/layout_tests/fast/canvas/canvas-putImageData.html
+/sdcard/android/layout_tests/fast/canvas/canvas-modify-emptyPath.html
/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-4.html
/sdcard/android/layout_tests/fast/canvas/canvas-invalid-fillstyle.html
/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-1.html
@@ -2111,12 +2477,13 @@
/sdcard/android/layout_tests/fast/canvas/canvas-set-properties-with-non-invertible-ctm.html
/sdcard/android/layout_tests/fast/canvas/canvas-invalid-strokestyle.html
/sdcard/android/layout_tests/fast/canvas/canvas-strokeRect.html
-/sdcard/android/layout_tests/fast/canvas/canvas-pattern-transform.html
+/sdcard/android/layout_tests/fast/canvas/canvas-composite-alpha.html
/sdcard/android/layout_tests/fast/canvas/canvas-transparency-and-composite.html
/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-3.html
/sdcard/android/layout_tests/fast/canvas/linearGradient-infinite-values.html
/sdcard/android/layout_tests/fast/canvas/canvas-setTransform.html
/sdcard/android/layout_tests/fast/frames/frame-set-same-location.html
+/sdcard/android/layout_tests/fast/frames/viewsource-unfinished-tags.html
/sdcard/android/layout_tests/fast/frames/set-unloaded-frame-location.html
/sdcard/android/layout_tests/fast/frames/negative-remaining-length-crash.html
/sdcard/android/layout_tests/fast/frames/frame-name-reset.html
@@ -2124,7 +2491,6 @@
/sdcard/android/layout_tests/fast/frames/crash-removed-iframe.html
/sdcard/android/layout_tests/fast/frames/empty-frame-document.html
/sdcard/android/layout_tests/fast/frames/viewsource-plain-text-tags.html
-/sdcard/android/layout_tests/fast/frames/location-put-after-removal.html
/sdcard/android/layout_tests/fast/frames/repaint-display-none-crash.html
/sdcard/android/layout_tests/fast/frames/remove-frame-with-scrollbars-crash.html
/sdcard/android/layout_tests/fast/frames/cross-site-this.html
@@ -2132,20 +2498,148 @@
/sdcard/android/layout_tests/fast/frames/iframe-set-inner-html.html
/sdcard/android/layout_tests/fast/frames/iframe-remove-after-id-change.html
/sdcard/android/layout_tests/fast/frames/iframe-target.html
+/sdcard/android/layout_tests/fast/frames/viewsource-link-on-href-value.html
/sdcard/android/layout_tests/fast/frames/hover-timer-crash.html
+/sdcard/android/layout_tests/fast/frames/iframe-no-src-set-location.html
/sdcard/android/layout_tests/fast/frames/iframe-set-same-src.html
/sdcard/android/layout_tests/fast/frames/iframe-double-attach.html
/sdcard/android/layout_tests/fast/frames/iframe-set-same-location.html
-/sdcard/android/layout_tests/fast/frames/iframe-js-url-clientWidth.html
/sdcard/android/layout_tests/fast/frames/location-change.html
/sdcard/android/layout_tests/fast/frames/frame-base-url.html
/sdcard/android/layout_tests/fast/frames/iframe-display-none.html
-/sdcard/android/layout_tests/animations/transition-and-animation-2.html
-/sdcard/android/layout_tests/animations/import-crash.html
-/sdcard/android/layout_tests/animations/empty-keyframes.html
-/sdcard/android/layout_tests/animations/width-using-ems.html
-/sdcard/android/layout_tests/animations/keyframes-out-of-order.html
-/sdcard/android/layout_tests/geolocation/geolocation-not-implemented.html
+/sdcard/android/layout_tests/fast/frames/javascript-url-as-framesrc-crash.html
+/sdcard/android/layout_tests/fast/frames/frame-limit.html
+/sdcard/android/layout_tests/fast/frames/frame-display-none-focus.html
+/sdcard/android/layout_tests/fast/reflections/teardown-crash.html
+/sdcard/android/layout_tests/fast/reflections/reflection-computed-style.html
+/sdcard/android/layout_tests/fast/reflections/reflection-overflow-scroll.html
+/sdcard/android/layout_tests/media/video-play-empty-events.html
+/sdcard/android/layout_tests/media/constructors.html
+/sdcard/android/layout_tests/media/video-dom-autoplay.html
+/sdcard/android/layout_tests/media/video-poster.html
+/sdcard/android/layout_tests/media/video-source-media.html
+/sdcard/android/layout_tests/media/video-controls-with-mutation-event-handler.html
+/sdcard/android/layout_tests/media/video-src-set.html
+/sdcard/android/layout_tests/media/video-display-none-crash.html
+/sdcard/android/layout_tests/media/video-size.html
+/sdcard/android/layout_tests/media/video-width-height.html
+/sdcard/android/layout_tests/media/video-source.html
+/sdcard/android/layout_tests/media/video-load-readyState.html
+/sdcard/android/layout_tests/media/fallback.html
+/sdcard/android/layout_tests/media/remove-from-document-no-load.html
+/sdcard/android/layout_tests/media/before-load-member-access.html
+/sdcard/android/layout_tests/media/video-play-pause-events.html
+/sdcard/android/layout_tests/media/media-startTime.html
+/sdcard/android/layout_tests/media/video-autoplay.html
+/sdcard/android/layout_tests/media/video-timeupdate-during-playback.html
+/sdcard/android/layout_tests/media/media-constants.html
+/sdcard/android/layout_tests/media/video-src-source.html
+/sdcard/android/layout_tests/media/controls-css-overload.html
+/sdcard/android/layout_tests/media/video-pause-empty-events.html
+/sdcard/android/layout_tests/media/video-play-pause-exception.html
+/sdcard/android/layout_tests/media/video-dom-autobuffer.html
+/sdcard/android/layout_tests/media/video-seek-no-src-exception.html
+/sdcard/android/layout_tests/media/video-src-remove.html
+/sdcard/android/layout_tests/media/video-src.html
+/sdcard/android/layout_tests/plugins/createScriptableObject-before-start.html
+/sdcard/android/layout_tests/plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html
+/sdcard/android/layout_tests/scrollbars/scrollbar-crash-on-refresh.html
+/sdcard/android/layout_tests/scrollbars/scrollbar-miss-mousemove.html
+/sdcard/android/layout_tests/security/autocomplete-cleared-on-back.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/complex-keys.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/clear.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/enumerate-storage.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/remove-item.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/string-conversion.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/simple-events.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/delete-removal.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/window-open.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/index-get-and-set.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/onstorage-attribute-setattribute.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/onstorage-attribute-setwindow.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/simple-usage.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/onstorage-attribute-markup.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/enumerate-with-length-and-key.html
+/sdcard/android/layout_tests/storage/domstorage/localstorage/complex-values.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/index-get-and-set.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/onstorage-attribute-setwindow.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/clear.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/enumerate-storage.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/string-conversion.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/simple-usage.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/simple-events.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/onstorage-attribute-markup.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/enumerate-with-length-and-key.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/delete-removal.html
+/sdcard/android/layout_tests/storage/domstorage/sessionstorage/window-open.html
+/sdcard/android/layout_tests/storage/domstorage/window-attributes-exist.html
+/sdcard/android/layout_tests/storage/hash-change-with-xhr.html
+/sdcard/android/layout_tests/storage/open-database-empty-version.html
+/sdcard/android/layout_tests/storage/quota-tracking.html
+/sdcard/android/layout_tests/storage/close-during-stress-test.html
+/sdcard/android/layout_tests/storage/database-lock-after-reload.html
+/sdcard/android/layout_tests/storage/multiple-databases-garbage-collection.html
+/sdcard/android/layout_tests/storage/empty-statement.html
+/sdcard/android/layout_tests/storage/multiple-transactions.html
+/sdcard/android/layout_tests/storage/success-callback.html
+/sdcard/android/layout_tests/storage/transaction-error-callback.html
+/sdcard/android/layout_tests/storage/sql-data-types.html
+/sdcard/android/layout_tests/storage/transaction-callback-exception-crash.html
+/sdcard/android/layout_tests/transforms/2d/transform-2d.html
+/sdcard/android/layout_tests/transforms/2d/compound-2d-transforms.html
+/sdcard/android/layout_tests/transforms/2d/computed-style-origin.html
+/sdcard/android/layout_tests/transforms/2d/transform-accuracy.html
+/sdcard/android/layout_tests/transforms/2d/transform-value-types.html
+/sdcard/android/layout_tests/transforms/3d/hit-testing/hit-preserves-3d.html
+/sdcard/android/layout_tests/transitions/cancel-transition.html
+/sdcard/android/layout_tests/transitions/transition-end-event-all-properties.html
+/sdcard/android/layout_tests/transitions/transition-end-event-window.html
+/sdcard/android/layout_tests/transitions/transition-end-event-multiple-03.html
+/sdcard/android/layout_tests/transitions/text-indent-transition.html
+/sdcard/android/layout_tests/transitions/transition-end-event-set-none.html
+/sdcard/android/layout_tests/transitions/zero-duration-without-units.html
+/sdcard/android/layout_tests/transitions/min-max-width-height-transitions.html
+/sdcard/android/layout_tests/transitions/shorthand-transitions.html
+/sdcard/android/layout_tests/transitions/zero-duration-in-list.html
+/sdcard/android/layout_tests/transitions/shorthand-border-transitions.html
+/sdcard/android/layout_tests/transitions/inherit-other-props.html
+/sdcard/android/layout_tests/transitions/transition-end-event-multiple-04.html
+/sdcard/android/layout_tests/transitions/background-transitions.html
+/sdcard/android/layout_tests/transitions/transition-duration-cleared-in-transitionend-crash.html
+/sdcard/android/layout_tests/transitions/interrupt-zero-duration.html
+/sdcard/android/layout_tests/transitions/retargetted-transition.html
+/sdcard/android/layout_tests/transitions/transition-end-event-left.html
+/sdcard/android/layout_tests/transitions/override-transition-crash.html
+/sdcard/android/layout_tests/transitions/transition-end-event-multiple-01.html
+/sdcard/android/layout_tests/transitions/matched-transform-functions.html
+/sdcard/android/layout_tests/transitions/transform-op-list-match.html
+/sdcard/android/layout_tests/transitions/transition-end-event-container.html
+/sdcard/android/layout_tests/transitions/interrupt-transform-transition.html
+/sdcard/android/layout_tests/transitions/transition-end-event-nested.html
+/sdcard/android/layout_tests/transitions/change-values-during-transition.html
+/sdcard/android/layout_tests/transitions/transition-end-event-attributes.html
+/sdcard/android/layout_tests/transitions/inherit.html
+/sdcard/android/layout_tests/transitions/transition-end-event-create.html
+/sdcard/android/layout_tests/transitions/shadow.html
+/sdcard/android/layout_tests/transitions/transition-end-event-multiple-02.html
+/sdcard/android/layout_tests/transitions/transition-end-event-transform.html
+/sdcard/android/layout_tests/transitions/start-transform-transition.html
+/sdcard/android/layout_tests/transitions/transition-timing-function.html
+/sdcard/android/layout_tests/transitions/transform-op-list-no-match.html
+/sdcard/android/layout_tests/transitions/bad-transition-shorthand-crash.html
+/sdcard/android/layout_tests/transitions/transition-end-event-destroy-renderer.html
+/sdcard/android/layout_tests/transitions/extra-transition.html
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/010.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/001.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/002.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/003.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/004.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/005.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/006.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/007.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/008.xml
+/sdcard/android/layout_tests/traversal/hixie-node-iterator/009.xml
/sdcard/android/layout_tests/traversal/node-iterator-003.html
/sdcard/android/layout_tests/traversal/node-iterator-005.html
/sdcard/android/layout_tests/traversal/node-iterator-007.html
@@ -2167,36 +2661,3 @@
/sdcard/android/layout_tests/traversal/acid3-test-2.html
/sdcard/android/layout_tests/traversal/tree-walker-filter-1.html
/sdcard/android/layout_tests/traversal/node-iterator-001.html
-/sdcard/android/layout_tests/css2.1/atrule_longest_match.html
-/sdcard/android/layout_tests/css1/units/zero-duration-without-units.html
-/sdcard/android/layout_tests/css3/khtml-background-size-0x0-bmp.html
-/sdcard/android/layout_tests/transitions/transition-end-event-all-properties.html
-/sdcard/android/layout_tests/transitions/transition-end-event-window.html
-/sdcard/android/layout_tests/transitions/transition-end-event-multiple-03.html
-/sdcard/android/layout_tests/transitions/interrupted-all-transition.html
-/sdcard/android/layout_tests/transitions/transition-end-event-set-none.html
-/sdcard/android/layout_tests/transitions/zero-duration-without-units.html
-/sdcard/android/layout_tests/transitions/zero-duration-with-non-zero-delay-start.html
-/sdcard/android/layout_tests/transitions/inherit-other-props.html
-/sdcard/android/layout_tests/transitions/transition-end-event-multiple-04.html
-/sdcard/android/layout_tests/transitions/transition-duration-cleared-in-transitionend-crash.html
-/sdcard/android/layout_tests/transitions/interrupt-zero-duration.html
-/sdcard/android/layout_tests/transitions/retargetted-transition.html
-/sdcard/android/layout_tests/transitions/override-transition-crash.html
-/sdcard/android/layout_tests/transitions/transition-end-event-left.html
-/sdcard/android/layout_tests/transitions/matched-transform-functions.html
-/sdcard/android/layout_tests/transitions/transition-end-event-multiple-01.html
-/sdcard/android/layout_tests/transitions/transform-op-list-match.html
-/sdcard/android/layout_tests/transitions/interrupt-transform-transition.html
-/sdcard/android/layout_tests/transitions/transition-end-event-container.html
-/sdcard/android/layout_tests/transitions/transition-end-event-nested.html
-/sdcard/android/layout_tests/transitions/change-values-during-transition.html
-/sdcard/android/layout_tests/transitions/transition-end-event-attributes.html
-/sdcard/android/layout_tests/transitions/inherit.html
-/sdcard/android/layout_tests/transitions/transition-end-event-create.html
-/sdcard/android/layout_tests/transitions/transition-end-event-multiple-02.html
-/sdcard/android/layout_tests/transitions/shadow.html
-/sdcard/android/layout_tests/transitions/transition-end-event-transform.html
-/sdcard/android/layout_tests/transitions/transition-timing-function.html
-/sdcard/android/layout_tests/transitions/transform-op-list-no-match.html
-/sdcard/android/layout_tests/transitions/transition-end-event-destroy-renderer.html
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java
index 39b8774..c084f8c 100644
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java
+++ b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java
@@ -63,9 +63,15 @@
public void handleMessage(Message msg) {
if (msg.what == MSG_TIMEOUT) {
mTimedOut = true;
- if(mCallback != null)
+ if (mCallback != null)
mCallback.timedOut(mWebView.getUrl());
- requestWebKitData();
+ if (!mRequestedWebKitData) {
+ requestWebKitData();
+ } else {
+ // if timed out and webkit data has been dumped before
+ // finish directly
+ finished();
+ }
return;
} else if (msg.what == MSG_WEBKIT_DATA) {
TestShellActivity.this.dump(mTimedOut, (String)msg.obj);
@@ -83,6 +89,7 @@
throw new AssertionError("Requested webkit data twice: " + mWebView.getUrl());
mRequestedWebKitData = true;
+ Log.v(LOGTAG, "message sent to WebView to dump text.");
switch (mDumpDataType) {
case DUMP_AS_TEXT:
mWebView.documentAsText(callback);
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java
index daba8cfd..957f737 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java
@@ -673,7 +673,8 @@
// looks like we were unable to resolve the drawable
mContext.getLogger().warning(String.format(
- "Unable to resolve drawable \"%1$s\" in attribute \"%2$s\"", value, mNames[index]));
+ "Unable to resolve drawable \"%1$s\" in attribute \"%2$s\"", stringValue,
+ mNames[index]));
return null;
}
diff --git a/vpn/java/android/net/vpn/VpnType.java b/vpn/java/android/net/vpn/VpnType.java
index c7df943..356f8b1 100644
--- a/vpn/java/android/net/vpn/VpnType.java
+++ b/vpn/java/android/net/vpn/VpnType.java
@@ -16,26 +16,28 @@
package android.net.vpn;
+import com.android.internal.R;
+
/**
* Enumeration of all supported VPN types.
* {@hide}
*/
public enum VpnType {
- PPTP("PPTP", "", PptpProfile.class),
- L2TP("L2TP", "", L2tpProfile.class),
- L2TP_IPSEC_PSK("L2TP/IPSec PSK", "Pre-shared key based L2TP/IPSec VPN",
+ PPTP("PPTP", R.string.pptp_vpn_description, PptpProfile.class),
+ L2TP("L2TP", R.string.l2tp_vpn_description, L2tpProfile.class),
+ L2TP_IPSEC_PSK("L2TP/IPSec PSK", R.string.l2tp_ipsec_psk_vpn_description,
L2tpIpsecPskProfile.class),
- L2TP_IPSEC("L2TP/IPSec CRT", "Certificate based L2TP/IPSec VPN",
+ L2TP_IPSEC("L2TP/IPSec CRT", R.string.l2tp_ipsec_crt_vpn_description,
L2tpIpsecProfile.class);
private String mDisplayName;
- private String mDescription;
+ private int mDescriptionId;
private Class<? extends VpnProfile> mClass;
- VpnType(String displayName, String description,
+ VpnType(String displayName, int descriptionId,
Class<? extends VpnProfile> klass) {
mDisplayName = displayName;
- mDescription = description;
+ mDescriptionId = descriptionId;
mClass = klass;
}
@@ -43,8 +45,8 @@
return mDisplayName;
}
- public String getDescription() {
- return mDescription;
+ public int getDescriptionId() {
+ return mDescriptionId;
}
public Class<? extends VpnProfile> getProfileClass() {