Re-land 57460 - Add hidden component app for web store.

Fixed ExtensionStartupTest which was essentially counting the number of component extensions. Now it doesn't.

Original review here: http://codereview.chromium.org/3116040

This patch adds a component which does not appear on the NTP, but does enforce that gallery urls are isolated in their own process. This is in anticipation of exposing extension api bindings to the gallery so it can install/detect/uninstall extensions & apps.

Note that this patch works correctly with the --apps-gallery-url. If specified, the replacement url will be inserted into the component app's extent

BUG=27431
TBR=aa

Review URL: http://codereview.chromium.org/3104039

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57520 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/common/extensions/extension.h b/chrome/common/extensions/extension.h
index 9c51d1a..5d993cfc 100644
--- a/chrome/common/extensions/extension.h
+++ b/chrome/common/extensions/extension.h
@@ -346,10 +346,13 @@
   const std::string omnibox_keyword() const { return omnibox_keyword_; }
 
   bool is_app() const { return is_app_; }
-  const ExtensionExtent& web_extent() const { return web_extent_; }
+  ExtensionExtent& web_extent() { return web_extent_; }
   const ExtensionExtent& browse_extent() const { return browse_extent_; }
   const std::string& launch_local_path() const { return launch_local_path_; }
   const std::string& launch_web_url() const { return launch_web_url_; }
+  void set_launch_web_url(const std::string& launch_web_url) {
+    launch_web_url_ = launch_web_url;
+  }
   LaunchContainer launch_container() const { return launch_container_; }
   bool launch_fullscreen() const { return launch_fullscreen_; }
   int launch_width() const { return launch_width_; }