diff --git a/src/com/android/swe/browser/AccountsChangedReceiver.java b/src/com/android/browser/AccountsChangedReceiver.java
similarity index 92%
rename from src/com/android/swe/browser/AccountsChangedReceiver.java
rename to src/com/android/browser/AccountsChangedReceiver.java
index ecbe944..a4d10d7 100644
--- a/src/com/android/swe/browser/AccountsChangedReceiver.java
+++ b/src/com/android/browser/AccountsChangedReceiver.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
@@ -24,9 +24,9 @@
 import android.database.Cursor;
 import android.net.Uri;
 
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Accounts;
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Accounts;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
 
 import android.text.TextUtils;
 
diff --git a/src/com/android/swe/browser/ActivityController.java b/src/com/android/browser/ActivityController.java
similarity index 97%
rename from src/com/android/swe/browser/ActivityController.java
rename to src/com/android/browser/ActivityController.java
index f3d2ce7..ac248b8 100644
--- a/src/com/android/swe/browser/ActivityController.java
+++ b/src/com/android/browser/ActivityController.java
@@ -1,4 +1,4 @@
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Intent;
 import android.content.res.Configuration;
diff --git a/src/com/android/swe/browser/AddBookmarkFolder.java b/src/com/android/browser/AddBookmarkFolder.java
similarity index 98%
rename from src/com/android/swe/browser/AddBookmarkFolder.java
rename to src/com/android/browser/AddBookmarkFolder.java
index b076711..4a9c13c 100644
--- a/src/com/android/swe/browser/AddBookmarkFolder.java
+++ b/src/com/android/browser/AddBookmarkFolder.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.app.LoaderManager;
@@ -49,13 +49,13 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
-import com.android.swe.browser.addbookmark.FolderSpinner;
-import com.android.swe.browser.addbookmark.FolderSpinnerAdapter;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Accounts;
-import com.android.swe.browser.provider.BrowserProvider2;
-import com.android.swe.browser.reflect.ReflectHelper;
-import com.android.swe.browser.R;
+import com.android.browser.R;
+import com.android.browser.addbookmark.FolderSpinner;
+import com.android.browser.addbookmark.FolderSpinnerAdapter;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Accounts;
+import com.android.browser.provider.BrowserProvider2;
+import com.android.browser.reflect.ReflectHelper;
 
 public class AddBookmarkFolder extends Activity implements View.OnClickListener,
         TextView.OnEditorActionListener, AdapterView.OnItemClickListener,
diff --git a/src/com/android/swe/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
similarity index 98%
rename from src/com/android/swe/browser/AddBookmarkPage.java
rename to src/com/android/browser/AddBookmarkPage.java
index ae8507c..73a1ebf 100644
--- a/src/com/android/swe/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.app.AlertDialog;
@@ -59,14 +59,14 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserUtils;
-import com.android.swe.browser.addbookmark.FolderSpinner;
-import com.android.swe.browser.addbookmark.FolderSpinnerAdapter;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.WebAddress;
-import com.android.swe.browser.platformsupport.BrowserContract.Accounts;
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.BrowserUtils;
+import com.android.browser.R;
+import com.android.browser.addbookmark.FolderSpinner;
+import com.android.browser.addbookmark.FolderSpinnerAdapter;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.WebAddress;
+import com.android.browser.platformsupport.BrowserContract.Accounts;
+import com.android.browser.reflect.ReflectHelper;
 
 import java.net.URI;
 import java.net.URISyntaxException;
diff --git a/src/com/android/swe/browser/AddNewBookmark.java b/src/com/android/browser/AddNewBookmark.java
similarity index 95%
rename from src/com/android/swe/browser/AddNewBookmark.java
rename to src/com/android/browser/AddNewBookmark.java
index ecc1c8c..5decb65 100644
--- a/src/com/android/swe/browser/AddNewBookmark.java
+++ b/src/com/android/browser/AddNewBookmark.java
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.view.LayoutInflater;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 /**
  *  Custom layout for an item representing a bookmark in the browser.
diff --git a/src/com/android/swe/browser/AutoFillSettingsFragment.java b/src/com/android/browser/AutoFillSettingsFragment.java
similarity index 99%
rename from src/com/android/swe/browser/AutoFillSettingsFragment.java
rename to src/com/android/browser/AutoFillSettingsFragment.java
index fca54f9..e87cb89 100644
--- a/src/com/android/swe/browser/AutoFillSettingsFragment.java
+++ b/src/com/android/browser/AutoFillSettingsFragment.java
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import org.codeaurora.swe.AutoFillProfile;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.app.Fragment;
 import android.content.Context;
diff --git a/src/com/android/swe/browser/AutofillHandler.java b/src/com/android/browser/AutofillHandler.java
similarity index 98%
rename from src/com/android/swe/browser/AutofillHandler.java
rename to src/com/android/browser/AutofillHandler.java
index 15e8a32..bb392e8 100644
--- a/src/com/android/swe/browser/AutofillHandler.java
+++ b/src/com/android/browser/AutofillHandler.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.content.SharedPreferences;
diff --git a/src/com/android/swe/browser/AutologinBar.java b/src/com/android/browser/AutologinBar.java
similarity index 97%
rename from src/com/android/swe/browser/AutologinBar.java
rename to src/com/android/browser/AutologinBar.java
index 41effff..3bbfcd9 100644
--- a/src/com/android/swe/browser/AutologinBar.java
+++ b/src/com/android/browser/AutologinBar.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.util.AttributeSet;
@@ -27,8 +27,8 @@
 import android.widget.Spinner;
 import android.widget.TextView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.DeviceAccountLogin.AutoLoginCallback;
+import com.android.browser.R;
+import com.android.browser.DeviceAccountLogin.AutoLoginCallback;
 
 public class AutologinBar extends LinearLayout implements OnClickListener,
         AutoLoginCallback {
diff --git a/src/com/android/swe/browser/BackgroundHandler.java b/src/com/android/browser/BackgroundHandler.java
similarity index 97%
rename from src/com/android/swe/browser/BackgroundHandler.java
rename to src/com/android/browser/BackgroundHandler.java
index 640596c..a0d9243 100644
--- a/src/com/android/swe/browser/BackgroundHandler.java
+++ b/src/com/android/browser/BackgroundHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.os.HandlerThread;
 import android.os.Looper;
diff --git a/src/com/android/swe/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
similarity index 99%
rename from src/com/android/swe/browser/BaseUi.java
rename to src/com/android/browser/BaseUi.java
index d1689f3..f7bd2fb 100644
--- a/src/com/android/swe/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Context;
@@ -50,8 +50,8 @@
 import android.widget.LinearLayout;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.Tab.SecurityState;
+import com.android.browser.R;
+import com.android.browser.Tab.SecurityState;
 
 import org.codeaurora.swe.WebView;
 
diff --git a/src/com/android/swe/browser/BookmarkItem.java b/src/com/android/browser/BookmarkItem.java
similarity index 98%
rename from src/com/android/swe/browser/BookmarkItem.java
rename to src/com/android/browser/BookmarkItem.java
index 2cf16be..b41ee00 100644
--- a/src/com/android/swe/browser/BookmarkItem.java
+++ b/src/com/android/browser/BookmarkItem.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.Context;
 import android.graphics.Bitmap;
diff --git a/src/com/android/swe/browser/BookmarkSearch.java b/src/com/android/browser/BookmarkSearch.java
similarity index 97%
rename from src/com/android/swe/browser/BookmarkSearch.java
rename to src/com/android/browser/BookmarkSearch.java
index 08ebc66..4d3ca0f 100644
--- a/src/com/android/swe/browser/BookmarkSearch.java
+++ b/src/com/android/browser/BookmarkSearch.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Intent;
diff --git a/src/com/android/swe/browser/BookmarkUtils.java b/src/com/android/browser/BookmarkUtils.java
similarity index 98%
rename from src/com/android/swe/browser/BookmarkUtils.java
rename to src/com/android/browser/BookmarkUtils.java
index c8f292a..b754a62 100644
--- a/src/com/android/swe/browser/BookmarkUtils.java
+++ b/src/com/android/browser/BookmarkUtils.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.ActivityManager;
 import android.app.AlertDialog;
@@ -40,9 +40,9 @@
 import android.os.Message;
 import android.provider.Browser;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.R;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
 
 public class BookmarkUtils {
     private final static String LOGTAG = "BookmarkUtils";
diff --git a/src/com/android/swe/browser/Bookmarks.java b/src/com/android/browser/Bookmarks.java
similarity index 96%
rename from src/com/android/swe/browser/Bookmarks.java
rename to src/com/android/browser/Bookmarks.java
index d92532e..4a49520 100644
--- a/src/com/android/swe/browser/Bookmarks.java
+++ b/src/com/android/browser/Bookmarks.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.ContentResolver;
 import android.content.ContentUris;
@@ -27,10 +27,10 @@
 import android.os.AsyncTask;
 import android.preference.PreferenceManager;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Combined;
-import com.android.swe.browser.platformsupport.BrowserContract.Images;
+import com.android.browser.R;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Combined;
+import com.android.browser.platformsupport.BrowserContract.Images;
 
 import android.text.TextUtils;
 import android.util.Log;
diff --git a/src/com/android/swe/browser/BookmarksLoader.java b/src/com/android/browser/BookmarksLoader.java
similarity index 95%
rename from src/com/android/swe/browser/BookmarksLoader.java
rename to src/com/android/browser/BookmarksLoader.java
index 803dc34..9d551e3 100644
--- a/src/com/android/swe/browser/BookmarksLoader.java
+++ b/src/com/android/browser/BookmarksLoader.java
@@ -14,13 +14,13 @@
  * limitations under the License
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.content.CursorLoader;
 import android.net.Uri;
 
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
 
 public class BookmarksLoader extends CursorLoader {
     public static final String ARG_ACCOUNT_TYPE = "acct_type";
diff --git a/src/com/android/swe/browser/BreadCrumbView.java b/src/com/android/browser/BreadCrumbView.java
similarity index 99%
rename from src/com/android/swe/browser/BreadCrumbView.java
rename to src/com/android/browser/BreadCrumbView.java
index cc2fc47..f6bee4a 100644
--- a/src/com/android/swe/browser/BreadCrumbView.java
+++ b/src/com/android/browser/BreadCrumbView.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.content.res.TypedArray;
@@ -34,7 +34,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 /**
  * Simple bread crumb view
diff --git a/src/com/android/swe/browser/Browser.java b/src/com/android/browser/Browser.java
similarity index 90%
rename from src/com/android/swe/browser/Browser.java
rename to src/com/android/browser/Browser.java
index 82d2b57..c9b8e7b 100644
--- a/src/com/android/swe/browser/Browser.java
+++ b/src/com/android/browser/Browser.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Application;
 import android.content.Context;
@@ -43,13 +43,13 @@
 
         // SWE: Avoid initializing databases for sandboxed processes.
         // Must have INITIALIZE_DATABASE permission in AndroidManifest.xml only for browser process
-        final String INITIALIZE_DATABASE="com.android.swe.browser.permission.INITIALIZE_DATABASE";
+        final String INITIALIZE_DATABASE="com.android.browser.permission.INITIALIZE_DATABASE";
         final Context context = getApplicationContext();
         if (context.checkPermission(INITIALIZE_DATABASE,
               Process.myPid(), Process.myUid()) == PackageManager.PERMISSION_GRANTED) {
 
                 // create CookieSyncManager with current Context
-                CookieSyncManager.createInstance(this);
+                CookieSyncManager.createInstance(this);                
                 BrowserSettings.initialize(getApplicationContext());
                 Preloader.initialize(getApplicationContext());
         }
diff --git a/src/com/android/swe/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
similarity index 97%
rename from src/com/android/swe/browser/BrowserActivity.java
rename to src/com/android/browser/BrowserActivity.java
index a21b0e2..1ace9fd 100644
--- a/src/com/android/swe/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.app.AlertDialog;
@@ -40,11 +40,11 @@
 import android.webkit.JavascriptInterface;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.android.swe.browser.R;
-import com.android.swe.browser.UI.ComboViews;
-import com.android.swe.browser.search.DefaultSearchEngine;
-import com.android.swe.browser.search.SearchEngine;
-import com.android.swe.browser.stub.NullController;
+import com.android.browser.R;
+import com.android.browser.UI.ComboViews;
+import com.android.browser.search.DefaultSearchEngine;
+import com.android.browser.search.SearchEngine;
+import com.android.browser.stub.NullController;
 
 import org.chromium.content.browser.TracingIntentHandler;
 import org.codeaurora.swe.WebSettings;
@@ -103,12 +103,14 @@
 
         // If this was a web search request, pass it on to the default web
         // search provider and finish this activity.
+        /*
         SearchEngine searchEngine = BrowserSettings.getInstance().getSearchEngine();
         boolean result = IntentHandler.handleWebSearchIntent(this, null, getIntent());
         if (result && (searchEngine instanceof DefaultSearchEngine)) {
             finish();
             return;
         }
+        */
         mController = createController();
 
         Intent intent = (icicle == null) ? getIntent() : null;
diff --git a/src/com/android/swe/browser/BrowserBackupAgent.java b/src/com/android/browser/BrowserBackupAgent.java
similarity index 97%
rename from src/com/android/swe/browser/BrowserBackupAgent.java
rename to src/com/android/browser/BrowserBackupAgent.java
index 4d39a2b..0f5fcd8 100644
--- a/src/com/android/swe/browser/BrowserBackupAgent.java
+++ b/src/com/android/browser/BrowserBackupAgent.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.backup.BackupAgent;
 import android.app.backup.BackupDataInput;
@@ -23,8 +23,8 @@
 import android.database.Cursor;
 import android.os.ParcelFileDescriptor;
 
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
 
 import android.util.Log;
 
