diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index dd0fb31..93edc61 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -47,6 +47,8 @@
     <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
     <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
     <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
+    <uses-permission android:name="com.android.browser.permission.READ_HOMEPAGE" />
+    <uses-permission android:name="com.android.browser.permission.WRITE_HOMEPAGE" />
 
     <application   android:name="Browser"
                    android:label="@string/application_name"
@@ -66,6 +68,9 @@
                   android:writePermission="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS">
             <path-permission android:path="/bookmarks/search_suggest_query"
                     android:readPermission="android.permission.GLOBAL_SEARCH" />
+            <path-permission android:path="/homepage"
+                    android:readPermission="com.android.browser.permission.READ_HOMEPAGE"
+                    android:writePermission="com.android.browser.permission.WRITE_HOMEPAGE" />
         </provider>
         <activity android:name="BrowserActivity"
                   android:label="@string/application_name"
diff --git a/src/com/android/browser/provider/BrowserProvider2.java b/src/com/android/browser/provider/BrowserProvider2.java
index 36ad0ce..95b34e7 100644
--- a/src/com/android/browser/provider/BrowserProvider2.java
+++ b/src/com/android/browser/provider/BrowserProvider2.java
@@ -55,6 +55,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.browser.BrowserSettings;
 import com.android.browser.R;
 import com.android.browser.UrlUtils;
 import com.android.browser.widget.BookmarkThumbnailWidgetProvider;
@@ -150,6 +151,7 @@
     static final int THUMBNAILS = 10;
     static final int THUMBNAILS_ID = 11;
     static final int OMNIBOX_SUGGESTIONS = 20;
+    static final int HOMEPAGE = 60;
 
     static final int BOOKMARKS = 1000;
     static final int BOOKMARKS_ID = 1001;
@@ -230,6 +232,7 @@
         matcher.addURI(authority, "thumbnails", THUMBNAILS);
         matcher.addURI(authority, "thumbnails/#", THUMBNAILS_ID);
         matcher.addURI(authority, "omnibox_suggestions", OMNIBOX_SUGGESTIONS);
+        matcher.addURI(authority, "homepage", HOMEPAGE);
 
         // Legacy
         matcher.addURI(LEGACY_AUTHORITY, "searches", SEARCHES);
@@ -1216,6 +1219,19 @@
                 break;
             }
 
+            case HOMEPAGE: {
+                String homepage = BrowserSettings.getInstance().getHomePage();
+                Log.d(TAG,"get home page for DM");
+                if (null == homepage) {
+                    return null;
+                }
+                String arrColumns[] = {"homepage"};
+                String arrHomepage[] = {homepage};
+                MatrixCursor matrixCursor = new MatrixCursor(arrColumns, 1);
+                matrixCursor.addRow(arrHomepage);
+                return matrixCursor;
+            }
+
             default: {
                 throw new UnsupportedOperationException("Unknown URL " + uri.toString());
             }
@@ -1838,6 +1854,21 @@
                 break;
             }
 
+            case HOMEPAGE: {
+                if (null != values) {
+                    String homepage = values.getAsString("homepage");
+                    if (null != homepage) {
+                        if (BrowserSettings.getInstance() == null) {
+                            BrowserSettings.initialize(getContext());
+                        }
+                        BrowserSettings.getInstance().setHomePage(homepage);
+                        Log.d(TAG,"set home page for DM");
+                        return 1;
+                    }
+                }
+                return 0;
+            }
+
             default: {
                 throw new UnsupportedOperationException("Unknown update URI " + uri);
             }