diff --git a/src/com/android/swe/browser/BrowserBookmarksAdapter.java b/src/com/android/browser/BrowserBookmarksAdapter.java
similarity index 94%
rename from src/com/android/swe/browser/BrowserBookmarksAdapter.java
rename to src/com/android/browser/BrowserBookmarksAdapter.java
index 5515518..3b38f1e 100644
--- a/src/com/android/swe/browser/BrowserBookmarksAdapter.java
+++ b/src/com/android/browser/BrowserBookmarksAdapter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.database.Cursor;
@@ -27,10 +27,10 @@
 import android.widget.ImageView.ScaleType;
 import android.widget.TextView;
 
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
-import com.android.swe.browser.R;
-import com.android.swe.browser.util.ThreadedCursorAdapter;
-import com.android.swe.browser.view.BookmarkContainer;
+import com.android.browser.R;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.util.ThreadedCursorAdapter;
+import com.android.browser.view.BookmarkContainer;
 
 public class BrowserBookmarksAdapter extends
         ThreadedCursorAdapter<BrowserBookmarksAdapterItem> {
diff --git a/src/com/android/swe/browser/BrowserBookmarksAdapterItem.java b/src/com/android/browser/BrowserBookmarksAdapterItem.java
similarity index 96%
rename from src/com/android/swe/browser/BrowserBookmarksAdapterItem.java
rename to src/com/android/browser/BrowserBookmarksAdapterItem.java
index 7f37b78..6b99578 100644
--- a/src/com/android/swe/browser/BrowserBookmarksAdapterItem.java
+++ b/src/com/android/browser/BrowserBookmarksAdapterItem.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.graphics.drawable.BitmapDrawable;
 
diff --git a/src/com/android/swe/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
similarity index 98%
rename from src/com/android/swe/browser/BrowserBookmarksPage.java
rename to src/com/android/browser/BrowserBookmarksPage.java
index 2aaff3b..a255d28 100644
--- a/src/com/android/swe/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.app.Fragment;
@@ -48,12 +48,12 @@
 import android.widget.ExpandableListView.OnChildClickListener;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Accounts;
-import com.android.swe.browser.provider.BrowserProvider2;
-import com.android.swe.browser.view.BookmarkExpandableView;
-import com.android.swe.browser.view.BookmarkExpandableView.BookmarkContextMenuInfo;
+import com.android.browser.R;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Accounts;
+import com.android.browser.provider.BrowserProvider2;
+import com.android.browser.view.BookmarkExpandableView;
+import com.android.browser.view.BookmarkExpandableView.BookmarkContextMenuInfo;
 
 import java.util.HashMap;
 
diff --git a/src/com/android/swe/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java
similarity index 98%
rename from src/com/android/swe/browser/BrowserHistoryPage.java
rename to src/com/android/browser/BrowserHistoryPage.java
index f30d121..14b9e40 100644
--- a/src/com/android/swe/browser/BrowserHistoryPage.java
+++ b/src/com/android/browser/BrowserHistoryPage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.app.AlertDialog;
@@ -59,10 +59,10 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Combined;
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.R;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Combined;
+import com.android.browser.reflect.ReflectHelper;
 
 /**
  * Activity for displaying the browser's history, divided into
diff --git a/src/com/android/swe/browser/BrowserPreferencesPage.java b/src/com/android/browser/BrowserPreferencesPage.java
similarity index 93%
rename from src/com/android/swe/browser/BrowserPreferencesPage.java
rename to src/com/android/browser/BrowserPreferencesPage.java
index 893f056..ebc08a4 100644
--- a/src/com/android/swe/browser/BrowserPreferencesPage.java
+++ b/src/com/android/browser/BrowserPreferencesPage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.ActionBar;
 import android.content.Intent;
@@ -22,9 +22,9 @@
 import android.preference.PreferenceActivity;
 import android.view.MenuItem;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.preferences.BandwidthPreferencesFragment;
-import com.android.swe.browser.preferences.DebugPreferencesFragment;
+import com.android.browser.R;
+import com.android.browser.preferences.BandwidthPreferencesFragment;
+import com.android.browser.preferences.DebugPreferencesFragment;
 
 import java.util.List;
 
diff --git a/src/com/android/swe/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
similarity index 98%
rename from src/com/android/swe/browser/BrowserSettings.java
rename to src/com/android/browser/BrowserSettings.java
index d9e2b9c..90dcc4f 100644
--- a/src/com/android/swe/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.ContentResolver;
 import android.content.Context;
@@ -34,12 +34,12 @@
 import android.webkit.WebStorage;
 import android.webkit.WebViewDatabase;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.homepages.HomeProvider;
-import com.android.swe.browser.provider.BrowserProvider;
-import com.android.swe.browser.reflect.ReflectHelper;
-import com.android.swe.browser.search.SearchEngine;
-import com.android.swe.browser.search.SearchEngines;
+import com.android.browser.R;
+import com.android.browser.homepages.HomeProvider;
+import com.android.browser.provider.BrowserProvider;
+import com.android.browser.reflect.ReflectHelper;
+import com.android.browser.search.SearchEngine;
+import com.android.browser.search.SearchEngines;
 
 import java.io.InputStream;
 import java.lang.ref.WeakReference;
@@ -142,11 +142,11 @@
     //Determine if WebView is Initialized or not
     private boolean mWebViewInitialized;
 
-    public static void initialize(final Context context) {
+    public static void initialize(final Context context) {    	
         sInstance = new BrowserSettings(context);
     }
 
-    public static BrowserSettings getInstance() {
+    public static BrowserSettings getInstance() {    	
         return sInstance;
     }
 
@@ -160,7 +160,7 @@
         // add for carrier feature
         try {
             sResPackageCtx = context.createPackageContext(
-                "com.android.swe.browser.res",
+                "com.android.browser.res",
                 Context.CONTEXT_IGNORE_SECURITY);
         } catch (Exception e) {
             Log.e("Res_Update", "Create Res Apk Failed");
@@ -261,15 +261,15 @@
                                 "android.os.SystemProperties","get",type, params);
             if ("cu".equals(browserRes) || "cmcc".equals(browserRes)) {
                 int resID = sResPackageCtx.getResources().getIdentifier(
-                        "homepage_base", "string", "com.android.swe.browser.res");
+                        "homepage_base", "string", "com.android.browser.res");
                 sFactoryResetUrl = sResPackageCtx.getResources().getString(resID);
             } else if ("ct".equals(browserRes)) {
                 int resID = sResPackageCtx.getResources().getIdentifier(
-                        "homepage_base", "string", "com.android.swe.browser.res");
+                        "homepage_base", "string", "com.android.browser.res");
                 sFactoryResetUrl = sResPackageCtx.getResources().getString(resID);
 
                 int pathID = sResPackageCtx.getResources().getIdentifier(
-                        "homepage_path", "string", "com.android.swe.browser.res");
+                        "homepage_path", "string", "com.android.browser.res");
                 String path = sResPackageCtx.getResources().getString(pathID);
                 Locale locale = Locale.getDefault();
                 path = path.replace("%y", locale.getLanguage().toLowerCase());
diff --git a/src/com/android/swe/browser/BrowserSnapshotPage.java b/src/com/android/browser/BrowserSnapshotPage.java
similarity index 98%
rename from src/com/android/swe/browser/BrowserSnapshotPage.java
rename to src/com/android/browser/BrowserSnapshotPage.java
index 9e1d948..5d2453b 100644
--- a/src/com/android/swe/browser/BrowserSnapshotPage.java
+++ b/src/com/android/browser/BrowserSnapshotPage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.animation.Animator;
 import android.animation.Animator.AnimatorListener;
@@ -47,8 +47,8 @@
 import android.widget.ResourceCursorAdapter;
 import android.widget.TextView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.provider.SnapshotProvider.Snapshots;
+import com.android.browser.R;
+import com.android.browser.provider.SnapshotProvider.Snapshots;
 
 import java.text.DateFormat;
 import java.util.Date;
diff --git a/src/com/android/swe/browser/BrowserUtils.java b/src/com/android/browser/BrowserUtils.java
similarity index 98%
rename from src/com/android/swe/browser/BrowserUtils.java
rename to src/com/android/browser/BrowserUtils.java
index 139b9f5..be16ab1 100644
--- a/src/com/android/swe/browser/BrowserUtils.java
+++ b/src/com/android/browser/BrowserUtils.java
@@ -27,9 +27,9 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.app.AlertDialog;
 import android.content.Context;
diff --git a/src/com/android/swe/browser/BrowserWebView.java b/src/com/android/browser/BrowserWebView.java
similarity index 98%
rename from src/com/android/swe/browser/BrowserWebView.java
rename to src/com/android/browser/BrowserWebView.java
index f0d3f8b..5d71ce3 100644
--- a/src/com/android/swe/browser/BrowserWebView.java
+++ b/src/com/android/browser/BrowserWebView.java
@@ -14,7 +14,7 @@
  * the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.graphics.Canvas;
diff --git a/src/com/android/swe/browser/BrowserWebViewFactory.java b/src/com/android/browser/BrowserWebViewFactory.java
similarity index 97%
rename from src/com/android/swe/browser/BrowserWebViewFactory.java
rename to src/com/android/browser/BrowserWebViewFactory.java
index b806164..4364b26 100644
--- a/src/com/android/swe/browser/BrowserWebViewFactory.java
+++ b/src/com/android/browser/BrowserWebViewFactory.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.util.AttributeSet;
 import android.view.View;
 
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.reflect.ReflectHelper;
 
 import org.codeaurora.swe.WebView;
 
diff --git a/src/com/android/swe/browser/BrowserYesNoPreference.java b/src/com/android/browser/BrowserYesNoPreference.java
similarity index 98%
rename from src/com/android/swe/browser/BrowserYesNoPreference.java
rename to src/com/android/browser/BrowserYesNoPreference.java
index af64709..f2344b4 100644
--- a/src/com/android/swe/browser/BrowserYesNoPreference.java
+++ b/src/com/android/browser/BrowserYesNoPreference.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.preference.DialogPreference;
diff --git a/src/com/android/swe/browser/CombinedBookmarksCallbacks.java b/src/com/android/browser/CombinedBookmarksCallbacks.java
similarity index 95%
rename from src/com/android/swe/browser/CombinedBookmarksCallbacks.java
rename to src/com/android/browser/CombinedBookmarksCallbacks.java
index 9aa2d8f..cdffb6b 100644
--- a/src/com/android/swe/browser/CombinedBookmarksCallbacks.java
+++ b/src/com/android/browser/CombinedBookmarksCallbacks.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 public interface CombinedBookmarksCallbacks {
     void openUrl(String url);
diff --git a/src/com/android/swe/browser/ComboViewActivity.java b/src/com/android/browser/ComboViewActivity.java
similarity index 98%
rename from src/com/android/swe/browser/ComboViewActivity.java
rename to src/com/android/browser/ComboViewActivity.java
index 3d4543a..4026bdd 100644
--- a/src/com/android/swe/browser/ComboViewActivity.java
+++ b/src/com/android/browser/ComboViewActivity.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.ActionBar;
 import android.app.Activity;
@@ -28,8 +28,8 @@
 import android.view.Menu;
 import android.view.MenuItem;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.UI.ComboViews;
+import com.android.browser.R;
+import com.android.browser.UI.ComboViews;
 
 import java.util.ArrayList;
 
diff --git a/src/com/android/swe/browser/Controller.java b/src/com/android/browser/Controller.java
similarity index 99%
rename from src/com/android/swe/browser/Controller.java
rename to src/com/android/browser/Controller.java
index 8f3aeb4..27b3620 100644
--- a/src/com/android/swe/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 
@@ -89,17 +89,17 @@
 import org.codeaurora.swe.WebSettings;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.IntentHandler.UrlData;
-import com.android.swe.browser.UI.ComboViews;
-import com.android.swe.browser.mynavigation.AddMyNavigationPage;
-import com.android.swe.browser.mynavigation.MyNavigationUtil;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.WebAddress;
-import com.android.swe.browser.platformsupport.BrowserContract.Images;
-import com.android.swe.browser.provider.BrowserProvider2.Thumbnails;
-import com.android.swe.browser.provider.SnapshotProvider.Snapshots;
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.R;
+import com.android.browser.IntentHandler.UrlData;
+import com.android.browser.UI.ComboViews;
+import com.android.browser.mynavigation.AddMyNavigationPage;
+import com.android.browser.mynavigation.MyNavigationUtil;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.WebAddress;
+import com.android.browser.platformsupport.BrowserContract.Images;
+import com.android.browser.provider.BrowserProvider2.Thumbnails;
+import com.android.browser.provider.SnapshotProvider.Snapshots;
+import com.android.browser.reflect.ReflectHelper;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -132,7 +132,7 @@
     private static final String INTENT_WIFI_SELECTION_DATA_CONNECTION =
             "android.net.wifi.cmcc.WIFI_SELECTION_DATA_CONNECTION";
     private static final String OFFLINE_PAGE =
-            "content://com.android.swe.browser.mynavigation/websites";
+            "content://com.android.browser.mynavigation/websites";
     private static final String INTENT_PICK_NETWORK =
             "android.net.wifi.cmcc.PICK_WIFI_NETWORK_AND_GPRS";
 
diff --git a/src/com/android/swe/browser/CrashRecoveryHandler.java b/src/com/android/browser/CrashRecoveryHandler.java
similarity index 99%
rename from src/com/android/swe/browser/CrashRecoveryHandler.java
rename to src/com/android/browser/CrashRecoveryHandler.java
index b542205..bcdf8b0 100644
--- a/src/com/android/swe/browser/CrashRecoveryHandler.java
+++ b/src/com/android/browser/CrashRecoveryHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.content.Intent;
diff --git a/src/com/android/swe/browser/DataController.java b/src/com/android/browser/DataController.java
similarity index 97%
rename from src/com/android/swe/browser/DataController.java
rename to src/com/android/browser/DataController.java
index f2a44d6..eb47080 100644
--- a/src/com/android/swe/browser/DataController.java
+++ b/src/com/android/browser/DataController.java
@@ -15,7 +15,7 @@
  */
 
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.ContentResolver;
 import android.content.ContentUris;
@@ -29,9 +29,9 @@
 import android.os.Message;
 import android.util.Log;
 
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.History;
-import com.android.swe.browser.provider.BrowserProvider2.Thumbnails;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.History;
+import com.android.browser.provider.BrowserProvider2.Thumbnails;
 
 import java.nio.ByteBuffer;
 import java.util.concurrent.BlockingQueue;
diff --git a/src/com/android/swe/browser/DataUri.java b/src/com/android/browser/DataUri.java
similarity index 98%
rename from src/com/android/swe/browser/DataUri.java
rename to src/com/android/browser/DataUri.java
index 42c9daf..dae3caf 100644
--- a/src/com/android/swe/browser/DataUri.java
+++ b/src/com/android/browser/DataUri.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import java.net.MalformedURLException;
 
diff --git a/src/com/android/swe/browser/DateSortedExpandableListAdapter.java b/src/com/android/browser/DateSortedExpandableListAdapter.java
similarity index 99%
rename from src/com/android/swe/browser/DateSortedExpandableListAdapter.java
rename to src/com/android/browser/DateSortedExpandableListAdapter.java
index ec7afe4..529e1ed 100644
--- a/src/com/android/swe/browser/DateSortedExpandableListAdapter.java
+++ b/src/com/android/browser/DateSortedExpandableListAdapter.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.Context;
 import android.database.Cursor;
diff --git a/src/com/android/swe/browser/DeviceAccountLogin.java b/src/com/android/browser/DeviceAccountLogin.java
similarity index 98%
rename from src/com/android/swe/browser/DeviceAccountLogin.java
rename to src/com/android/browser/DeviceAccountLogin.java
index 1946ff8..0638f97 100644
--- a/src/com/android/swe/browser/DeviceAccountLogin.java
+++ b/src/com/android/browser/DeviceAccountLogin.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
diff --git a/src/com/android/swe/browser/DownloadHandler.java b/src/com/android/browser/DownloadHandler.java
similarity index 98%
rename from src/com/android/swe/browser/DownloadHandler.java
rename to src/com/android/browser/DownloadHandler.java
index 2710907..65c5f85 100644
--- a/src/com/android/swe/browser/DownloadHandler.java
+++ b/src/com/android/browser/DownloadHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.app.AlertDialog;
@@ -37,9 +37,9 @@
 import android.webkit.URLUtil;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.platformsupport.WebAddress;
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.R;
+import com.android.browser.platformsupport.WebAddress;
+import com.android.browser.reflect.ReflectHelper;
 
 import java.io.File;
 /**
@@ -48,7 +48,7 @@
 public class DownloadHandler {
 
     private static final boolean LOGD_ENABLED =
-            com.android.swe.browser.Browser.LOGD_ENABLED;
+            com.android.browser.Browser.LOGD_ENABLED;
 
     private static final String LOGTAG = "DLHandler";
     private static String mInternalStorage;
diff --git a/src/com/android/swe/browser/DownloadSettings.java b/src/com/android/browser/DownloadSettings.java
similarity index 99%
rename from src/com/android/swe/browser/DownloadSettings.java
rename to src/com/android/browser/DownloadSettings.java
index 0204aa6..2b8a848 100644
--- a/src/com/android/swe/browser/DownloadSettings.java
+++ b/src/com/android/browser/DownloadSettings.java
@@ -27,7 +27,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import java.io.File;
 
@@ -35,7 +35,7 @@
 import android.content.Intent;
 import java.lang.Thread;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.net.Uri;
 import android.os.Bundle;
diff --git a/src/com/android/swe/browser/DownloadTouchIcon.java b/src/com/android/browser/DownloadTouchIcon.java
similarity index 96%
rename from src/com/android/swe/browser/DownloadTouchIcon.java
rename to src/com/android/browser/DownloadTouchIcon.java
index e48d25f..d2c4024 100644
--- a/src/com/android/swe/browser/DownloadTouchIcon.java
+++ b/src/com/android/browser/DownloadTouchIcon.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpHost;
@@ -35,9 +35,9 @@
 import android.os.Bundle;
 import android.os.Message;
 
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Images;
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Images;
+import com.android.browser.reflect.ReflectHelper;
 
 import org.codeaurora.swe.WebView;
 
diff --git a/src/com/android/swe/browser/ErrorConsoleView.java b/src/com/android/browser/ErrorConsoleView.java
similarity index 99%
rename from src/com/android/swe/browser/ErrorConsoleView.java
rename to src/com/android/browser/ErrorConsoleView.java
index 7dd2a37..bcee7b5 100644
--- a/src/com/android/swe/browser/ErrorConsoleView.java
+++ b/src/com/android/browser/ErrorConsoleView.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.database.DataSetObserver;
@@ -27,7 +27,7 @@
 import android.webkit.ConsoleMessage;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.widget.Button;
 import android.widget.EditText;
diff --git a/src/com/android/swe/browser/EventLogTags.logtags b/src/com/android/browser/EventLogTags.logtags
similarity index 94%
rename from src/com/android/swe/browser/EventLogTags.logtags
rename to src/com/android/browser/EventLogTags.logtags
index ed9830e..b3834cf 100644
--- a/src/com/android/swe/browser/EventLogTags.logtags
+++ b/src/com/android/browser/EventLogTags.logtags
@@ -1,6 +1,6 @@
 # See system/core/logcat/event.logtags for a description of the format of this file.
 
-option java_package com.android.swe.browser
+option java_package com.android.browser
 
 # This event is logged when a user adds a new bookmark. This could just be a boolean,
 # but if lots of users add the same bookmark it could be a default bookmark on the browser.
diff --git a/src/com/android/swe/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java
similarity index 98%
rename from src/com/android/swe/browser/FetchUrlMimeType.java
rename to src/com/android/browser/FetchUrlMimeType.java
index 4a4d891..f42d627 100644
--- a/src/com/android/swe/browser/FetchUrlMimeType.java
+++ b/src/com/android/browser/FetchUrlMimeType.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Context;
@@ -24,7 +24,7 @@
 import android.util.Log;
 import android.webkit.MimeTypeMap;
 
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.reflect.ReflectHelper;
 
 import java.io.IOException;
 
diff --git a/src/com/android/swe/browser/GeolocationPermissionsPrompt.java b/src/com/android/browser/GeolocationPermissionsPrompt.java
similarity index 98%
rename from src/com/android/swe/browser/GeolocationPermissionsPrompt.java
rename to src/com/android/browser/GeolocationPermissionsPrompt.java
index 790d012..127107f 100755
--- a/src/com/android/swe/browser/GeolocationPermissionsPrompt.java
+++ b/src/com/android/browser/GeolocationPermissionsPrompt.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.Context;
 import android.net.Uri;
diff --git a/src/com/android/swe/browser/GoogleAccountLogin.java b/src/com/android/browser/GoogleAccountLogin.java
similarity index 99%
rename from src/com/android/swe/browser/GoogleAccountLogin.java
rename to src/com/android/browser/GoogleAccountLogin.java
index 70ceaac..f605671 100644
--- a/src/com/android/swe/browser/GoogleAccountLogin.java
+++ b/src/com/android/browser/GoogleAccountLogin.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
@@ -40,7 +40,7 @@
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.util.EntityUtils;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 public class GoogleAccountLogin implements Runnable,
         AccountManagerCallback<Bundle>, OnCancelListener {
diff --git a/src/com/android/swe/browser/HistoryItem.java b/src/com/android/browser/HistoryItem.java
similarity index 97%
rename from src/com/android/swe/browser/HistoryItem.java
rename to src/com/android/browser/HistoryItem.java
index cc6770e..ceba2cb 100644
--- a/src/com/android/swe/browser/HistoryItem.java
+++ b/src/com/android/browser/HistoryItem.java
@@ -15,9 +15,9 @@
  */
 
  
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.Context;
 import android.provider.Browser;
diff --git a/src/com/android/swe/browser/HttpAuthenticationDialog.java b/src/com/android/browser/HttpAuthenticationDialog.java
similarity index 98%
rename from src/com/android/swe/browser/HttpAuthenticationDialog.java
rename to src/com/android/browser/HttpAuthenticationDialog.java
index 7a6d897..2981e65 100644
--- a/src/com/android/swe/browser/HttpAuthenticationDialog.java
+++ b/src/com/android/browser/HttpAuthenticationDialog.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.app.AlertDialog;
 import android.content.Context;
diff --git a/src/com/android/swe/browser/IntentHandler.java b/src/com/android/browser/IntentHandler.java
similarity index 98%
rename from src/com/android/swe/browser/IntentHandler.java
rename to src/com/android/browser/IntentHandler.java
index ff48cb4..ec19246 100644
--- a/src/com/android/swe/browser/IntentHandler.java
+++ b/src/com/android/browser/IntentHandler.java
@@ -15,7 +15,7 @@
  */
 
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.app.SearchManager;
@@ -31,8 +31,8 @@
 import android.text.TextUtils;
 import android.util.Patterns;
 
-import com.android.swe.browser.UI.ComboViews;
-import com.android.swe.browser.search.SearchEngine;
+import com.android.browser.UI.ComboViews;
+import com.android.browser.search.SearchEngine;
 
 import java.util.HashMap;
 import java.util.Iterator;
diff --git a/src/com/android/swe/browser/KeyChainLookup.java b/src/com/android/browser/KeyChainLookup.java
similarity index 97%
rename from src/com/android/swe/browser/KeyChainLookup.java
rename to src/com/android/browser/KeyChainLookup.java
index 80f799e..5bd86b5 100644
--- a/src/com/android/swe/browser/KeyChainLookup.java
+++ b/src/com/android/browser/KeyChainLookup.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.os.AsyncTask;
diff --git a/src/com/android/swe/browser/LogTag.java b/src/com/android/browser/LogTag.java
similarity index 98%
rename from src/com/android/swe/browser/LogTag.java
rename to src/com/android/browser/LogTag.java
index 143f7f6..b2393c7 100644
--- a/src/com/android/swe/browser/LogTag.java
+++ b/src/com/android/browser/LogTag.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.util.EventLog;
 
diff --git a/src/com/android/swe/browser/MemoryMonitor.java b/src/com/android/browser/MemoryMonitor.java
similarity index 99%
rename from src/com/android/swe/browser/MemoryMonitor.java
rename to src/com/android/browser/MemoryMonitor.java
index c9be967..a18f698 100644
--- a/src/com/android/swe/browser/MemoryMonitor.java
+++ b/src/com/android/browser/MemoryMonitor.java
@@ -28,7 +28,7 @@
     *
     */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.ActivityManager;
 import android.content.Context;
diff --git a/src/com/android/swe/browser/MessagesReceiver.java b/src/com/android/browser/MessagesReceiver.java
similarity index 97%
rename from src/com/android/swe/browser/MessagesReceiver.java
rename to src/com/android/browser/MessagesReceiver.java
index 9733725..d59ae84 100644
--- a/src/com/android/swe/browser/MessagesReceiver.java
+++ b/src/com/android/browser/MessagesReceiver.java
@@ -27,11 +27,11 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import org.w3c.dom.Text;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
diff --git a/src/com/android/swe/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
similarity index 96%
rename from src/com/android/swe/browser/NavScreen.java
rename to src/com/android/browser/NavScreen.java
index 098ec4b..42b35de 100644
--- a/src/com/android/swe/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Context;
@@ -36,11 +36,11 @@
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.NavTabScroller.OnLayoutListener;
-import com.android.swe.browser.NavTabScroller.OnRemoveListener;
-import com.android.swe.browser.TabControl.OnThumbnailUpdatedListener;
-import com.android.swe.browser.UI.ComboViews;
+import com.android.browser.R;
+import com.android.browser.NavTabScroller.OnLayoutListener;
+import com.android.browser.NavTabScroller.OnRemoveListener;
+import com.android.browser.TabControl.OnThumbnailUpdatedListener;
+import com.android.browser.UI.ComboViews;
 
 import java.util.HashMap;
 
diff --git a/src/com/android/swe/browser/NavTabScroller.java b/src/com/android/browser/NavTabScroller.java
similarity index 99%
rename from src/com/android/swe/browser/NavTabScroller.java
rename to src/com/android/browser/NavTabScroller.java
index 263c711..a23ebe9 100644
--- a/src/com/android/swe/browser/NavTabScroller.java
+++ b/src/com/android/browser/NavTabScroller.java
@@ -14,7 +14,7 @@
  * the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 
 import android.animation.Animator;
@@ -32,7 +32,7 @@
 import android.widget.BaseAdapter;
 import android.widget.LinearLayout;
 
-import com.android.swe.browser.view.ScrollerView;
+import com.android.browser.view.ScrollerView;
 
 /**
  * custom view for displaying tabs in the nav screen
diff --git a/src/com/android/swe/browser/NavTabView.java b/src/com/android/browser/NavTabView.java
similarity index 97%
rename from src/com/android/swe/browser/NavTabView.java
rename to src/com/android/browser/NavTabView.java
index 83b4ca0..3bcd7a2 100644
--- a/src/com/android/swe/browser/NavTabView.java
+++ b/src/com/android/browser/NavTabView.java
@@ -14,7 +14,7 @@
  * the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.graphics.Bitmap;
@@ -24,7 +24,7 @@
 import android.view.ViewGroup;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.widget.ImageView;
 import android.widget.LinearLayout;
diff --git a/src/com/android/swe/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
similarity index 98%
rename from src/com/android/swe/browser/NavigationBarBase.java
rename to src/com/android/browser/NavigationBarBase.java
index d39fa7c..0cf23ee 100644
--- a/src/com/android/swe/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.SearchManager;
 import android.content.ActivityNotFoundException;
@@ -35,9 +35,9 @@
 import android.widget.LinearLayout;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.UrlInputView.UrlInputListener;
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.R;
+import com.android.browser.UrlInputView.UrlInputListener;
+import com.android.browser.reflect.ReflectHelper;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URISyntaxException;
diff --git a/src/com/android/swe/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
similarity index 98%
rename from src/com/android/swe/browser/NavigationBarPhone.java
rename to src/com/android/browser/NavigationBarPhone.java
index a559e9f..50ddea2 100644
--- a/src/com/android/swe/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Context;
@@ -30,8 +30,8 @@
 import android.widget.PopupMenu.OnDismissListener;
 import android.widget.PopupMenu.OnMenuItemClickListener;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.UrlInputView.StateListener;
+import com.android.browser.R;
+import com.android.browser.UrlInputView.StateListener;
 
 public class NavigationBarPhone extends NavigationBarBase implements
         StateListener, OnMenuItemClickListener, OnDismissListener {
diff --git a/src/com/android/swe/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
similarity index 98%
rename from src/com/android/swe/browser/NavigationBarTablet.java
rename to src/com/android/browser/NavigationBarTablet.java
index 30376c9..ebe40ea 100644
--- a/src/com/android/swe/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
@@ -31,9 +31,9 @@
 import android.widget.ImageButton;
 import android.widget.ImageView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.UI.ComboViews;
-import com.android.swe.browser.UrlInputView.StateListener;
+import com.android.browser.R;
+import com.android.browser.UI.ComboViews;
+import com.android.browser.UrlInputView.StateListener;
 
 public class NavigationBarTablet extends NavigationBarBase implements StateListener {
 
diff --git a/src/com/android/swe/browser/NetworkStateHandler.java b/src/com/android/browser/NetworkStateHandler.java
similarity index 97%
rename from src/com/android/swe/browser/NetworkStateHandler.java
rename to src/com/android/browser/NetworkStateHandler.java
index 81a718b..74a355a 100644
--- a/src/com/android/swe/browser/NetworkStateHandler.java
+++ b/src/com/android/browser/NetworkStateHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.BroadcastReceiver;
@@ -25,7 +25,7 @@
 import android.net.NetworkInfo;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.BrowserSettings;
+import com.android.browser.BrowserSettings;
 
 /**
  * Handle network state changes
diff --git a/src/com/android/swe/browser/NfcHandler.java b/src/com/android/browser/NfcHandler.java
similarity index 98%
rename from src/com/android/swe/browser/NfcHandler.java
rename to src/com/android/browser/NfcHandler.java
index e1709b3..0dd8576 100644
--- a/src/com/android/swe/browser/NfcHandler.java
+++ b/src/com/android/browser/NfcHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.nfc.NdefMessage;
diff --git a/src/com/android/swe/browser/OpenDownloadReceiver.java b/src/com/android/browser/OpenDownloadReceiver.java
similarity index 98%
rename from src/com/android/swe/browser/OpenDownloadReceiver.java
rename to src/com/android/browser/OpenDownloadReceiver.java
index 8435405..4277ff4 100644
--- a/src/com/android/swe/browser/OpenDownloadReceiver.java
+++ b/src/com/android/browser/OpenDownloadReceiver.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.DownloadManager;
 import android.content.ActivityNotFoundException;
diff --git a/src/com/android/swe/browser/OptionsMenuHandler.java b/src/com/android/browser/OptionsMenuHandler.java
similarity index 96%
rename from src/com/android/swe/browser/OptionsMenuHandler.java
rename to src/com/android/browser/OptionsMenuHandler.java
index 1351221..d602c7d 100644
--- a/src/com/android/swe/browser/OptionsMenuHandler.java
+++ b/src/com/android/browser/OptionsMenuHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.view.Menu;
 import android.view.MenuItem;
diff --git a/src/com/android/swe/browser/PageDialogsHandler.java b/src/com/android/browser/PageDialogsHandler.java
similarity index 99%
rename from src/com/android/swe/browser/PageDialogsHandler.java
rename to src/com/android/browser/PageDialogsHandler.java
index 6ac5265..a38b904 100644
--- a/src/com/android/swe/browser/PageDialogsHandler.java
+++ b/src/com/android/browser/PageDialogsHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import java.lang.reflect.Method;
 
@@ -31,7 +31,7 @@
 import org.codeaurora.swe.SslErrorHandler;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.widget.LinearLayout;
 import android.widget.TextView;
diff --git a/src/com/android/swe/browser/PageProgressView.java b/src/com/android/browser/PageProgressView.java
similarity index 98%
rename from src/com/android/swe/browser/PageProgressView.java
rename to src/com/android/browser/PageProgressView.java
index c63d60e..f512cef 100644
--- a/src/com/android/swe/browser/PageProgressView.java
+++ b/src/com/android/browser/PageProgressView.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.graphics.Canvas;
diff --git a/src/com/android/swe/browser/Performance.java b/src/com/android/browser/Performance.java
similarity index 95%
rename from src/com/android/swe/browser/Performance.java
rename to src/com/android/browser/Performance.java
index 3e1577c..330f47e 100644
--- a/src/com/android/swe/browser/Performance.java
+++ b/src/com/android/browser/Performance.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.platformsupport.Process;
-import com.android.swe.browser.platformsupport.WebAddress;
+import com.android.browser.platformsupport.Process;
+import com.android.browser.platformsupport.WebAddress;
 
 import android.os.Debug;
 import android.os.SystemClock;
@@ -31,7 +31,7 @@
     private static final String LOGTAG = "browser";
 
     private final static boolean LOGD_ENABLED =
-            com.android.swe.browser.Browser.LOGD_ENABLED;
+            com.android.browser.Browser.LOGD_ENABLED;
 
     private static boolean mInTrace;
 
diff --git a/src/com/android/swe/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
similarity index 99%
rename from src/com/android/swe/browser/PhoneUi.java
rename to src/com/android/browser/PhoneUi.java
index 471e800..01488e1 100644
--- a/src/com/android/swe/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
@@ -38,8 +38,8 @@
 import org.codeaurora.swe.WebView;
 import android.widget.ImageView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.UrlInputView.StateListener;
+import com.android.browser.R;
+import com.android.browser.UrlInputView.StateListener;
 
 /**
  * Ui for regular phone screen sizes
diff --git a/src/com/android/swe/browser/PieControl.java b/src/com/android/browser/PieControl.java
similarity index 96%
rename from src/com/android/swe/browser/PieControl.java
rename to src/com/android/browser/PieControl.java
index 83653f5..68f7983 100644
--- a/src/com/android/swe/browser/PieControl.java
+++ b/src/com/android/browser/PieControl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Context;
@@ -31,13 +31,13 @@
 import android.widget.ImageView.ScaleType;
 import android.widget.TextView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.UI.ComboViews;
-import com.android.swe.browser.view.PieItem;
-import com.android.swe.browser.view.PieMenu;
-import com.android.swe.browser.view.PieStackView;
-import com.android.swe.browser.view.PieMenu.PieView.OnLayoutListener;
-import com.android.swe.browser.view.PieStackView.OnCurrentListener;
+import com.android.browser.R;
+import com.android.browser.UI.ComboViews;
+import com.android.browser.view.PieItem;
+import com.android.browser.view.PieMenu;
+import com.android.browser.view.PieStackView;
+import com.android.browser.view.PieMenu.PieView.OnLayoutListener;
+import com.android.browser.view.PieStackView.OnCurrentListener;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/com/android/swe/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
similarity index 99%
rename from src/com/android/swe/browser/PreferenceKeys.java
rename to src/com/android/browser/PreferenceKeys.java
index 36d02ca..8620053 100644
--- a/src/com/android/swe/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 public interface PreferenceKeys {
 
diff --git a/src/com/android/swe/browser/PreloadController.java b/src/com/android/browser/PreloadController.java
similarity index 99%
rename from src/com/android/swe/browser/PreloadController.java
rename to src/com/android/browser/PreloadController.java
index e2d43c1..b564318 100644
--- a/src/com/android/swe/browser/PreloadController.java
+++ b/src/com/android/browser/PreloadController.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/com/android/swe/browser/PreloadRequestReceiver.java b/src/com/android/browser/PreloadRequestReceiver.java
similarity index 97%
rename from src/com/android/swe/browser/PreloadRequestReceiver.java
rename to src/com/android/browser/PreloadRequestReceiver.java
index 058f9ee..c654037 100644
--- a/src/com/android/swe/browser/PreloadRequestReceiver.java
+++ b/src/com/android/browser/PreloadRequestReceiver.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -34,7 +34,7 @@
 public class PreloadRequestReceiver extends BroadcastReceiver {
 
     private final static String LOGTAG = "browser.preloader";
-    private final static boolean LOGD_ENABLED = com.android.swe.browser.Browser.LOGD_ENABLED;
+    private final static boolean LOGD_ENABLED = com.android.browser.Browser.LOGD_ENABLED;
 
     private static final String ACTION_PRELOAD = "android.intent.action.PRELOAD";
     static final String EXTRA_PRELOAD_ID = "preload_id";
diff --git a/src/com/android/swe/browser/PreloadedTabControl.java b/src/com/android/browser/PreloadedTabControl.java
similarity index 94%
rename from src/com/android/swe/browser/PreloadedTabControl.java
rename to src/com/android/browser/PreloadedTabControl.java
index 88e6c9c..21dafa9 100644
--- a/src/com/android/swe/browser/PreloadedTabControl.java
+++ b/src/com/android/browser/PreloadedTabControl.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.net.Uri;
 import android.text.TextUtils;
@@ -26,7 +26,7 @@
  * Class to manage the controlling of preloaded tab.
  */
 public class PreloadedTabControl {
-    private static final boolean LOGD_ENABLED = com.android.swe.browser.Browser.LOGD_ENABLED;
+    private static final boolean LOGD_ENABLED = com.android.browser.Browser.LOGD_ENABLED;
     private static final String LOGTAG = "PreloadedTabControl";
 
     final Tab mTab;
diff --git a/src/com/android/swe/browser/Preloader.java b/src/com/android/browser/Preloader.java
similarity index 97%
rename from src/com/android/swe/browser/Preloader.java
rename to src/com/android/browser/Preloader.java
index e212575..7d8c367 100644
--- a/src/com/android/swe/browser/Preloader.java
+++ b/src/com/android/browser/Preloader.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.os.Handler;
@@ -29,7 +29,7 @@
 public class Preloader {
 
     private final static String LOGTAG = "browser.preloader";
-    private final static boolean LOGD_ENABLED = com.android.swe.browser.Browser.LOGD_ENABLED;
+    private final static boolean LOGD_ENABLED = com.android.browser.Browser.LOGD_ENABLED;
 
     private static final int PRERENDER_TIMEOUT_MILLIS = 30 * 1000; // 30s
 
diff --git a/src/com/android/swe/browser/ShortcutActivity.java b/src/com/android/browser/ShortcutActivity.java
similarity index 96%
rename from src/com/android/swe/browser/ShortcutActivity.java
rename to src/com/android/browser/ShortcutActivity.java
index e8f6690..dcc176f 100644
--- a/src/com/android/swe/browser/ShortcutActivity.java
+++ b/src/com/android/browser/ShortcutActivity.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.app.Activity;
 import android.content.Intent;
diff --git a/src/com/android/swe/browser/SnapshotBar.java b/src/com/android/browser/SnapshotBar.java
similarity index 98%
rename from src/com/android/swe/browser/SnapshotBar.java
rename to src/com/android/browser/SnapshotBar.java
index 3fef6f4..42f9fba 100644
--- a/src/com/android/swe/browser/SnapshotBar.java
+++ b/src/com/android/browser/SnapshotBar.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.graphics.Bitmap;
@@ -31,8 +31,8 @@
 import android.widget.PopupMenu.OnMenuItemClickListener;
 import android.widget.TextView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.UI.ComboViews;
+import com.android.browser.R;
+import com.android.browser.UI.ComboViews;
 
 import java.text.DateFormat;
 import java.util.Date;
diff --git a/src/com/android/swe/browser/SnapshotTab.java b/src/com/android/browser/SnapshotTab.java
similarity index 98%
rename from src/com/android/swe/browser/SnapshotTab.java
rename to src/com/android/browser/SnapshotTab.java
index 9149425..e403dbc 100644
--- a/src/com/android/swe/browser/SnapshotTab.java
+++ b/src/com/android/browser/SnapshotTab.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.ContentResolver;
 import android.content.ContentUris;
@@ -28,7 +28,7 @@
 import android.util.Log;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.provider.SnapshotProvider.Snapshots;
+import com.android.browser.provider.SnapshotProvider.Snapshots;
 
 import java.io.ByteArrayInputStream;
 import java.io.FileNotFoundException;
diff --git a/src/com/android/swe/browser/SuggestionsAdapter.java b/src/com/android/browser/SuggestionsAdapter.java
similarity index 98%
rename from src/com/android/swe/browser/SuggestionsAdapter.java
rename to src/com/android/browser/SuggestionsAdapter.java
index ecb375b..41d2b74 100644
--- a/src/com/android/swe/browser/SuggestionsAdapter.java
+++ b/src/com/android/browser/SuggestionsAdapter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.SearchManager;
 import android.content.Context;
@@ -22,7 +22,10 @@
 import android.net.Uri;
 import android.os.AsyncTask;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.provider.BrowserProvider2.OmniboxSuggestions;
+import com.android.browser.search.SearchEngine;
 
 import android.text.Html;
 import android.text.TextUtils;
@@ -36,9 +39,6 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.provider.BrowserProvider2.OmniboxSuggestions;
-import com.android.swe.browser.search.SearchEngine;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/com/android/swe/browser/SystemAllowGeolocationOrigins.java b/src/com/android/browser/SystemAllowGeolocationOrigins.java
similarity index 99%
rename from src/com/android/swe/browser/SystemAllowGeolocationOrigins.java
rename to src/com/android/browser/SystemAllowGeolocationOrigins.java
index 54ee79c..f4b5835 100644
--- a/src/com/android/swe/browser/SystemAllowGeolocationOrigins.java
+++ b/src/com/android/browser/SystemAllowGeolocationOrigins.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.content.SharedPreferences;
diff --git a/src/com/android/swe/browser/Tab.java b/src/com/android/browser/Tab.java
similarity index 99%
rename from src/com/android/swe/browser/Tab.java
rename to src/com/android/browser/Tab.java
index 446c070..6d36d9c 100644
--- a/src/com/android/swe/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.app.AlertDialog;
@@ -60,7 +60,12 @@
 import android.widget.FrameLayout;
 import android.widget.Button;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
+import com.android.browser.TabControl.OnThumbnailUpdatedListener;
+import com.android.browser.homepages.HomeProvider;
+import com.android.browser.mynavigation.MyNavigationUtil;
+import com.android.browser.provider.MyNavigationProvider;
+import com.android.browser.provider.SnapshotProvider.Snapshots;
 
 import org.codeaurora.swe.BrowserDownloadListener;
 import org.codeaurora.swe.ClientCertRequestHandler;
@@ -74,11 +79,6 @@
 import org.codeaurora.swe.WebView.PictureListener;
 import org.codeaurora.swe.WebViewClient;
 
-import com.android.swe.browser.TabControl.OnThumbnailUpdatedListener;
-import com.android.swe.browser.homepages.HomeProvider;
-import com.android.swe.browser.mynavigation.MyNavigationUtil;
-import com.android.swe.browser.provider.MyNavigationProvider;
-import com.android.swe.browser.provider.SnapshotProvider.Snapshots;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -99,7 +99,7 @@
 
     // Log Tag
     private static final String LOGTAG = "Tab";
-    private static final boolean LOGD_ENABLED = com.android.swe.browser.Browser.LOGD_ENABLED;
+    private static final boolean LOGD_ENABLED = com.android.browser.Browser.LOGD_ENABLED;
     // Special case the logtag for messages for the Console to make it easier to
     // filter them and match the logtag used for these messages in older versions
     // of the browser.
@@ -677,7 +677,7 @@
             if (url.startsWith("browser:incognito")) {
                 Resources resourceHandle = mContext.getResources();
                 InputStream inStream = resourceHandle.openRawResource(
-                        com.android.swe.browser.R.raw.incognito_mode_start_page);
+                        com.android.browser.R.raw.incognito_mode_start_page);
                 return new WebResourceResponse("text/html", "utf8", inStream);
             }
             WebResourceResponse res;
diff --git a/src/com/android/swe/browser/TabBar.java b/src/com/android/browser/TabBar.java
similarity index 99%
rename from src/com/android/swe/browser/TabBar.java
rename to src/com/android/browser/TabBar.java
index d74dcbe..4078ba4 100644
--- a/src/com/android/swe/browser/TabBar.java
+++ b/src/com/android/browser/TabBar.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.animation.Animator;
 import android.animation.Animator.AnimatorListener;
@@ -45,7 +45,7 @@
 import java.util.List;
 import java.util.Map;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 /**
  * tabbed title bar for xlarge screen browser
diff --git a/src/com/android/swe/browser/TabControl.java b/src/com/android/browser/TabControl.java
similarity index 99%
rename from src/com/android/swe/browser/TabControl.java
rename to src/com/android/browser/TabControl.java
index 1f16846..66736cb 100644
--- a/src/com/android/swe/browser/TabControl.java
+++ b/src/com/android/browser/TabControl.java
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.os.Bundle;
 import android.util.Log;
 
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.reflect.ReflectHelper;
 
 import org.codeaurora.swe.WebView;
 
diff --git a/src/com/android/swe/browser/TabScrollView.java b/src/com/android/browser/TabScrollView.java
similarity index 98%
rename from src/com/android/swe/browser/TabScrollView.java
rename to src/com/android/browser/TabScrollView.java
index 14caac4..1df88cc 100644
--- a/src/com/android/swe/browser/TabScrollView.java
+++ b/src/com/android/browser/TabScrollView.java
@@ -14,10 +14,10 @@
  * the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.TabBar.TabView;
+import com.android.browser.R;
+import com.android.browser.TabBar.TabView;
 
 import android.animation.ObjectAnimator;
 import android.content.Context;
diff --git a/src/com/android/swe/browser/TitleBar.java b/src/com/android/browser/TitleBar.java
similarity index 99%
rename from src/com/android/swe/browser/TitleBar.java
rename to src/com/android/browser/TitleBar.java
index 89c175e..e33a05c 100644
--- a/src/com/android/swe/browser/TitleBar.java
+++ b/src/com/android/browser/TitleBar.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.animation.Animator;
 import android.animation.Animator.AnimatorListener;
@@ -33,7 +33,7 @@
 import android.view.animation.DecelerateInterpolator;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.widget.FrameLayout;
 import android.widget.RelativeLayout;
diff --git a/src/com/android/swe/browser/UI.java b/src/com/android/browser/UI.java
similarity index 98%
rename from src/com/android/swe/browser/UI.java
rename to src/com/android/browser/UI.java
index 18f189f..00dacdb 100644
--- a/src/com/android/swe/browser/UI.java
+++ b/src/com/android/browser/UI.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
diff --git a/src/com/android/swe/browser/UiController.java b/src/com/android/browser/UiController.java
similarity index 96%
rename from src/com/android/swe/browser/UiController.java
rename to src/com/android/browser/UiController.java
index 563f468..36ee452 100644
--- a/src/com/android/swe/browser/UiController.java
+++ b/src/com/android/browser/UiController.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Intent;
@@ -22,7 +22,7 @@
 import android.view.MenuItem;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.UI.ComboViews;
+import com.android.browser.UI.ComboViews;
 
 import java.util.List;
 
diff --git a/src/com/android/swe/browser/UploadHandler.java b/src/com/android/browser/UploadHandler.java
similarity index 98%
rename from src/com/android/swe/browser/UploadHandler.java
rename to src/com/android/browser/UploadHandler.java
index ee744b9..8dec49c 100644
--- a/src/com/android/swe/browser/UploadHandler.java
+++ b/src/com/android/browser/UploadHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.ActivityNotFoundException;
@@ -26,8 +26,8 @@
 import android.webkit.ValueCallback;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.R;
+import com.android.browser.reflect.ReflectHelper;
 
 import java.io.File;
 import java.util.Vector;
diff --git a/src/com/android/swe/browser/UrlBarAutoShowManager.java b/src/com/android/browser/UrlBarAutoShowManager.java
similarity index 97%
rename from src/com/android/swe/browser/UrlBarAutoShowManager.java
rename to src/com/android/browser/UrlBarAutoShowManager.java
index c5c23b9..4ef1765 100644
--- a/src/com/android/swe/browser/UrlBarAutoShowManager.java
+++ b/src/com/android/browser/UrlBarAutoShowManager.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.os.SystemClock;
 import android.view.MotionEvent;
@@ -22,7 +22,7 @@
 import android.view.ViewConfiguration;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.BrowserWebView.OnScrollChangedListener;
+import com.android.browser.BrowserWebView.OnScrollChangedListener;
 
 /**
  * Helper class to manage when to show the URL bar based off of touch
diff --git a/src/com/android/swe/browser/UrlHandler.java b/src/com/android/browser/UrlHandler.java
similarity index 98%
rename from src/com/android/swe/browser/UrlHandler.java
rename to src/com/android/browser/UrlHandler.java
index 1e320d1..783f11a 100755
--- a/src/com/android/swe/browser/UrlHandler.java
+++ b/src/com/android/browser/UrlHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.ActivityNotFoundException;
@@ -27,8 +27,8 @@
 import android.util.Log;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.reflect.ReflectHelper;
+import com.android.browser.R;
+import com.android.browser.reflect.ReflectHelper;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URISyntaxException;
diff --git a/src/com/android/swe/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
similarity index 96%
rename from src/com/android/swe/browser/UrlInputView.java
rename to src/com/android/browser/UrlInputView.java
index e8b4512..1359000 100644
--- a/src/com/android/swe/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.content.Context;
 import android.content.res.Configuration;
@@ -35,12 +35,12 @@
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
-import com.android.swe.browser.SuggestionsAdapter.CompletionListener;
-import com.android.swe.browser.SuggestionsAdapter.SuggestItem;
-import com.android.swe.browser.reflect.ReflectHelper;
-import com.android.swe.browser.search.SearchEngine;
-import com.android.swe.browser.search.SearchEngineInfo;
-import com.android.swe.browser.search.SearchEngines;
+import com.android.browser.SuggestionsAdapter.CompletionListener;
+import com.android.browser.SuggestionsAdapter.SuggestItem;
+import com.android.browser.reflect.ReflectHelper;
+import com.android.browser.search.SearchEngine;
+import com.android.browser.search.SearchEngineInfo;
+import com.android.browser.search.SearchEngines;
 
 
 /**
diff --git a/src/com/android/swe/browser/UrlSelectionActionMode.java b/src/com/android/browser/UrlSelectionActionMode.java
similarity index 95%
rename from src/com/android/swe/browser/UrlSelectionActionMode.java
rename to src/com/android/browser/UrlSelectionActionMode.java
index 646ad51..87446ec 100644
--- a/src/com/android/swe/browser/UrlSelectionActionMode.java
+++ b/src/com/android/browser/UrlSelectionActionMode.java
@@ -14,9 +14,9 @@
  * the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.view.ActionMode;
 import android.view.Menu;
diff --git a/src/com/android/swe/browser/UrlUtils.java b/src/com/android/browser/UrlUtils.java
similarity index 99%
rename from src/com/android/swe/browser/UrlUtils.java
rename to src/com/android/browser/UrlUtils.java
index ee5cef0..ff78647 100755
--- a/src/com/android/swe/browser/UrlUtils.java
+++ b/src/com/android/browser/UrlUtils.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.net.Uri;
 import android.util.Patterns;
diff --git a/src/com/android/swe/browser/WallpaperHandler.java b/src/com/android/browser/WallpaperHandler.java
similarity index 98%
rename from src/com/android/swe/browser/WallpaperHandler.java
rename to src/com/android/browser/WallpaperHandler.java
index 94564ab..5c539b5 100644
--- a/src/com/android/swe/browser/WallpaperHandler.java
+++ b/src/com/android/browser/WallpaperHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.ProgressDialog;
 import android.app.WallpaperManager;
@@ -34,7 +34,7 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 /**
  * Handle setWallpaper requests
diff --git a/src/com/android/swe/browser/WebStorageSizeManager.java b/src/com/android/browser/WebStorageSizeManager.java
similarity index 97%
rename from src/com/android/swe/browser/WebStorageSizeManager.java
rename to src/com/android/browser/WebStorageSizeManager.java
index 4cc71b5..0a6a514 100644
--- a/src/com/android/swe/browser/WebStorageSizeManager.java
+++ b/src/com/android/browser/WebStorageSizeManager.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.preferences.WebsiteSettingsFragment;
+import com.android.browser.R;
+import com.android.browser.preferences.WebsiteSettingsFragment;
 
 import android.app.Notification;
 import android.app.NotificationManager;
@@ -87,8 +87,8 @@
  */
 public class WebStorageSizeManager {
     // Logging flags.
-    private final static boolean LOGV_ENABLED = com.android.swe.browser.Browser.LOGV_ENABLED;
-    private final static boolean LOGD_ENABLED = com.android.swe.browser.Browser.LOGD_ENABLED;
+    private final static boolean LOGV_ENABLED = com.android.browser.Browser.LOGV_ENABLED;
+    private final static boolean LOGD_ENABLED = com.android.browser.Browser.LOGD_ENABLED;
     private final static String LOGTAG = "browser";
     // The default quota value for an origin.
     public final static long ORIGIN_DEFAULT_QUOTA = 3 * 1024 * 1024;  // 3MB
diff --git a/src/com/android/swe/browser/WebViewController.java b/src/com/android/browser/WebViewController.java
similarity index 98%
rename from src/com/android/swe/browser/WebViewController.java
rename to src/com/android/browser/WebViewController.java
index 1c9e537..6864470 100644
--- a/src/com/android/swe/browser/WebViewController.java
+++ b/src/com/android/browser/WebViewController.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/com/android/swe/browser/WebViewFactory.java b/src/com/android/browser/WebViewFactory.java
similarity index 96%
rename from src/com/android/swe/browser/WebViewFactory.java
rename to src/com/android/browser/WebViewFactory.java
index a835b10..3ebd573 100644
--- a/src/com/android/swe/browser/WebViewFactory.java
+++ b/src/com/android/browser/WebViewFactory.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import org.codeaurora.swe.WebView;
 
diff --git a/src/com/android/swe/browser/WebViewProperties.java b/src/com/android/browser/WebViewProperties.java
similarity index 96%
rename from src/com/android/swe/browser/WebViewProperties.java
rename to src/com/android/browser/WebViewProperties.java
index b7d4b03..c662957 100644
--- a/src/com/android/swe/browser/WebViewProperties.java
+++ b/src/com/android/browser/WebViewProperties.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 public interface WebViewProperties {
     static final String gfxInvertedScreen = "inverted";
diff --git a/src/com/android/swe/browser/WebViewTimersControl.java b/src/com/android/browser/WebViewTimersControl.java
similarity index 95%
rename from src/com/android/swe/browser/WebViewTimersControl.java
rename to src/com/android/browser/WebViewTimersControl.java
index 8e16ff2..ac74fa1 100644
--- a/src/com/android/swe/browser/WebViewTimersControl.java
+++ b/src/com/android/browser/WebViewTimersControl.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.os.Looper;
 import android.util.Log;
@@ -26,7 +26,7 @@
  */
 public class WebViewTimersControl {
 
-    private static final boolean LOGD_ENABLED = com.android.swe.browser.Browser.LOGD_ENABLED;
+    private static final boolean LOGD_ENABLED = com.android.browser.Browser.LOGD_ENABLED;
     private static final String LOGTAG = "WebViewTimersControl";
 
     private static WebViewTimersControl sInstance;
diff --git a/src/com/android/swe/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
similarity index 98%
rename from src/com/android/swe/browser/XLargeUi.java
rename to src/com/android/browser/XLargeUi.java
index 9a5d316..8dd31d8 100644
--- a/src/com/android/swe/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser;
+package com.android.browser;
 
 import android.app.ActionBar;
 import android.app.Activity;
@@ -33,7 +33,7 @@
 import android.view.MenuItem;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import java.util.List;
 
diff --git a/src/com/android/swe/browser/addbookmark/FolderSpinner.java b/src/com/android/browser/addbookmark/FolderSpinner.java
similarity index 98%
rename from src/com/android/swe/browser/addbookmark/FolderSpinner.java
rename to src/com/android/browser/addbookmark/FolderSpinner.java
index 4dfaea3..dd85cda 100644
--- a/src/com/android/swe/browser/addbookmark/FolderSpinner.java
+++ b/src/com/android/browser/addbookmark/FolderSpinner.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.addbookmark;
+package com.android.browser.addbookmark;
 
 import android.content.Context;
 import android.view.View;
diff --git a/src/com/android/swe/browser/addbookmark/FolderSpinnerAdapter.java b/src/com/android/browser/addbookmark/FolderSpinnerAdapter.java
similarity index 98%
rename from src/com/android/swe/browser/addbookmark/FolderSpinnerAdapter.java
rename to src/com/android/browser/addbookmark/FolderSpinnerAdapter.java
index 82dc597..f86c9c6 100644
--- a/src/com/android/swe/browser/addbookmark/FolderSpinnerAdapter.java
+++ b/src/com/android/browser/addbookmark/FolderSpinnerAdapter.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.addbookmark;
+package com.android.browser.addbookmark;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
diff --git a/src/com/android/swe/browser/homepages/HomeProvider.java b/src/com/android/browser/homepages/HomeProvider.java
similarity index 95%
rename from src/com/android/swe/browser/homepages/HomeProvider.java
rename to src/com/android/browser/homepages/HomeProvider.java
index a710a6f..045cdb8 100644
--- a/src/com/android/swe/browser/homepages/HomeProvider.java
+++ b/src/com/android/browser/homepages/HomeProvider.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.homepages;
+package com.android.browser.homepages;
 
 import android.content.ContentProvider;
 import android.content.ContentValues;
@@ -26,7 +26,7 @@
 import android.util.Log;
 import android.webkit.WebResourceResponse;
 
-import com.android.swe.browser.BrowserSettings;
+import com.android.browser.BrowserSettings;
 
 import java.io.File;
 import java.io.IOException;
@@ -37,7 +37,7 @@
 public class HomeProvider extends ContentProvider {
 
     private static final String TAG = "HomeProvider";
-    public static final String AUTHORITY = "com.android.swe.browser.home";
+    public static final String AUTHORITY = "com.android.browser.home";
     public static final String MOST_VISITED = "content://" + AUTHORITY + "/index";
 
     @Override
diff --git a/src/com/android/swe/browser/homepages/RequestHandler.java b/src/com/android/browser/homepages/RequestHandler.java
similarity index 96%
rename from src/com/android/swe/browser/homepages/RequestHandler.java
rename to src/com/android/browser/homepages/RequestHandler.java
index c01db4e..8dbd0ef 100644
--- a/src/com/android/swe/browser/homepages/RequestHandler.java
+++ b/src/com/android/browser/homepages/RequestHandler.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.homepages;
+package com.android.browser.homepages;
 
 import android.content.Context;
 import android.content.UriMatcher;
@@ -26,10 +26,10 @@
 import android.util.Base64;
 import android.util.Log;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.homepages.Template.ListEntityIterator;
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
-import com.android.swe.browser.platformsupport.BrowserContract.History;
+import com.android.browser.R;
+import com.android.browser.homepages.Template.ListEntityIterator;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.platformsupport.BrowserContract.History;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/src/com/android/swe/browser/homepages/Template.java b/src/com/android/browser/homepages/Template.java
similarity index 98%
rename from src/com/android/swe/browser/homepages/Template.java
rename to src/com/android/browser/homepages/Template.java
index 847cfcb..cf31bbd 100644
--- a/src/com/android/swe/browser/homepages/Template.java
+++ b/src/com/android/browser/homepages/Template.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.homepages;
+package com.android.browser.homepages;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -30,7 +30,7 @@
 import android.database.Cursor;
 import android.util.TypedValue;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 public class Template {
 
diff --git a/src/com/android/swe/browser/mynavigation/AddMyNavigationPage.java b/src/com/android/browser/mynavigation/AddMyNavigationPage.java
similarity index 97%
rename from src/com/android/swe/browser/mynavigation/AddMyNavigationPage.java
rename to src/com/android/browser/mynavigation/AddMyNavigationPage.java
index 4eca396..e750aa2 100755
--- a/src/com/android/swe/browser/mynavigation/AddMyNavigationPage.java
+++ b/src/com/android/browser/mynavigation/AddMyNavigationPage.java
@@ -27,7 +27,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-package com.android.swe.browser.mynavigation;
+package com.android.browser.mynavigation;
 
 import android.app.Activity;
 import android.content.Context;
@@ -51,10 +51,10 @@
 import android.widget.TextView;
 import android.util.Log;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserUtils;
-import com.android.swe.browser.UrlUtils;
-import com.android.swe.browser.platformsupport.WebAddress;
+import com.android.browser.BrowserUtils;
+import com.android.browser.R;
+import com.android.browser.UrlUtils;
+import com.android.browser.platformsupport.WebAddress;
 
 import java.io.ByteArrayOutputStream;
 import java.net.URI;
diff --git a/src/com/android/swe/browser/mynavigation/MyNavigationRequestHandler.java b/src/com/android/browser/mynavigation/MyNavigationRequestHandler.java
similarity index 97%
rename from src/com/android/swe/browser/mynavigation/MyNavigationRequestHandler.java
rename to src/com/android/browser/mynavigation/MyNavigationRequestHandler.java
index 1d18974..1de89d4 100755
--- a/src/com/android/swe/browser/mynavigation/MyNavigationRequestHandler.java
+++ b/src/com/android/browser/mynavigation/MyNavigationRequestHandler.java
@@ -27,7 +27,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-package com.android.swe.browser.mynavigation;
+package com.android.browser.mynavigation;
 
 import android.content.Context;
 import android.content.UriMatcher;
@@ -42,7 +42,8 @@
 import java.io.OutputStream;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import com.android.swe.browser.R;
+
+import com.android.browser.R;
 
 public class MyNavigationRequestHandler extends Thread {
 
@@ -96,7 +97,7 @@
         MyNavigationTemplate t = MyNavigationTemplate.getCachedTemplate(mContext,
                 R.raw.my_navigation);
         Cursor cursor = mContext.getContentResolver().query(
-                Uri.parse("content://com.android.swe.browser.mynavigation/websites"),
+                Uri.parse("content://com.android.browser.mynavigation/websites"),
                 new String[] {
                         "url", "title", "thumbnail"
                 },
diff --git a/src/com/android/swe/browser/mynavigation/MyNavigationTemplate.java b/src/com/android/browser/mynavigation/MyNavigationTemplate.java
similarity index 98%
rename from src/com/android/swe/browser/mynavigation/MyNavigationTemplate.java
rename to src/com/android/browser/mynavigation/MyNavigationTemplate.java
index d7d83cc..85d1baf 100755
--- a/src/com/android/swe/browser/mynavigation/MyNavigationTemplate.java
+++ b/src/com/android/browser/mynavigation/MyNavigationTemplate.java
@@ -27,7 +27,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-package com.android.swe.browser.mynavigation;
+package com.android.browser.mynavigation;
 
 import android.content.Context;
 import android.content.res.Resources;
@@ -35,7 +35,7 @@
 import android.util.TypedValue;
 import android.util.Log;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import java.io.InputStream;
 import java.io.IOException;
diff --git a/src/com/android/swe/browser/mynavigation/MyNavigationUtil.java b/src/com/android/browser/mynavigation/MyNavigationUtil.java
similarity index 95%
rename from src/com/android/swe/browser/mynavigation/MyNavigationUtil.java
rename to src/com/android/browser/mynavigation/MyNavigationUtil.java
index c76e350..3b1836d 100755
--- a/src/com/android/swe/browser/mynavigation/MyNavigationUtil.java
+++ b/src/com/android/browser/mynavigation/MyNavigationUtil.java
@@ -27,7 +27,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-package com.android.swe.browser.mynavigation;
+package com.android.browser.mynavigation;
 
 import android.content.ContentValues;
 import android.content.Context;
@@ -48,10 +48,10 @@
     public static final String THUMBNAIL = "thumbnail";
     public static final int WEBSITE_NUMBER = 12;
 
-    public static final String AUTHORITY = "com.android.swe.browser.mynavigation";
+    public static final String AUTHORITY = "com.android.browser.mynavigation";
     public static final String MY_NAVIGATION = "content://" + AUTHORITY + "/" + "websites";
     public static final Uri MY_NAVIGATION_URI = Uri
-            .parse("content://com.android.swe.browser.mynavigation/websites");
+            .parse("content://com.android.browser.mynavigation/websites");
     public static final String DEFAULT_THUMB = "default_thumb";
     public static final String LOGTAG = "MyNavigationUtil";
 
diff --git a/src/com/android/swe/browser/platformsupport/BookmarkColumns.java b/src/com/android/browser/platformsupport/BookmarkColumns.java
similarity index 97%
rename from src/com/android/swe/browser/platformsupport/BookmarkColumns.java
rename to src/com/android/browser/platformsupport/BookmarkColumns.java
index d63c81f..c1d9db8 100644
--- a/src/com/android/swe/browser/platformsupport/BookmarkColumns.java
+++ b/src/com/android/browser/platformsupport/BookmarkColumns.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.platformsupport;
+package com.android.browser.platformsupport;
 
 public class BookmarkColumns {
     /**
diff --git a/src/com/android/swe/browser/platformsupport/BrowserContract.java b/src/com/android/browser/platformsupport/BrowserContract.java
similarity index 99%
rename from src/com/android/swe/browser/platformsupport/BrowserContract.java
rename to src/com/android/browser/platformsupport/BrowserContract.java
index 29d1f87..755e6a3 100644
--- a/src/com/android/swe/browser/platformsupport/BrowserContract.java
+++ b/src/com/android/browser/platformsupport/BrowserContract.java
@@ -15,7 +15,7 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.platformsupport;
+package com.android.browser.platformsupport;
 
 import android.accounts.Account;
 import android.content.ContentProviderClient;
@@ -44,7 +44,7 @@
  */
 public class BrowserContract {
     /** The authority for the browser provider */
-    public static final String AUTHORITY = "com.android.swe.browser";
+    public static final String AUTHORITY = "com.android.browser";
 
     /** A content:// style uri to the authority for the browser provider */
     public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
diff --git a/src/com/android/swe/browser/platformsupport/Process.java b/src/com/android/browser/platformsupport/Process.java
similarity index 97%
rename from src/com/android/swe/browser/platformsupport/Process.java
rename to src/com/android/browser/platformsupport/Process.java
index e33fd3c..5731b27 100644
--- a/src/com/android/swe/browser/platformsupport/Process.java
+++ b/src/com/android/browser/platformsupport/Process.java
@@ -28,7 +28,7 @@
  *
  */
 
-package com.android.swe.browser.platformsupport;
+package com.android.browser.platformsupport;
 
 public class Process {
 
diff --git a/src/com/android/swe/browser/platformsupport/SeekBarPreference.java b/src/com/android/browser/platformsupport/SeekBarPreference.java
similarity index 96%
rename from src/com/android/swe/browser/platformsupport/SeekBarPreference.java
rename to src/com/android/browser/platformsupport/SeekBarPreference.java
index 6b40ad0..41b7915 100644
--- a/src/com/android/swe/browser/platformsupport/SeekBarPreference.java
+++ b/src/com/android/browser/platformsupport/SeekBarPreference.java
@@ -1,4 +1,4 @@
-package com.android.swe.browser.platformsupport;
+package com.android.browser.platformsupport;
 
 import android.content.Context;
 import android.content.res.TypedArray;
@@ -26,7 +26,7 @@
         int max = attrs.getAttributeIntValue(
                       "http://schemas.android.com/apk/res/android", "max", mMax);
         setMax(max);
-        setLayoutResource(com.android.swe.browser.R.layout.preference_widget_seekbar);
+        setLayoutResource(com.android.browser.R.layout.preference_widget_seekbar);
     }
 
     public SeekBarPreference(Context context, AttributeSet attrs) {
@@ -41,7 +41,7 @@
     protected void onBindView(View view) {
         super.onBindView(view);
         SeekBar seekBar = (SeekBar) view.findViewById(
-                          com.android.swe.browser.R.id.seekbar2);
+                          com.android.browser.R.id.seekbar2);
         seekBar.setOnSeekBarChangeListener(this);
         seekBar.setMax(mMax);
         seekBar.setProgress(mProgress);
diff --git a/src/com/android/swe/browser/platformsupport/SyncStateContentProviderHelper.java b/src/com/android/browser/platformsupport/SyncStateContentProviderHelper.java
similarity index 98%
rename from src/com/android/swe/browser/platformsupport/SyncStateContentProviderHelper.java
rename to src/com/android/browser/platformsupport/SyncStateContentProviderHelper.java
index 4fd4e1a..d6a40c7 100644
--- a/src/com/android/swe/browser/platformsupport/SyncStateContentProviderHelper.java
+++ b/src/com/android/browser/platformsupport/SyncStateContentProviderHelper.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.platformsupport;
+package com.android.browser.platformsupport;
 
 import android.accounts.Account;
 import android.content.ContentValues;
diff --git a/src/com/android/swe/browser/platformsupport/WebAddress.java b/src/com/android/browser/platformsupport/WebAddress.java
similarity index 98%
rename from src/com/android/swe/browser/platformsupport/WebAddress.java
rename to src/com/android/browser/platformsupport/WebAddress.java
index 2fbf20a..10fac15 100644
--- a/src/com/android/swe/browser/platformsupport/WebAddress.java
+++ b/src/com/android/browser/platformsupport/WebAddress.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.platformsupport;
+package com.android.browser.platformsupport;
 
 import static android.util.Patterns.GOOD_IRI_CHAR;
 
diff --git a/src/com/android/swe/browser/preferences/AboutPreferencesFragment.java b/src/com/android/browser/preferences/AboutPreferencesFragment.java
similarity index 96%
rename from src/com/android/swe/browser/preferences/AboutPreferencesFragment.java
rename to src/com/android/browser/preferences/AboutPreferencesFragment.java
index 6b12597..d979333 100644
--- a/src/com/android/swe/browser/preferences/AboutPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AboutPreferencesFragment.java
@@ -28,13 +28,14 @@
     *
     */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.os.Bundle;
 import android.preference.Preference;
 import android.preference.Preference.OnPreferenceClickListener;
 import android.preference.PreferenceFragment;
-import com.android.swe.browser.R;
+
+import com.android.browser.R;
 
 public class AboutPreferencesFragment extends PreferenceFragment
                             implements OnPreferenceClickListener {
diff --git a/src/com/android/swe/browser/preferences/AccessibilityPreferencesFragment.java b/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
similarity index 96%
rename from src/com/android/swe/browser/preferences/AccessibilityPreferencesFragment.java
rename to src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
index cd41ad0..529e388 100644
--- a/src/com/android/swe/browser/preferences/AccessibilityPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
@@ -14,15 +14,16 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.content.Context;
 import android.os.Bundle;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.PreferenceKeys;
+
+import com.android.browser.BrowserSettings;
+import com.android.browser.PreferenceKeys;
+import com.android.browser.R;
 
 import org.codeaurora.swe.WebView;
 import java.text.NumberFormat;
diff --git a/src/com/android/swe/browser/preferences/AdvancedPreferencesFragment.java b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
similarity index 96%
rename from src/com/android/swe/browser/preferences/AdvancedPreferencesFragment.java
rename to src/com/android/browser/preferences/AdvancedPreferencesFragment.java
index be04529..4abd301 100644
--- a/src/com/android/swe/browser/preferences/AdvancedPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
@@ -14,7 +14,7 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.app.Activity;
 import android.content.Intent;
@@ -30,11 +30,11 @@
 import android.webkit.ValueCallback;
 import android.widget.Toast;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserActivity;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.DownloadHandler;
-import com.android.swe.browser.PreferenceKeys;
+import com.android.browser.BrowserActivity;
+import com.android.browser.BrowserSettings;
+import com.android.browser.DownloadHandler;
+import com.android.browser.PreferenceKeys;
+import com.android.browser.R;
 
 import java.util.Map;
 import java.util.Set;
diff --git a/src/com/android/swe/browser/preferences/BandwidthPreferencesFragment.java b/src/com/android/browser/preferences/BandwidthPreferencesFragment.java
similarity index 92%
rename from src/com/android/swe/browser/preferences/BandwidthPreferencesFragment.java
rename to src/com/android/browser/preferences/BandwidthPreferencesFragment.java
index 1e9837e..0cb064a 100644
--- a/src/com/android/swe/browser/preferences/BandwidthPreferencesFragment.java
+++ b/src/com/android/browser/preferences/BandwidthPreferencesFragment.java
@@ -14,7 +14,7 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.content.SharedPreferences;
 import android.os.Bundle;
@@ -22,9 +22,9 @@
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.PreferenceKeys;
+import com.android.browser.BrowserSettings;
+import com.android.browser.PreferenceKeys;
+import com.android.browser.R;
 
 public class BandwidthPreferencesFragment extends PreferenceFragment {
 
diff --git a/src/com/android/swe/browser/preferences/DebugPreferencesFragment.java b/src/com/android/browser/preferences/DebugPreferencesFragment.java
similarity index 87%
rename from src/com/android/swe/browser/preferences/DebugPreferencesFragment.java
rename to src/com/android/browser/preferences/DebugPreferencesFragment.java
index b5c469d..24821d1 100644
--- a/src/com/android/swe/browser/preferences/DebugPreferencesFragment.java
+++ b/src/com/android/browser/preferences/DebugPreferencesFragment.java
@@ -14,17 +14,17 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.os.Bundle;
 import android.preference.Preference;
 import android.preference.Preference.OnPreferenceClickListener;
 import android.preference.PreferenceFragment;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.GoogleAccountLogin;
-import com.android.swe.browser.PreferenceKeys;
+import com.android.browser.BrowserSettings;
+import com.android.browser.GoogleAccountLogin;
+import com.android.browser.PreferenceKeys;
+import com.android.browser.R;
 
 public class DebugPreferencesFragment extends PreferenceFragment
         implements OnPreferenceClickListener {
diff --git a/src/com/android/swe/browser/preferences/FontSizePreview.java b/src/com/android/browser/preferences/FontSizePreview.java
similarity index 94%
rename from src/com/android/swe/browser/preferences/FontSizePreview.java
rename to src/com/android/browser/preferences/FontSizePreview.java
index a1566e3..e9d69d5 100644
--- a/src/com/android/swe/browser/preferences/FontSizePreview.java
+++ b/src/com/android/browser/preferences/FontSizePreview.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.content.Context;
 import android.content.res.Resources;
@@ -23,8 +23,8 @@
 import org.codeaurora.swe.WebSettings;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserSettings;
+import com.android.browser.BrowserSettings;
+import com.android.browser.R;
 
 public class FontSizePreview extends WebViewPreview {
 
diff --git a/src/com/android/swe/browser/preferences/GeneralPreferencesFragment.java b/src/com/android/browser/preferences/GeneralPreferencesFragment.java
similarity index 96%
rename from src/com/android/swe/browser/preferences/GeneralPreferencesFragment.java
rename to src/com/android/browser/preferences/GeneralPreferencesFragment.java
index 6cf4e97..2453f46 100644
--- a/src/com/android/swe/browser/preferences/GeneralPreferencesFragment.java
+++ b/src/com/android/browser/preferences/GeneralPreferencesFragment.java
@@ -14,7 +14,7 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.app.AlertDialog;
 import android.app.Dialog;
@@ -38,12 +38,12 @@
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserPreferencesPage;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.PreferenceKeys;
-import com.android.swe.browser.UrlUtils;
-import com.android.swe.browser.homepages.HomeProvider;
+import com.android.browser.BrowserPreferencesPage;
+import com.android.browser.BrowserSettings;
+import com.android.browser.PreferenceKeys;
+import com.android.browser.R;
+import com.android.browser.UrlUtils;
+import com.android.browser.homepages.HomeProvider;
 
 public class GeneralPreferencesFragment extends PreferenceFragment
         implements Preference.OnPreferenceChangeListener {
diff --git a/src/com/android/swe/browser/preferences/InvertedContrastPreview.java b/src/com/android/browser/preferences/InvertedContrastPreview.java
similarity index 90%
rename from src/com/android/swe/browser/preferences/InvertedContrastPreview.java
rename to src/com/android/browser/preferences/InvertedContrastPreview.java
index 5602fc7..8064c30 100644
--- a/src/com/android/swe/browser/preferences/InvertedContrastPreview.java
+++ b/src/com/android/browser/preferences/InvertedContrastPreview.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.content.Context;
 import android.text.TextUtils;
@@ -22,13 +22,13 @@
 import org.codeaurora.swe.WebSettings;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.BrowserWebView;
-import com.android.swe.browser.WebViewProperties;
+import com.android.browser.BrowserSettings;
+import com.android.browser.BrowserWebView;
+import com.android.browser.WebViewProperties;
 
 public class InvertedContrastPreview extends WebViewPreview {
 
-    static final String IMG_ROOT = "content://com.android.swe.browser.home/res/raw/";
+    static final String IMG_ROOT = "content://com.android.browser.home/res/raw/";
     static final String[] THUMBS = new String[] {
         "thumb_google",
         "thumb_amazon",
@@ -55,7 +55,7 @@
     public InvertedContrastPreview(Context context) {
         super(context);
     }
-
+    
     @Override
     protected void init(Context context) {
         super.init(context);
diff --git a/src/com/android/swe/browser/preferences/LabPreferencesFragment.java b/src/com/android/browser/preferences/LabPreferencesFragment.java
similarity index 81%
rename from src/com/android/swe/browser/preferences/LabPreferencesFragment.java
rename to src/com/android/browser/preferences/LabPreferencesFragment.java
index fd68fb0..222b5fa 100644
--- a/src/com/android/swe/browser/preferences/LabPreferencesFragment.java
+++ b/src/com/android/browser/preferences/LabPreferencesFragment.java
@@ -14,16 +14,16 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.os.Bundle;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.PreferenceKeys;
-import com.android.swe.browser.search.SearchEngine;
+import com.android.browser.BrowserSettings;
+import com.android.browser.PreferenceKeys;
+import com.android.browser.R;
+import com.android.browser.search.SearchEngine;
 
 public class LabPreferencesFragment extends PreferenceFragment {
 
diff --git a/src/com/android/swe/browser/preferences/NonformattingListPreference.java b/src/com/android/browser/preferences/NonformattingListPreference.java
similarity index 96%
rename from src/com/android/swe/browser/preferences/NonformattingListPreference.java
rename to src/com/android/browser/preferences/NonformattingListPreference.java
index 85dba74..51b3231 100644
--- a/src/com/android/swe/browser/preferences/NonformattingListPreference.java
+++ b/src/com/android/browser/preferences/NonformattingListPreference.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.content.Context;
 import android.preference.ListPreference;
diff --git a/src/com/android/swe/browser/preferences/PrivacySecurityPreferencesFragment.java b/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
similarity index 93%
rename from src/com/android/swe/browser/preferences/PrivacySecurityPreferencesFragment.java
rename to src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
index 9a57c1f..35e6e43 100644
--- a/src/com/android/swe/browser/preferences/PrivacySecurityPreferencesFragment.java
+++ b/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
@@ -14,10 +14,10 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.PreferenceKeys;
+import com.android.browser.PreferenceKeys;
+import com.android.browser.R;
 
 import android.app.Activity;
 import android.content.Intent;
diff --git a/src/com/android/swe/browser/preferences/SeekBarSummaryPreference.java b/src/com/android/browser/preferences/SeekBarSummaryPreference.java
similarity index 91%
rename from src/com/android/swe/browser/preferences/SeekBarSummaryPreference.java
rename to src/com/android/browser/preferences/SeekBarSummaryPreference.java
index 7db4349..5cb8ae6 100644
--- a/src/com/android/swe/browser/preferences/SeekBarSummaryPreference.java
+++ b/src/com/android/browser/preferences/SeekBarSummaryPreference.java
@@ -14,10 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.content.Context;
-import com.android.swe.browser.platformsupport.SeekBarPreference;
+
+import com.android.browser.platformsupport.SeekBarPreference;
+
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
@@ -47,7 +49,7 @@
     }
 
     void init() {
-        setWidgetLayoutResource(com.android.swe.browser.R.layout.font_size_widget);
+        setWidgetLayoutResource(com.android.browser.R.layout.font_size_widget);
     }
 
     @Override
@@ -66,7 +68,7 @@
     @Override
     protected void onBindView(View view) {
         super.onBindView(view);
-        mSummaryView = (TextView) view.findViewById(com.android.swe.browser.R.id.text);
+        mSummaryView = (TextView) view.findViewById(com.android.browser.R.id.text);
         if (TextUtils.isEmpty(mSummary)) {
             mSummaryView.setVisibility(View.GONE);
         } else {
diff --git a/src/com/android/swe/browser/preferences/WebViewPreview.java b/src/com/android/browser/preferences/WebViewPreview.java
similarity index 97%
rename from src/com/android/swe/browser/preferences/WebViewPreview.java
rename to src/com/android/browser/preferences/WebViewPreview.java
index c017609..ce24ac3 100644
--- a/src/com/android/swe/browser/preferences/WebViewPreview.java
+++ b/src/com/android/browser/preferences/WebViewPreview.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.content.Context;
 import android.content.SharedPreferences;
@@ -26,7 +26,7 @@
 import android.view.ViewGroup;
 import org.codeaurora.swe.WebView;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 public abstract class WebViewPreview extends Preference
         implements OnSharedPreferenceChangeListener {
diff --git a/src/com/android/swe/browser/preferences/WebsiteSettingsFragment.java b/src/com/android/browser/preferences/WebsiteSettingsFragment.java
similarity index 99%
rename from src/com/android/swe/browser/preferences/WebsiteSettingsFragment.java
rename to src/com/android/browser/preferences/WebsiteSettingsFragment.java
index 88d1c7c..a621dec 100644
--- a/src/com/android/swe/browser/preferences/WebsiteSettingsFragment.java
+++ b/src/com/android/browser/preferences/WebsiteSettingsFragment.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.preferences;
+package com.android.browser.preferences;
 
 import android.app.AlertDialog;
 import android.app.ListFragment;
@@ -40,9 +40,9 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.WebStorageSizeManager;
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.R;
+import com.android.browser.WebStorageSizeManager;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
 
 import java.util.HashMap;
 import java.util.HashSet;
diff --git a/src/com/android/swe/browser/provider/BrowserProvider.java b/src/com/android/browser/provider/BrowserProvider.java
similarity index 99%
rename from src/com/android/swe/browser/provider/BrowserProvider.java
rename to src/com/android/browser/provider/BrowserProvider.java
index 11f903f..744032c 100644
--- a/src/com/android/swe/browser/provider/BrowserProvider.java
+++ b/src/com/android/browser/provider/BrowserProvider.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.provider;
+package com.android.browser.provider;
 
 import android.app.SearchManager;
 import android.app.backup.BackupManager;
@@ -42,9 +42,9 @@
 import android.util.Log;
 import android.util.Patterns;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.search.SearchEngine;
+import com.android.browser.BrowserSettings;
+import com.android.browser.R;
+import com.android.browser.search.SearchEngine;
 
 import java.io.File;
 import java.io.FilenameFilter;
diff --git a/src/com/android/swe/browser/provider/BrowserProvider2.java b/src/com/android/browser/provider/BrowserProvider2.java
similarity index 98%
rename from src/com/android/swe/browser/provider/BrowserProvider2.java
rename to src/com/android/browser/provider/BrowserProvider2.java
index 362e7ad..cbb39b6 100644
--- a/src/com/android/swe/browser/provider/BrowserProvider2.java
+++ b/src/com/android/browser/provider/BrowserProvider2.java
@@ -14,7 +14,7 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.provider;
+package com.android.browser.provider;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
@@ -43,23 +43,23 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.UrlUtils;
-import com.android.swe.browser.platformsupport.BookmarkColumns;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.SyncStateContentProviderHelper;
-import com.android.swe.browser.platformsupport.BrowserContract.Accounts;
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
-import com.android.swe.browser.platformsupport.BrowserContract.ChromeSyncColumns;
-import com.android.swe.browser.platformsupport.BrowserContract.Combined;
-import com.android.swe.browser.platformsupport.BrowserContract.History;
-import com.android.swe.browser.platformsupport.BrowserContract.Images;
-import com.android.swe.browser.platformsupport.BrowserContract.Searches;
-import com.android.swe.browser.platformsupport.BrowserContract.Settings;
-import com.android.swe.browser.platformsupport.BrowserContract.SyncState;
-import com.android.swe.browser.reflect.ReflectHelper;
-import com.android.swe.browser.widget.BookmarkThumbnailWidgetProvider;
+import com.android.browser.BrowserSettings;
+import com.android.browser.R;
+import com.android.browser.UrlUtils;
+import com.android.browser.platformsupport.BookmarkColumns;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.SyncStateContentProviderHelper;
+import com.android.browser.platformsupport.BrowserContract.Accounts;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.platformsupport.BrowserContract.ChromeSyncColumns;
+import com.android.browser.platformsupport.BrowserContract.Combined;
+import com.android.browser.platformsupport.BrowserContract.History;
+import com.android.browser.platformsupport.BrowserContract.Images;
+import com.android.browser.platformsupport.BrowserContract.Searches;
+import com.android.browser.platformsupport.BrowserContract.Settings;
+import com.android.browser.platformsupport.BrowserContract.SyncState;
+import com.android.browser.reflect.ReflectHelper;
+import com.android.browser.widget.BookmarkThumbnailWidgetProvider;
 import com.google.common.annotations.VisibleForTesting;
 
 import java.io.ByteArrayOutputStream;
@@ -76,7 +76,7 @@
     public static final String PARAM_GROUP_BY = "groupBy";
     public static final String PARAM_ALLOW_EMPTY_ACCOUNTS = "allowEmptyAccounts";
 
-    public static final String LEGACY_AUTHORITY = "swebrowser";
+    public static final String LEGACY_AUTHORITY = "browser";
     static final Uri LEGACY_AUTHORITY_URI = new Uri.Builder()
             .authority(LEGACY_AUTHORITY).scheme("content").build();
 
@@ -736,7 +736,7 @@
             Context mResPackageCtx = null;
             try {
                 mResPackageCtx = getContext().createPackageContext(
-                    "com.android.swe.browser.res",
+                    "com.android.browser.res",
                     Context.CONTEXT_IGNORE_SECURITY);
             } catch (Exception e) {
                 Log.e(TAG, "Create Res Apk Failed");
@@ -749,9 +749,9 @@
             Resources res = mResPackageCtx.getResources();
             int resBookmarksID = res.getIdentifier("bookmarks",
                                                    "array",
-                                                   "com.android.swe.browser.res");
+                                                   "com.android.browser.res");
             int resPreloadsID = res.getIdentifier("bookmark_preloads", "array",
-                    "com.android.swe.browser.res");
+                    "com.android.browser.res");
             if (resBookmarksID != 0 && resPreloadsID != 0) {
                 bookmarks = res.getTextArray(resBookmarksID);
                 preloads = res.obtainTypedArray(resPreloadsID);
diff --git a/src/com/android/swe/browser/provider/MyNavigationProvider.java b/src/com/android/browser/provider/MyNavigationProvider.java
similarity index 96%
rename from src/com/android/swe/browser/provider/MyNavigationProvider.java
rename to src/com/android/browser/provider/MyNavigationProvider.java
index c075e38..4cd3391 100755
--- a/src/com/android/swe/browser/provider/MyNavigationProvider.java
+++ b/src/com/android/browser/provider/MyNavigationProvider.java
@@ -27,7 +27,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-package com.android.swe.browser.provider;
+package com.android.browser.provider;
 
 import android.content.Context;
 import android.content.ContentProvider;
@@ -55,12 +55,13 @@
 import java.io.InputStream;
 import java.io.PipedInputStream;
 import java.io.PipedOutputStream;
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserSettings;
-import com.android.swe.browser.homepages.RequestHandler;
-import com.android.swe.browser.mynavigation.MyNavigationRequestHandler;
-import com.android.swe.browser.mynavigation.MyNavigationUtil;
-import com.android.swe.browser.provider.BrowserProvider2;
+
+import com.android.browser.BrowserSettings;
+import com.android.browser.R;
+import com.android.browser.homepages.RequestHandler;
+import com.android.browser.mynavigation.MyNavigationRequestHandler;
+import com.android.browser.mynavigation.MyNavigationUtil;
+import com.android.browser.provider.BrowserProvider2;
 
 public class MyNavigationProvider extends ContentProvider {
 
diff --git a/src/com/android/swe/browser/provider/SQLiteContentProvider.java b/src/com/android/browser/provider/SQLiteContentProvider.java
similarity index 99%
rename from src/com/android/swe/browser/provider/SQLiteContentProvider.java
rename to src/com/android/browser/provider/SQLiteContentProvider.java
index 056017e..75e298e 100644
--- a/src/com/android/swe/browser/provider/SQLiteContentProvider.java
+++ b/src/com/android/browser/provider/SQLiteContentProvider.java
@@ -14,7 +14,7 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.provider;
+package com.android.browser.provider;
 
 import android.content.ContentProvider;
 import android.content.ContentProviderOperation;
diff --git a/src/com/android/swe/browser/provider/SnapshotProvider.java b/src/com/android/browser/provider/SnapshotProvider.java
similarity index 98%
rename from src/com/android/swe/browser/provider/SnapshotProvider.java
rename to src/com/android/browser/provider/SnapshotProvider.java
index f484ce7..3226c11 100644
--- a/src/com/android/swe/browser/provider/SnapshotProvider.java
+++ b/src/com/android/browser/provider/SnapshotProvider.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.provider;
+package com.android.browser.provider;
 
 import android.content.ContentProvider;
 import android.content.ContentUris;
@@ -27,7 +27,7 @@
 import android.database.sqlite.SQLiteQueryBuilder;
 import android.net.Uri;
 
-import com.android.swe.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract;
 
 import android.text.TextUtils;
 
@@ -55,7 +55,7 @@
         public static final String VIEWSTATE_SIZE = "viewstate_size";
     }
 
-    public static final String AUTHORITY = "com.android.swe.browser.snapshots";
+    public static final String AUTHORITY = "com.android.browser.snapshots";
     public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
 
     static final String TABLE_SNAPSHOTS = "snapshots";
diff --git a/src/com/android/swe/browser/reflect/ReflectHelper.java b/src/com/android/browser/reflect/ReflectHelper.java
similarity index 99%
rename from src/com/android/swe/browser/reflect/ReflectHelper.java
rename to src/com/android/browser/reflect/ReflectHelper.java
index ffae7d3..5a5f2ae 100644
--- a/src/com/android/swe/browser/reflect/ReflectHelper.java
+++ b/src/com/android/browser/reflect/ReflectHelper.java
@@ -28,7 +28,7 @@
  *
  */
 
-package com.android.swe.browser.reflect;
+package com.android.browser.reflect;
 
 import android.util.Log;
 
diff --git a/src/com/android/swe/browser/search/DefaultSearchEngine.java b/src/com/android/browser/search/DefaultSearchEngine.java
similarity index 97%
rename from src/com/android/swe/browser/search/DefaultSearchEngine.java
rename to src/com/android/browser/search/DefaultSearchEngine.java
index f7047cc..7613377 100644
--- a/src/com/android/swe/browser/search/DefaultSearchEngine.java
+++ b/src/com/android/browser/search/DefaultSearchEngine.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.search;
+package com.android.browser.search;
 
 import android.app.PendingIntent;
 import android.app.SearchManager;
@@ -29,7 +29,8 @@
 import android.provider.Browser;
 import android.text.TextUtils;
 import android.util.Log;
-import com.android.swe.browser.reflect.ReflectHelper;
+
+import com.android.browser.reflect.ReflectHelper;
 
 public class DefaultSearchEngine implements SearchEngine {
 
diff --git a/src/com/android/swe/browser/search/OpenSearchSearchEngine.java b/src/com/android/browser/search/OpenSearchSearchEngine.java
similarity index 99%
rename from src/com/android/swe/browser/search/OpenSearchSearchEngine.java
rename to src/com/android/browser/search/OpenSearchSearchEngine.java
index 986c40a..e600aa9 100644
--- a/src/com/android/swe/browser/search/OpenSearchSearchEngine.java
+++ b/src/com/android/browser/search/OpenSearchSearchEngine.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.search;
+package com.android.browser.search;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import org.apache.http.HttpResponse;
 import org.apache.http.client.HttpClient;
diff --git a/src/com/android/swe/browser/search/SearchEngine.java b/src/com/android/browser/search/SearchEngine.java
similarity index 97%
rename from src/com/android/swe/browser/search/SearchEngine.java
rename to src/com/android/browser/search/SearchEngine.java
index 83c4503..8f2d58d 100644
--- a/src/com/android/swe/browser/search/SearchEngine.java
+++ b/src/com/android/browser/search/SearchEngine.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.search;
+package com.android.browser.search;
 
 import android.content.Context;
 import android.database.Cursor;
diff --git a/src/com/android/swe/browser/search/SearchEngineInfo.java b/src/com/android/browser/search/SearchEngineInfo.java
similarity index 98%
rename from src/com/android/swe/browser/search/SearchEngineInfo.java
rename to src/com/android/browser/search/SearchEngineInfo.java
index eea11cf..ec304f6 100644
--- a/src/com/android/swe/browser/search/SearchEngineInfo.java
+++ b/src/com/android/browser/search/SearchEngineInfo.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.search;
+package com.android.browser.search;
 
 import android.content.Context;
 import android.content.res.Resources;
@@ -21,7 +21,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import java.net.URLEncoder;
 import java.util.Arrays;
diff --git a/src/com/android/swe/browser/search/SearchEnginePreference.java b/src/com/android/browser/search/SearchEnginePreference.java
similarity index 97%
rename from src/com/android/swe/browser/search/SearchEnginePreference.java
rename to src/com/android/browser/search/SearchEnginePreference.java
index 2eb0c2c..62ce97b 100644
--- a/src/com/android/swe/browser/search/SearchEnginePreference.java
+++ b/src/com/android/browser/search/SearchEnginePreference.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.search;
+package com.android.browser.search;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.app.SearchManager;
 import android.content.ComponentName;
diff --git a/src/com/android/swe/browser/search/SearchEngines.java b/src/com/android/browser/search/SearchEngines.java
similarity index 95%
rename from src/com/android/swe/browser/search/SearchEngines.java
rename to src/com/android/browser/search/SearchEngines.java
index a2e9619..dff5f62 100644
--- a/src/com/android/swe/browser/search/SearchEngines.java
+++ b/src/com/android/browser/search/SearchEngines.java
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.search;
+package com.android.browser.search;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
+import com.android.browser.reflect.ReflectHelper;
 
 import android.content.Context;
 import android.content.res.Resources;
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.swe.browser.reflect.ReflectHelper;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/com/android/swe/browser/stub/NullController.java b/src/com/android/browser/stub/NullController.java
similarity index 96%
rename from src/com/android/swe/browser/stub/NullController.java
rename to src/com/android/browser/stub/NullController.java
index 8c53662..149fe4e 100644
--- a/src/com/android/swe/browser/stub/NullController.java
+++ b/src/com/android/browser/stub/NullController.java
@@ -1,4 +1,4 @@
-package com.android.swe.browser.stub;
+package com.android.browser.stub;
 
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -12,7 +12,7 @@
 import android.view.View;
 import android.view.ContextMenu.ContextMenuInfo;
 
-import com.android.swe.browser.ActivityController;
+import com.android.browser.ActivityController;
 
 
 public class NullController implements ActivityController {
diff --git a/src/com/android/swe/browser/util/ThreadedCursorAdapter.java b/src/com/android/browser/util/ThreadedCursorAdapter.java
similarity index 98%
rename from src/com/android/swe/browser/util/ThreadedCursorAdapter.java
rename to src/com/android/browser/util/ThreadedCursorAdapter.java
index bc3c7d8..f07a375 100644
--- a/src/com/android/swe/browser/util/ThreadedCursorAdapter.java
+++ b/src/com/android/browser/util/ThreadedCursorAdapter.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.util;
+package com.android.browser.util;
 
 import android.content.Context;
 import android.database.Cursor;
@@ -28,7 +28,7 @@
 import android.widget.BaseAdapter;
 import android.widget.CursorAdapter;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import java.lang.ref.WeakReference;
 
diff --git a/src/com/android/swe/browser/view/BasePieView.java b/src/com/android/browser/view/BasePieView.java
similarity index 98%
rename from src/com/android/swe/browser/view/BasePieView.java
rename to src/com/android/browser/view/BasePieView.java
index d1997f0..b9178be 100644
--- a/src/com/android/swe/browser/view/BasePieView.java
+++ b/src/com/android/browser/view/BasePieView.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.database.DataSetObserver;
 import android.graphics.Canvas;
diff --git a/src/com/android/swe/browser/view/BookmarkContainer.java b/src/com/android/browser/view/BookmarkContainer.java
similarity index 98%
rename from src/com/android/swe/browser/view/BookmarkContainer.java
rename to src/com/android/browser/view/BookmarkContainer.java
index edda2c4..5175589 100644
--- a/src/com/android/swe/browser/view/BookmarkContainer.java
+++ b/src/com/android/browser/view/BookmarkContainer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
diff --git a/src/com/android/swe/browser/view/BookmarkExpandableView.java b/src/com/android/browser/view/BookmarkExpandableView.java
similarity index 98%
rename from src/com/android/swe/browser/view/BookmarkExpandableView.java
rename to src/com/android/browser/view/BookmarkExpandableView.java
index 6d6990b..763efa7 100644
--- a/src/com/android/swe/browser/view/BookmarkExpandableView.java
+++ b/src/com/android/browser/view/BookmarkExpandableView.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.content.Context;
 import android.database.DataSetObserver;
@@ -31,10 +31,10 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BreadCrumbView;
-import com.android.swe.browser.BrowserBookmarksAdapter;
-import com.android.swe.browser.platformsupport.BrowserContract;
+import com.android.browser.BreadCrumbView;
+import com.android.browser.BrowserBookmarksAdapter;
+import com.android.browser.R;
+import com.android.browser.platformsupport.BrowserContract;
 
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/src/com/android/swe/browser/view/CustomScreenLinearLayout.java b/src/com/android/browser/view/CustomScreenLinearLayout.java
similarity index 97%
rename from src/com/android/swe/browser/view/CustomScreenLinearLayout.java
rename to src/com/android/browser/view/CustomScreenLinearLayout.java
index 93cd16e..f5341e8 100644
--- a/src/com/android/swe/browser/view/CustomScreenLinearLayout.java
+++ b/src/com/android/browser/view/CustomScreenLinearLayout.java
@@ -15,7 +15,7 @@
  */
 
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.content.Context;
 import android.util.AttributeSet;
diff --git a/src/com/android/swe/browser/view/EventRedirectingFrameLayout.java b/src/com/android/browser/view/EventRedirectingFrameLayout.java
similarity index 97%
rename from src/com/android/swe/browser/view/EventRedirectingFrameLayout.java
rename to src/com/android/browser/view/EventRedirectingFrameLayout.java
index 1e7d686..901b021 100644
--- a/src/com/android/swe/browser/view/EventRedirectingFrameLayout.java
+++ b/src/com/android/browser/view/EventRedirectingFrameLayout.java
@@ -14,7 +14,7 @@
  * limitations under the License
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.content.Context;
 import android.util.AttributeSet;
diff --git a/src/com/android/swe/browser/view/PieItem.java b/src/com/android/browser/view/PieItem.java
similarity index 97%
rename from src/com/android/swe/browser/view/PieItem.java
rename to src/com/android/browser/view/PieItem.java
index 31e3413..9e04ecb 100644
--- a/src/com/android/swe/browser/view/PieItem.java
+++ b/src/com/android/browser/view/PieItem.java
@@ -14,11 +14,11 @@
  * the License.
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.view.View;
 
-import com.android.swe.browser.view.PieMenu.PieView;
+import com.android.browser.view.PieMenu.PieView;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/com/android/swe/browser/view/PieListView.java b/src/com/android/browser/view/PieListView.java
similarity index 96%
rename from src/com/android/swe/browser/view/PieListView.java
rename to src/com/android/browser/view/PieListView.java
index 3cd4371..1043fc7 100644
--- a/src/com/android/swe/browser/view/PieListView.java
+++ b/src/com/android/browser/view/PieListView.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.Context;
 import android.graphics.Canvas;
diff --git a/src/com/android/swe/browser/view/PieMenu.java b/src/com/android/browser/view/PieMenu.java
similarity index 99%
rename from src/com/android/swe/browser/view/PieMenu.java
rename to src/com/android/browser/view/PieMenu.java
index a9a9de3..1699c27 100644
--- a/src/com/android/swe/browser/view/PieMenu.java
+++ b/src/com/android/browser/view/PieMenu.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.animation.Animator;
 import android.animation.Animator.AnimatorListener;
@@ -37,7 +37,7 @@
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/com/android/swe/browser/view/PieStackView.java b/src/com/android/browser/view/PieStackView.java
similarity index 97%
rename from src/com/android/swe/browser/view/PieStackView.java
rename to src/com/android/browser/view/PieStackView.java
index a9f3e30..e1f41bd 100644
--- a/src/com/android/swe/browser/view/PieStackView.java
+++ b/src/com/android/browser/view/PieStackView.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.Context;
 import android.graphics.Canvas;
diff --git a/src/com/android/swe/browser/view/ScrollerView.java b/src/com/android/browser/view/ScrollerView.java
similarity index 99%
rename from src/com/android/swe/browser/view/ScrollerView.java
rename to src/com/android/browser/view/ScrollerView.java
index 252c6d5..7e5a4c8 100644
--- a/src/com/android/swe/browser/view/ScrollerView.java
+++ b/src/com/android/browser/view/ScrollerView.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.content.Context;
 import android.graphics.PointF;
diff --git a/src/com/android/swe/browser/view/SnapshotGridView.java b/src/com/android/browser/view/SnapshotGridView.java
similarity index 97%
rename from src/com/android/swe/browser/view/SnapshotGridView.java
rename to src/com/android/browser/view/SnapshotGridView.java
index 4c87e02..ab12060 100644
--- a/src/com/android/swe/browser/view/SnapshotGridView.java
+++ b/src/com/android/browser/view/SnapshotGridView.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
 import android.content.Context;
 import android.util.AttributeSet;
diff --git a/src/com/android/swe/browser/view/StopProgressView.java b/src/com/android/browser/view/StopProgressView.java
similarity index 96%
rename from src/com/android/swe/browser/view/StopProgressView.java
rename to src/com/android/browser/view/StopProgressView.java
index cd479d5..3df099d 100644
--- a/src/com/android/swe/browser/view/StopProgressView.java
+++ b/src/com/android/browser/view/StopProgressView.java
@@ -1,7 +1,7 @@
 
-package com.android.swe.browser.view;
+package com.android.browser.view;
 
-import com.android.swe.browser.R;
+import com.android.browser.R;
 
 import android.content.Context;
 import android.graphics.Canvas;
diff --git a/src/com/android/swe/browser/widget/BookmarkThumbnailWidgetProvider.java b/src/com/android/browser/widget/BookmarkThumbnailWidgetProvider.java
similarity index 95%
rename from src/com/android/swe/browser/widget/BookmarkThumbnailWidgetProvider.java
rename to src/com/android/browser/widget/BookmarkThumbnailWidgetProvider.java
index 5184a22..f3d2675 100644
--- a/src/com/android/swe/browser/widget/BookmarkThumbnailWidgetProvider.java
+++ b/src/com/android/browser/widget/BookmarkThumbnailWidgetProvider.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.widget;
+package com.android.browser.widget;
 
 import android.app.PendingIntent;
 import android.appwidget.AppWidgetManager;
@@ -25,15 +25,15 @@
 import android.net.Uri;
 import android.widget.RemoteViews;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserActivity;
+import com.android.browser.BrowserActivity;
+import com.android.browser.R;
 
 /**
  * Widget that shows a preview of the user's bookmarks.
  */
 public class BookmarkThumbnailWidgetProvider extends AppWidgetProvider {
     public static final String ACTION_BOOKMARK_APPWIDGET_UPDATE =
-        "com.android.swe.browser.BOOKMARK_APPWIDGET_UPDATE";
+        "com.android.browser.BOOKMARK_APPWIDGET_UPDATE";
 
     @Override
     public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/swe/browser/widget/BookmarkThumbnailWidgetService.java b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
similarity index 96%
rename from src/com/android/swe/browser/widget/BookmarkThumbnailWidgetService.java
rename to src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
index c264f40..6f5e3b2 100644
--- a/src/com/android/swe/browser/widget/BookmarkThumbnailWidgetService.java
+++ b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.widget;
+package com.android.browser.widget;
 
 import android.appwidget.AppWidgetManager;
 import android.content.ContentUris;
@@ -34,11 +34,11 @@
 import android.widget.RemoteViews;
 import android.widget.RemoteViewsService;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.BrowserActivity;
-import com.android.swe.browser.platformsupport.BrowserContract;
-import com.android.swe.browser.platformsupport.BrowserContract.Bookmarks;
-import com.android.swe.browser.provider.BrowserProvider2;
+import com.android.browser.BrowserActivity;
+import com.android.browser.R;
+import com.android.browser.platformsupport.BrowserContract;
+import com.android.browser.platformsupport.BrowserContract.Bookmarks;
+import com.android.browser.provider.BrowserProvider2;
 
 import java.io.File;
 import java.io.FilenameFilter;
@@ -49,9 +49,7 @@
 public class BookmarkThumbnailWidgetService extends RemoteViewsService {
 
     static final String TAG = "BookmarkThumbnailWidgetService";
-    static final String ACTION_CHANGE_FOLDER
-            = "com.android.swe.browser.widget.CHANGE_FOLDER";
-
+    static final String ACTION_CHANGE_FOLDER = "com.android.browser.widget.CHANGE_FOLDER";
     static final String STATE_CURRENT_FOLDER = "current_folder";
     static final String STATE_ROOT_FOLDER = "root_folder";
 
diff --git a/src/com/android/swe/browser/widget/BookmarkWidgetConfigure.java b/src/com/android/browser/widget/BookmarkWidgetConfigure.java
similarity index 94%
rename from src/com/android/swe/browser/widget/BookmarkWidgetConfigure.java
rename to src/com/android/browser/widget/BookmarkWidgetConfigure.java
index c51dea5..2dee989 100644
--- a/src/com/android/swe/browser/widget/BookmarkWidgetConfigure.java
+++ b/src/com/android/browser/widget/BookmarkWidgetConfigure.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.widget;
+package com.android.browser.widget;
 
 import android.app.ListActivity;
 import android.app.LoaderManager.LoaderCallbacks;
@@ -30,10 +30,10 @@
 import android.widget.ArrayAdapter;
 import android.widget.ListView;
 
-import com.android.swe.browser.R;
-import com.android.swe.browser.AddBookmarkPage.BookmarkAccount;
-import com.android.swe.browser.platformsupport.BrowserContract.Accounts;
-import com.android.swe.browser.provider.BrowserProvider2;
+import com.android.browser.R;
+import com.android.browser.AddBookmarkPage.BookmarkAccount;
+import com.android.browser.platformsupport.BrowserContract.Accounts;
+import com.android.browser.provider.BrowserProvider2;
 
 public class BookmarkWidgetConfigure extends ListActivity
         implements OnClickListener, LoaderCallbacks<Cursor> {
diff --git a/src/com/android/swe/browser/widget/BookmarkWidgetProxy.java b/src/com/android/browser/widget/BookmarkWidgetProxy.java
similarity index 95%
rename from src/com/android/swe/browser/widget/BookmarkWidgetProxy.java
rename to src/com/android/browser/widget/BookmarkWidgetProxy.java
index 0667686..8ab57fc 100644
--- a/src/com/android/swe/browser/widget/BookmarkWidgetProxy.java
+++ b/src/com/android/browser/widget/BookmarkWidgetProxy.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.swe.browser.widget;
+package com.android.browser.widget;
 
-import com.android.swe.browser.BrowserActivity;
+import com.android.browser.BrowserActivity;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
