Move the PageNavigator interface and GlobalRequestID struct to content\public and put them in the content namespace. Make PageNavigator use WebContents instead of TabContents. While I'm touching all the callers, I've removed the deprecated PageNavigator function and converted users to the new one.

BUG=98716
TBR=joi
Review URL: http://codereview.chromium.org/8991012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115858 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/accessibility/accessibility_win_browsertest.cc b/chrome/browser/accessibility/accessibility_win_browsertest.cc
index 89a9bdd..2135b68 100644
--- a/chrome/browser/accessibility/accessibility_win_browsertest.cc
+++ b/chrome/browser/accessibility/accessibility_win_browsertest.cc
@@ -22,6 +22,8 @@
 #include "third_party/iaccessible2/ia2_api_all.h"
 #include "third_party/isimpledom/ISimpleDOMNode.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using std::auto_ptr;
 using std::vector;
 using std::wstring;
@@ -354,8 +356,8 @@
       "data:text/html,<html><head><title>Accessibility Win Test</title></head>"
       "<body><input type='button' value='push' /><input type='checkbox' />"
       "</body></html>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
   tree_updated_observer2.Wait();
 
   // Check the browser's copy of the renderer accessibility tree.
@@ -397,8 +399,9 @@
       content::NotificationService::AllSources());
   GURL tree_url("data:text/html,<ul tabindex='-1' role='radiogroup'><li id='li'"
       ">li</li></ul>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
   GetRendererAccessible();
   tree_updated_observer1.Wait();
 
@@ -451,8 +454,9 @@
       content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED,
       content::NotificationService::AllSources());
   GURL tree_url("data:text/html,<body><input type='checkbox' /></body>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
   GetRendererAccessible();
   tree_updated_observer1.Wait();
 
@@ -487,8 +491,9 @@
   // The role attribute causes the node to be in the accessibility tree.
   GURL tree_url(
       "data:text/html,<body role=group></body>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
   GetRendererAccessible();
   tree_updated_observer1.Wait();
 
@@ -521,8 +526,9 @@
   GURL tree_url(
       "data:text/html,<div role=group style='visibility: hidden'>text"
       "</div>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
   GetRendererAccessible();
   tree_updated_observer1.Wait();
 
@@ -554,8 +560,9 @@
   // The role attribute causes the node to be in the accessibility tree.
   GURL tree_url(
       "data:text/html,<div role=group tabindex='-1'></div>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
   GetRendererAccessible();
   tree_updated_observer1.Wait();
 
@@ -605,8 +612,9 @@
       content::NotificationService::AllSources());
   GURL tree_url("data:text/html,<body><input type='text' value='old value'/>"
       "</body>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
   GetRendererAccessible();
   tree_updated_observer1.Wait();
 
@@ -648,8 +656,9 @@
       content::NotificationService::AllSources());
   GURL tree_url("data:text/html,<html><head><title>MyDocument</title></head>"
                 "<body>Content</body></html>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
   GetRendererAccessible();
   tree_updated_observer1.Wait();
 
@@ -676,8 +685,9 @@
       content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED,
       content::NotificationService::AllSources());
   GURL tree_url("data:text/html,<body><input type='checkbox' /></body>");
-  browser()->OpenURL(
-      tree_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      tree_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
   GetRendererAccessible();
   tree_updated_observer1.Wait();
 
diff --git a/chrome/browser/accessibility/dump_accessibility_tree_browsertest.cc b/chrome/browser/accessibility/dump_accessibility_tree_browsertest.cc
index b382cc9..77a7f4d 100644
--- a/chrome/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/chrome/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -22,6 +22,9 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/base/resource/resource_bundle.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 // Suffix of the expectation file corresponding to html file.
 // Example:
 // HTML test:      test-file.html
@@ -111,8 +114,8 @@
         content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED,
         content::NotificationService::AllSources());
     GURL url(kUrlPreamble + html_contents);
-    browser()->OpenURL(
-        url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
     // Wait for the tree.
     tree_updated_observer.Wait();
diff --git a/chrome/browser/alternate_nav_url_fetcher.cc b/chrome/browser/alternate_nav_url_fetcher.cc
index 7ab97c0..2747359 100644
--- a/chrome/browser/alternate_nav_url_fetcher.cc
+++ b/chrome/browser/alternate_nav_url_fetcher.cc
@@ -23,6 +23,9 @@
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 // AlternateNavInfoBarDelegate ------------------------------------------------
 
 class AlternateNavInfoBarDelegate : public LinkInfoBarDelegate {
@@ -76,12 +79,14 @@
 
 bool AlternateNavInfoBarDelegate::LinkClicked(
     WindowOpenDisposition disposition) {
-  owner()->web_contents()->OpenURL(
-      alternate_nav_url_, GURL(), disposition,
+  OpenURLParams params(
+      alternate_nav_url_, Referrer(), disposition,
       // Pretend the user typed this URL, so that navigating to
       // it will be the default action when it's typed again in
       // the future.
-      content::PAGE_TRANSITION_TYPED);
+      content::PAGE_TRANSITION_TYPED,
+      false);
+  owner()->web_contents()->OpenURL(params);
 
   // We should always close, even if the navigation did not occur within this
   // TabContents.
diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc
index a64aa52..c927544 100644
--- a/chrome/browser/automation/testing_automation_provider.cc
+++ b/chrome/browser/automation/testing_automation_provider.cc
@@ -154,6 +154,8 @@
 using content::DownloadItem;
 using content::DownloadManager;
 using content::PluginService;
+using content::OpenURLParams;
+using content::Referrer;
 using content::SSLStatus;
 using content::WebContents;
 
@@ -632,8 +634,9 @@
                                          number_of_navigations, false, false);
 
       // TODO(darin): avoid conversion to GURL.
-      browser->OpenURL(
-          url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+      OpenURLParams params(
+          url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false);
+      browser->OpenURL(params);
       return;
     }
   }
@@ -666,8 +669,9 @@
     if (browser) {
       // Don't add any listener unless a callback mechanism is desired.
       // TODO(vibhor): Do this if such a requirement arises in future.
-      browser->OpenURL(
-          url, GURL(), disposition, content::PAGE_TRANSITION_TYPED);
+      OpenURLParams params(
+          url, Referrer(), disposition, content::PAGE_TRANSITION_TYPED, false);
+      browser->OpenURL(params);
       *status = true;
     }
   }
diff --git a/chrome/browser/bookmarks/bookmark_context_menu_controller.cc b/chrome/browser/bookmarks/bookmark_context_menu_controller.cc
index bf3736e..558fcba 100644
--- a/chrome/browser/bookmarks/bookmark_context_menu_controller.cc
+++ b/chrome/browser/bookmarks/bookmark_context_menu_controller.cc
@@ -15,11 +15,12 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/common/pref_names.h"
-#include "content/browser/tab_contents/page_navigator.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/public/browser/user_metrics.h"
 #include "grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 
+using content::PageNavigator;
 using content::UserMetricsAction;
 
 BookmarkContextMenuController::BookmarkContextMenuController(
diff --git a/chrome/browser/bookmarks/bookmark_context_menu_controller.h b/chrome/browser/bookmarks/bookmark_context_menu_controller.h
index da12260e..ab8588a 100644
--- a/chrome/browser/bookmarks/bookmark_context_menu_controller.h
+++ b/chrome/browser/bookmarks/bookmark_context_menu_controller.h
@@ -13,9 +13,12 @@
 #include "ui/base/models/simple_menu_model.h"
 #include "ui/gfx/native_widget_types.h"
 
-class PageNavigator;
 class Profile;
 
+namespace content {
+class PageNavigator;
+}
+
 // An interface implemented by an object that performs actions on the actual
 // menu for the controller.
 class BookmarkContextMenuControllerDelegate {
@@ -47,7 +50,7 @@
       gfx::NativeWindow parent_window,
       BookmarkContextMenuControllerDelegate* delegate,
       Profile* profile,
-      PageNavigator* navigator,
+      content::PageNavigator* navigator,
       const BookmarkNode* parent,
       const std::vector<const BookmarkNode*>& selection);
   virtual ~BookmarkContextMenuController();
@@ -66,7 +69,7 @@
 
   // Accessors:
   Profile* profile() const { return profile_; }
-  PageNavigator* navigator() const { return navigator_; }
+  content::PageNavigator* navigator() const { return navigator_; }
 
  private:
   // Adds a IDC_* style command to the menu with a localized string.
@@ -86,7 +89,7 @@
   gfx::NativeWindow parent_window_;
   BookmarkContextMenuControllerDelegate* delegate_;
   Profile* profile_;
-  PageNavigator* navigator_;
+  content::PageNavigator* navigator_;
   const BookmarkNode* parent_;
   std::vector<const BookmarkNode*> selection_;
   BookmarkModel* model_;
diff --git a/chrome/browser/bookmarks/bookmark_context_menu_controller_unittest.cc b/chrome/browser/bookmarks/bookmark_context_menu_controller_unittest.cc
index 538de7c..c2e9632 100644
--- a/chrome/browser/bookmarks/bookmark_context_menu_controller_unittest.cc
+++ b/chrome/browser/bookmarks/bookmark_context_menu_controller_unittest.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/bookmarks/bookmark_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/test/base/testing_profile.h"
-#include "content/browser/tab_contents/page_navigator.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/test/test_browser_thread.h"
 #include "grit/generated_resources.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -22,23 +22,14 @@
 #endif
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::PageNavigator;
+using content::WebContents;
 
 // PageNavigator implementation that records the URL.
 class TestingPageNavigator : public PageNavigator {
  public:
-  // Deprecated. Please use the one-argument variant.
-  // TODO(adriansc): Remove this method once refactoring changed all call
-  // sites.
-  virtual TabContents* OpenURL(const GURL& url,
-                               const GURL& referrer,
-                               WindowOpenDisposition disposition,
-                               content::PageTransition transition) OVERRIDE {
-    DCHECK(referrer.is_empty());
-    return OpenURL(OpenURLParams(url, content::Referrer(), disposition,
-                                 transition, false));
-  }
-
-  virtual TabContents* OpenURL(const OpenURLParams& params) OVERRIDE {
+  virtual WebContents* OpenURL(const OpenURLParams& params) OVERRIDE {
     urls_.push_back(params.url);
     return NULL;
   }
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc
index 0cba25c8..62cc9c76 100644
--- a/chrome/browser/bookmarks/bookmark_utils.cc
+++ b/chrome/browser/bookmarks/bookmark_utils.cc
@@ -25,8 +25,8 @@
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/common/pref_names.h"
-#include "content/browser/tab_contents/page_navigator.h"
 #include "content/browser/tab_contents/tab_contents.h"
+#include "content/public/browser/page_navigator.h"
 #include "grit/chromium_strings.h"
 #include "grit/generated_resources.h"
 #include "grit/ui_strings.h"
@@ -52,6 +52,9 @@
 #endif
 
 using base::Time;
+using content::OpenURLParams;
+using content::PageNavigator;
+using content::WebContents;
 
 namespace {
 
@@ -71,18 +74,7 @@
 
   Browser* browser() const { return browser_; }
 
-  // Deprecated. Please use one-argument variant.
-  // TODO(adriansc): Remove this method once refactoring changed all call sites.
-  virtual TabContents* OpenURL(const GURL& url,
-                               const GURL& referrer,
-                               WindowOpenDisposition disposition,
-                               content::PageTransition transition) OVERRIDE {
-    DCHECK(referrer.is_empty());
-    return OpenURL(OpenURLParams(url, content::Referrer(), disposition,
-                                 transition, false));
-  }
-
-  virtual TabContents* OpenURL(const OpenURLParams& params) OVERRIDE {
+  virtual WebContents* OpenURL(const OpenURLParams& params) OVERRIDE {
     if (!browser_) {
       Profile* profile = (params.disposition == OFF_THE_RECORD) ?
           profile_->GetOffTheRecordProfile() : profile_;
diff --git a/chrome/browser/bookmarks/bookmark_utils.h b/chrome/browser/bookmarks/bookmark_utils.h
index 4caeb0aa..67846a8 100644
--- a/chrome/browser/bookmarks/bookmark_utils.h
+++ b/chrome/browser/bookmarks/bookmark_utils.h
@@ -19,11 +19,14 @@
 class BookmarkModel;
 class BookmarkNode;
 class Browser;
-class PageNavigator;
 class PrefService;
 class Profile;
 class TabContents;
 
+namespace content {
+class PageNavigator;
+}
+
 namespace views {
 class DropTargetEvent;
 }
@@ -86,14 +89,14 @@
 // no browser with the specified profile a new one is created.
 void OpenAll(gfx::NativeWindow parent,
              Profile* profile,
-             PageNavigator* navigator,
+             content::PageNavigator* navigator,
              const std::vector<const BookmarkNode*>& nodes,
              WindowOpenDisposition initial_disposition);
 
 // Convenience for |OpenAll| with a single BookmarkNode.
 void OpenAll(gfx::NativeWindow parent,
              Profile* profile,
-             PageNavigator* navigator,
+             content::PageNavigator* navigator,
              const BookmarkNode* node,
              WindowOpenDisposition initial_disposition);
 
diff --git a/chrome/browser/browser_commands_unittest.cc b/chrome/browser/browser_commands_unittest.cc
index b5c4175..d04ae23 100644
--- a/chrome/browser/browser_commands_unittest.cc
+++ b/chrome/browser/browser_commands_unittest.cc
@@ -15,6 +15,9 @@
 
 typedef BrowserWithTestWindowTest BrowserCommandsTest;
 
+using content::OpenURLParams;
+using content::Referrer;
+
 // Tests IDC_SELECT_TAB_0, IDC_SELECT_NEXT_TAB, IDC_SELECT_PREVIOUS_TAB and
 // IDC_SELECT_LAST_TAB.
 TEST_F(BrowserCommandsTest, TabNavigationAccelerators) {
@@ -86,7 +89,8 @@
   // Navigate to a url.
   GURL url1("http://foo/1");
   AddTab(browser(), url1);
-  browser()->OpenURL(url1, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url1, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   // TODO(beng): remove this once we can use TabContentses directly in testing
   //             instead of the TestTabContents which causes this command not to
diff --git a/chrome/browser/chromeos/login/registration_screen.cc b/chrome/browser/chromeos/login/registration_screen.cc
index 4d5e1e41..2d6e104 100644
--- a/chrome/browser/chromeos/login/registration_screen.cc
+++ b/chrome/browser/chromeos/login/registration_screen.cc
@@ -20,6 +20,9 @@
 #include "net/url_request/url_request_about_job.h"
 #include "net/url_request/url_request_filter.h"
 
+using content::OpenURLParams;
+using content::WebContents;
+
 namespace chromeos {
 
 namespace {
@@ -108,7 +111,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // RegistrationScreen, content::WebContentsDelegate implementation:
 
-TabContents* RegistrationScreen::OpenURLFromTab(TabContents* source,
+WebContents* RegistrationScreen::OpenURLFromTab(WebContents* source,
                                                 const OpenURLParams& params) {
   if (params.url.spec() == kRegistrationSuccessUrl) {
     source->Stop();
diff --git a/chrome/browser/chromeos/login/registration_screen.h b/chrome/browser/chromeos/login/registration_screen.h
index cd36f979..b02bb0a 100644
--- a/chrome/browser/chromeos/login/registration_screen.h
+++ b/chrome/browser/chromeos/login/registration_screen.h
@@ -81,8 +81,9 @@
   virtual RegistrationView* AllocateView() OVERRIDE;
 
   // content::WebContentsDelegate implementation:
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+      content::WebContents* source,
+      const content::OpenURLParams& params) OVERRIDE;
 
   virtual void HandleKeyboardEvent(
       const NativeWebKeyboardEvent& event) OVERRIDE;
diff --git a/chrome/browser/chromeos/panels/panel_browsertest.cc b/chrome/browser/chromeos/panels/panel_browsertest.cc
index d48bad9..db0484ae 100644
--- a/chrome/browser/chromeos/panels/panel_browsertest.cc
+++ b/chrome/browser/chromeos/panels/panel_browsertest.cc
@@ -18,6 +18,9 @@
 #include "chrome/browser/chromeos/legacy_window_manager/wm_ipc.h"
 #endif
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace chromeos {
 
 class PanelTest : public InProcessBrowserTest {
@@ -50,7 +53,8 @@
   ui_test_utils::WindowedNotificationObserver tab_added_observer(
       content::NOTIFICATION_TAB_ADDED,
       content::NotificationService::AllSources());
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
   tab_added_observer.Wait();
 
   // Find the new browser.
@@ -100,7 +104,8 @@
   ui_test_utils::WindowedNotificationObserver tab_added_observer(
       content::NOTIFICATION_TAB_ADDED,
       content::NotificationService::AllSources());
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
   tab_added_observer.Wait();
 
   // Shouldn't find a new browser.
diff --git a/chrome/browser/crash_recovery_browsertest.cc b/chrome/browser/crash_recovery_browsertest.cc
index 6913bae..4387098 100644
--- a/chrome/browser/crash_recovery_browsertest.cc
+++ b/chrome/browser/crash_recovery_browsertest.cc
@@ -15,14 +15,18 @@
 #include "content/public/common/page_transition_types.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 void SimulateRendererCrash(Browser* browser) {
   ui_test_utils::WindowedNotificationObserver observer(
       content::NOTIFICATION_TAB_CONTENTS_DISCONNECTED,
       content::NotificationService::AllSources());
-  browser->OpenURL(GURL(chrome::kChromeUICrashURL), GURL(), CURRENT_TAB,
-                   content::PAGE_TRANSITION_TYPED);
+  browser->OpenURL(OpenURLParams(
+      GURL(chrome::kChromeUICrashURL), Referrer(), CURRENT_TAB,
+      content::PAGE_TRANSITION_TYPED, false));
   observer.Wait();
 }
 
diff --git a/chrome/browser/custom_handlers/register_protocol_handler_infobar_delegate.cc b/chrome/browser/custom_handlers/register_protocol_handler_infobar_delegate.cc
index 00ed210..2375954 100644
--- a/chrome/browser/custom_handlers/register_protocol_handler_infobar_delegate.cc
+++ b/chrome/browser/custom_handlers/register_protocol_handler_infobar_delegate.cc
@@ -14,6 +14,8 @@
 #include "grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 RegisterProtocolHandlerInfoBarDelegate::RegisterProtocolHandlerInfoBarDelegate(
@@ -93,9 +95,13 @@
     WindowOpenDisposition disposition) {
   content::RecordAction(
       UserMetricsAction("RegisterProtocolHandler.InfoBar_LearnMore"));
-  owner()->web_contents()->OpenURL(google_util::AppendGoogleLocaleParam(GURL(
-      chrome::kLearnMoreRegisterProtocolHandlerURL)), GURL(),
+  OpenURLParams params(
+      google_util::AppendGoogleLocaleParam(GURL(
+          chrome::kLearnMoreRegisterProtocolHandlerURL)),
+      Referrer(),
       (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
-      content::PAGE_TRANSITION_LINK);
+      content::PAGE_TRANSITION_LINK,
+      false);
+  owner()->web_contents()->OpenURL(params);
   return false;
 }
diff --git a/chrome/browser/debugger/devtools_window.cc b/chrome/browser/debugger/devtools_window.cc
index 324b843..a91ce99 100644
--- a/chrome/browser/debugger/devtools_window.cc
+++ b/chrome/browser/debugger/devtools_window.cc
@@ -57,6 +57,8 @@
 using content::DevToolsAgentHostRegistry;
 using content::DevToolsClientHost;
 using content::DevToolsManager;
+using content::OpenURLParams;
+using content::WebContents;
 
 const char DevToolsWindow::kDevToolsApp[] = "DevToolsApp";
 
@@ -439,7 +441,7 @@
   CallClientFunction(ASCIIToUTF16("WebInspector.addExtensions"), results);
 }
 
-TabContents* DevToolsWindow::OpenURLFromTab(TabContents* source,
+WebContents* DevToolsWindow::OpenURLFromTab(WebContents* source,
                                             const OpenURLParams& params) {
   if (inspected_tab_) {
     OpenURLParams forward_params = params;
diff --git a/chrome/browser/debugger/devtools_window.h b/chrome/browser/debugger/devtools_window.h
index 8e979ca..920eab8f 100644
--- a/chrome/browser/debugger/devtools_window.h
+++ b/chrome/browser/debugger/devtools_window.h
@@ -98,8 +98,9 @@
   void CallClientFunction(const string16& function_name,
                           const base::Value& arg);
   // Overridden from content::WebContentsDelegate.
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+      content::WebContents* source,
+      const content::OpenURLParams& params) OVERRIDE;
   virtual void AddNewContents(TabContents* source,
                               TabContents* new_contents,
                               WindowOpenDisposition disposition,
diff --git a/chrome/browser/download/download_shelf_context_menu.cc b/chrome/browser/download/download_shelf_context_menu.cc
index 9dd2167..b676e4c 100644
--- a/chrome/browser/download/download_shelf_context_menu.cc
+++ b/chrome/browser/download/download_shelf_context_menu.cc
@@ -10,13 +10,14 @@
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/common/extensions/extension.h"
 #include "chrome/common/url_constants.h"
-#include "content/browser/tab_contents/page_navigator.h"
 #include "content/public/browser/download_item.h"
 #include "content/public/browser/download_manager.h"
+#include "content/public/browser/page_navigator.h"
 #include "grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 
 using content::DownloadItem;
+using content::OpenURLParams;
 
 DownloadShelfContextMenu::~DownloadShelfContextMenu() {}
 
diff --git a/chrome/browser/extensions/extension_context_menu_model.cc b/chrome/browser/extensions/extension_context_menu_model.cc
index 2ceb38e..0670504 100644
--- a/chrome/browser/extensions/extension_context_menu_model.cc
+++ b/chrome/browser/extensions/extension_context_menu_model.cc
@@ -20,6 +20,9 @@
 #include "grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 enum MenuEntries {
   NAME = 0,
   CONFIGURE,
@@ -114,8 +117,10 @@
 
   switch (command_id) {
     case NAME: {
-      browser_->OpenURL(extension->GetHomepageURL(), GURL(),
-                        NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+      OpenURLParams params(extension->GetHomepageURL(), Referrer(),
+                           NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK,
+                           false);
+      browser_->OpenURL(params);
       break;
     }
     case CONFIGURE:
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc
index 74ef697..4444d4e 100644
--- a/chrome/browser/extensions/extension_host.cc
+++ b/chrome/browser/extensions/extension_host.cc
@@ -52,6 +52,7 @@
 
 using WebKit::WebDragOperation;
 using WebKit::WebDragOperationsMask;
+using content::OpenURLParams;
 using content::WebContents;
 
 // Helper class that rate-limits the creation of renderer processes for
@@ -395,7 +396,7 @@
   }
 }
 
-TabContents* ExtensionHost::OpenURLFromTab(TabContents* source,
+WebContents* ExtensionHost::OpenURLFromTab(WebContents* source,
                                            const OpenURLParams& params) {
   // Whitelist the dispositions we will allow to be opened.
   switch (params.disposition) {
diff --git a/chrome/browser/extensions/extension_host.h b/chrome/browser/extensions/extension_host.h
index 7951ea11..8e9e74b 100644
--- a/chrome/browser/extensions/extension_host.h
+++ b/chrome/browser/extensions/extension_host.h
@@ -117,8 +117,9 @@
   virtual void DidStopLoading() OVERRIDE;
 
   // content::WebContentsDelegate
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+      content::WebContents* source,
+      const content::OpenURLParams& params) OVERRIDE;
   virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event,
                                       bool* is_keyboard_shortcut) OVERRIDE;
   virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event)
diff --git a/chrome/browser/extensions/extension_process_manager.cc b/chrome/browser/extensions/extension_process_manager.cc
index 33e92f30..8e355c0 100644
--- a/chrome/browser/extensions/extension_process_manager.cc
+++ b/chrome/browser/extensions/extension_process_manager.cc
@@ -29,6 +29,8 @@
 #include "content/public/browser/notification_service.h"
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::Referrer;
 
 namespace {
 
@@ -213,8 +215,9 @@
     browser = Browser::GetOrCreateTabbedBrowser(profile->GetOriginalProfile());
   }
 
-  browser->OpenURL(extension->options_url(), GURL(), SINGLETON_TAB,
-                   content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(extension->options_url(), Referrer(), SINGLETON_TAB,
+                       content::PAGE_TRANSITION_LINK, false);
+  browser->OpenURL(params);
   browser->window()->Show();
   static_cast<RenderViewHostDelegate*>(browser->GetSelectedTabContents())->
       Activate();
diff --git a/chrome/browser/extensions/extension_tabs_module.cc b/chrome/browser/extensions/extension_tabs_module.cc
index 85ff76a..f31e98ae 100644
--- a/chrome/browser/extensions/extension_tabs_module.cc
+++ b/chrome/browser/extensions/extension_tabs_module.cc
@@ -60,6 +60,8 @@
 namespace keys = extension_tabs_module_constants;
 namespace errors = extension_manifest_errors;
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::WebContents;
 
 const int CaptureVisibleTabFunction::kDefaultQuality = 90;
@@ -1376,8 +1378,9 @@
   if (tab_contents->ShowingInterstitialPage()) {
     // This does as same as Browser::ReloadInternal.
     NavigationEntry* entry = tab_contents->GetController().GetActiveEntry();
-    GetCurrentBrowser()->OpenURL(entry->GetURL(), GURL(), CURRENT_TAB,
-                                 content::PAGE_TRANSITION_RELOAD);
+    OpenURLParams params(entry->GetURL(), Referrer(), CURRENT_TAB,
+                         content::PAGE_TRANSITION_RELOAD, false);
+    GetCurrentBrowser()->OpenURL(params);
   } else if (bypass_cache) {
     tab_contents->GetController().ReloadIgnoringCache(true);
   } else {
diff --git a/chrome/browser/extensions/network_delay_listener.cc b/chrome/browser/extensions/network_delay_listener.cc
index 431087a..c417e1c 100644
--- a/chrome/browser/extensions/network_delay_listener.cc
+++ b/chrome/browser/extensions/network_delay_listener.cc
@@ -18,6 +18,7 @@
 #include "net/url_request/url_request.h"
 
 using content::BrowserThread;
+using content::GlobalRequestID;
 
 NetworkDelayListener::NetworkDelayListener()
     : resource_queue_(NULL),
diff --git a/chrome/browser/extensions/network_delay_listener.h b/chrome/browser/extensions/network_delay_listener.h
index d2207cb..8ed16d60 100644
--- a/chrome/browser/extensions/network_delay_listener.h
+++ b/chrome/browser/extensions/network_delay_listener.h
@@ -17,12 +17,6 @@
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
 
-namespace net {
-class URLRequest;
-}  // namespace net
-
-struct GlobalRequestID;
-
 // This class handles delaying of resource loads that depend on unloaded
 // extensions. For each request that comes in, we check if all extensions are
 // ready for it to be loaded; if not, we delay the request.
@@ -43,7 +37,7 @@
   virtual bool ShouldDelayRequest(
       net::URLRequest* request,
       const ResourceDispatcherHostRequestInfo& request_info,
-      const GlobalRequestID& request_id) OVERRIDE;
+      const content::GlobalRequestID& request_id) OVERRIDE;
   virtual void WillShutdownResourceQueue() OVERRIDE;
 
   friend class base::RefCountedThreadSafe<NetworkDelayListener>;
diff --git a/chrome/browser/extensions/user_script_listener.cc b/chrome/browser/extensions/user_script_listener.cc
index b169f12..cc050356 100644
--- a/chrome/browser/extensions/user_script_listener.cc
+++ b/chrome/browser/extensions/user_script_listener.cc
@@ -16,6 +16,7 @@
 #include "net/url_request/url_request.h"
 
 using content::BrowserThread;
+using content::GlobalRequestID;
 
 struct UserScriptListener::ProfileData {
   // True if the user scripts contained in |url_patterns| are ready for
diff --git a/chrome/browser/extensions/user_script_listener.h b/chrome/browser/extensions/user_script_listener.h
index 8efb34bb..99ff4091 100644
--- a/chrome/browser/extensions/user_script_listener.h
+++ b/chrome/browser/extensions/user_script_listener.h
@@ -14,13 +14,16 @@
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
 
+namespace content {
+struct GlobalRequestID;
+}
+
 namespace net {
 class URLRequest;
 }  // namespace net
 
 class Extension;
 class URLPattern;
-struct GlobalRequestID;
 
 // This class handles delaying of resource loads that depend on unloaded user
 // scripts. For each request that comes in, we check if it depends on a user
@@ -43,7 +46,7 @@
   virtual bool ShouldDelayRequest(
       net::URLRequest* request,
       const ResourceDispatcherHostRequestInfo& request_info,
-      const GlobalRequestID& request_id) OVERRIDE;
+      const content::GlobalRequestID& request_id) OVERRIDE;
   virtual void WillShutdownResourceQueue() OVERRIDE;
 
   friend class base::RefCountedThreadSafe<UserScriptListener>;
diff --git a/chrome/browser/extensions/user_script_listener_unittest.cc b/chrome/browser/extensions/user_script_listener_unittest.cc
index cbba08a..b09136d 100644
--- a/chrome/browser/extensions/user_script_listener_unittest.cc
+++ b/chrome/browser/extensions/user_script_listener_unittest.cc
@@ -15,18 +15,15 @@
 #include "chrome/test/base/testing_profile.h"
 #include "content/browser/mock_resource_context.h"
 #include "content/browser/renderer_host/dummy_resource_handler.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
 #include "content/browser/renderer_host/resource_queue.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/browser/notification_service.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_test_job.h"
 #include "net/url_request/url_request_test_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-
-class Profile;
-
 using content::DummyResourceHandler;
 
 namespace {
diff --git a/chrome/browser/extensions/webstore_inline_installer.cc b/chrome/browser/extensions/webstore_inline_installer.cc
index 95056c2..598ca2b 100644
--- a/chrome/browser/extensions/webstore_inline_installer.cc
+++ b/chrome/browser/extensions/webstore_inline_installer.cc
@@ -26,6 +26,7 @@
 #include "net/url_request/url_request_status.h"
 
 using content::BrowserThread;
+using content::OpenURLParams;
 using content::WebContents;
 
 const char kManifestKey[] = "manifest";
diff --git a/chrome/browser/extensions/window_open_apitest.cc b/chrome/browser/extensions/window_open_apitest.cc
index 02a4a58..ef4e9f92 100644
--- a/chrome/browser/extensions/window_open_apitest.cc
+++ b/chrome/browser/extensions/window_open_apitest.cc
@@ -15,6 +15,9 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "net/base/mock_host_resolver.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 // Disabled, http://crbug.com/64899.
 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_WindowOpen) {
   CommandLine::ForCurrentProcess()->AppendSwitch(
@@ -160,10 +163,12 @@
       test_server()->GetURL(popup_app_contents_path + "open_popup.html")
           .ReplaceComponents(replace_host);
 
-  browser()->OpenURL(open_tab, GURL(), NEW_FOREGROUND_TAB,
-                     content::PAGE_TRANSITION_TYPED);
-  browser()->OpenURL(open_popup, GURL(), NEW_FOREGROUND_TAB,
-                     content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      open_tab, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
+  browser()->OpenURL(OpenURLParams(
+      open_popup, Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_TYPED, false));
 
   WaitForTabsAndPopups(browser(), 3, 1, 0);
 }
diff --git a/chrome/browser/external_tab_container_win.cc b/chrome/browser/external_tab_container_win.cc
index bd797c1..d9d8640 100644
--- a/chrome/browser/external_tab_container_win.cc
+++ b/chrome/browser/external_tab_container_win.cc
@@ -66,6 +66,7 @@
 #include "ui/views/layout/grid_layout.h"
 
 using content::BrowserThread;
+using content::OpenURLParams;
 using content::SSLStatus;
 using content::WebContents;
 using ui::ViewProp;
@@ -352,7 +353,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 // ExternalTabContainer, content::WebContentsDelegate implementation:
 
-TabContents* ExternalTabContainer::OpenURLFromTab(TabContents* source,
+WebContents* ExternalTabContainer::OpenURLFromTab(WebContents* source,
                                                   const OpenURLParams& params) {
   if (pending()) {
     pending_open_url_requests_.push_back(params);
@@ -1186,8 +1187,8 @@
   DVLOG(1) << __FUNCTION__;
 }
 
-TabContents* TemporaryPopupExternalTabContainer::OpenURLFromTab(
-    TabContents* source,
+WebContents* TemporaryPopupExternalTabContainer::OpenURLFromTab(
+    WebContents* source,
     const OpenURLParams& params) {
   if (!automation_)
     return NULL;
@@ -1197,7 +1198,7 @@
     DCHECK(route_all_top_level_navigations_);
     forward_params.disposition = NEW_FOREGROUND_TAB;
   }
-  TabContents* new_contents =
+  WebContents* new_contents =
       ExternalTabContainer::OpenURLFromTab(source, forward_params);
   // support only one navigation for a dummy tab before it is killed.
   ::DestroyWindow(GetNativeView());
diff --git a/chrome/browser/external_tab_container_win.h b/chrome/browser/external_tab_container_win.h
index 8f41759..554e9ab1 100644
--- a/chrome/browser/external_tab_container_win.h
+++ b/chrome/browser/external_tab_container_win.h
@@ -120,9 +120,9 @@
   static ExternalTabContainer* GetContainerForTab(HWND tab_window);
 
   // Overridden from content::WebContentsDelegate:
-
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+      content::WebContents* source,
+      const content::OpenURLParams& params) OVERRIDE;
   virtual void NavigationStateChanged(const TabContents* source,
                                       unsigned changed_flags) OVERRIDE;
   virtual void AddNewContents(TabContents* source,
@@ -319,7 +319,7 @@
   // attach tab request.
   // Contains the list of URL requests which are pending waiting for an ack
   // from the external host.
-  std::vector<OpenURLParams> pending_open_url_requests_;
+  std::vector<content::OpenURLParams> pending_open_url_requests_;
 
   // Set to true if the ExternalTabContainer instance is waiting for an ack
   // from the host.
@@ -368,8 +368,9 @@
   virtual void Observe(int type, const content::NotificationSource& source,
                        const content::NotificationDetails& details) {}
 
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+    content::WebContents* source,
+    const content::OpenURLParams& params) OVERRIDE;
 
   virtual void NavigationStateChanged(const TabContents* source,
                                       unsigned changed_flags) {
diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
index 63c7771..e09253d 100644
--- a/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
+++ b/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
@@ -40,9 +40,11 @@
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
 
-using content::BrowserThread;
-using content::WebContents;
 using WebKit::WebSecurityOrigin;
+using content::BrowserThread;
+using content::OpenURLParams;
+using content::Referrer;
+using content::WebContents;
 
 // GeolocationInfoBarQueueController ------------------------------------------
 
@@ -244,10 +246,12 @@
       "https://www.google.com/support/chrome/bin/answer.py?answer=142065";
 #endif
 
-  owner()->web_contents()->OpenURL(
+  OpenURLParams params(
       google_util::AppendGoogleLocaleParam(GURL(kGeolocationLearnMoreUrl)),
-      GURL(), (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
-      content::PAGE_TRANSITION_LINK);
+      Referrer(),
+      (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
+      content::PAGE_TRANSITION_LINK, false);
+  owner()->web_contents()->OpenURL(params);
   return false;  // Do not dismiss the info bar.
 }
 
diff --git a/chrome/browser/google/google_url_tracker.cc b/chrome/browser/google/google_url_tracker.cc
index cd5e0fcc..ee7aacb 100644
--- a/chrome/browser/google/google_url_tracker.cc
+++ b/chrome/browser/google/google_url_tracker.cc
@@ -32,6 +32,9 @@
 #include "net/url_request/url_request_status.h"
 #include "ui/base/l10n/l10n_util.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 InfoBarDelegate* CreateInfobar(InfoBarTabHelper* infobar_helper,
@@ -73,10 +76,13 @@
 
 bool GoogleURLTrackerInfoBarDelegate::LinkClicked(
     WindowOpenDisposition disposition) {
-  owner()->web_contents()->OpenURL(google_util::AppendGoogleLocaleParam(GURL(
-      "https://www.google.com/support/chrome/bin/answer.py?answer=1618699")),
-      GURL(), (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
-      content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      google_util::AppendGoogleLocaleParam(GURL(
+          "https://www.google.com/support/chrome/bin/answer.py?answer=1618699")),
+      Referrer(),
+      (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
+      content::PAGE_TRANSITION_LINK, false);
+  owner()->web_contents()->OpenURL(params);
   return false;
 }
 
@@ -304,9 +310,11 @@
   replacements.SetHost(google_url_.host().data(),
                        url_parse::Component(0, google_url_.host().length()));
   GURL new_search_url(search_url_.ReplaceComponents(replacements));
-  if (new_search_url.is_valid())
-    controller_->tab_contents()->OpenURL(new_search_url, GURL(), CURRENT_TAB,
-                                         content::PAGE_TRANSITION_GENERATED);
+  if (new_search_url.is_valid()) {
+    OpenURLParams params(new_search_url, Referrer(), CURRENT_TAB,
+                         content::PAGE_TRANSITION_GENERATED, false);
+    controller_->tab_contents()->OpenURL(params);
+  }
 }
 
 void GoogleURLTracker::Observe(int type,
diff --git a/chrome/browser/oom_priority_manager_browsertest.cc b/chrome/browser/oom_priority_manager_browsertest.cc
index a2b5f763..e8da7a0b 100644
--- a/chrome/browser/oom_priority_manager_browsertest.cc
+++ b/chrome/browser/oom_priority_manager_browsertest.cc
@@ -12,6 +12,8 @@
 #include "content/public/browser/notification_types.h"
 #include "googleurl/src/gurl.h"
 
+using content::OpenURLParams;
+
 namespace {
 
 class OomPriorityManagerTest : public InProcessBrowserTest {
diff --git a/chrome/browser/plugin_installer_infobar_delegate.cc b/chrome/browser/plugin_installer_infobar_delegate.cc
index daaf1b94..9c29b6b 100644
--- a/chrome/browser/plugin_installer_infobar_delegate.cc
+++ b/chrome/browser/plugin_installer_infobar_delegate.cc
@@ -14,6 +14,9 @@
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 PluginInstallerInfoBarDelegate::PluginInstallerInfoBarDelegate(
     InfoBarTabHelper* infobar_helper,
     const string16& plugin_name,
@@ -73,9 +76,11 @@
     url = google_util::AppendGoogleLocaleParam(GURL(
       "https://www.google.com/support/chrome/bin/answer.py?answer=142064"));
   }
-  owner()->web_contents()->OpenURL(
-      url, GURL(),
+
+  OpenURLParams params(
+      url, Referrer(),
       (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
-      content::PAGE_TRANSITION_LINK);
+      content::PAGE_TRANSITION_LINK, false);
+  owner()->web_contents()->OpenURL(params);
   return false;
 }
diff --git a/chrome/browser/plugin_observer.cc b/chrome/browser/plugin_observer.cc
index 61c3fb31..615d953f 100644
--- a/chrome/browser/plugin_observer.cc
+++ b/chrome/browser/plugin_observer.cc
@@ -29,6 +29,8 @@
 #include "webkit/plugins/npapi/plugin_group.h"
 #include "webkit/plugins/webplugininfo.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 namespace {
@@ -73,10 +75,12 @@
 }
 
 bool PluginInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) {
-  owner()->web_contents()->OpenURL(
-      google_util::AppendGoogleLocaleParam(GURL(GetLearnMoreURL())), GURL(),
+  OpenURLParams params(
+      google_util::AppendGoogleLocaleParam(GURL(GetLearnMoreURL())), Referrer(),
       (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
-      content::PAGE_TRANSITION_LINK);
+      content::PAGE_TRANSITION_LINK,
+      false);
+  owner()->web_contents()->OpenURL(params);
   return false;
 }
 
@@ -260,8 +264,10 @@
 
 bool OutdatedPluginInfoBarDelegate::Accept() {
   content::RecordAction(UserMetricsAction("OutdatedPluginInfobar.Update"));
-  owner()->web_contents()->OpenURL(update_url_, GURL(), NEW_FOREGROUND_TAB,
-                                   content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      update_url_, Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK, false);
+  owner()->web_contents()->OpenURL(params);
   return false;
 }
 
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
index 678c413..85b2b7929 100644
--- a/chrome/browser/prerender/prerender_browsertest.cc
+++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -50,6 +50,8 @@
 using content::DevToolsAgentHostRegistry;
 using content::DevToolsClientHost;
 using content::DevToolsManager;
+using content::OpenURLParams;
+using content::Referrer;
 using content::WebContents;
 
 // Prerender tests work as follows:
@@ -715,8 +717,9 @@
     // Since the test needs to wait until the prerendered page has stopped
     // loading, rather than the page directly navigated to, need to
     // handle browser navigation directly.
-    browser()->OpenURL(
-        src_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        src_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
 
     ui_test_utils::RunMessageLoop();
 
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc
index 263f3bc..ac540af 100644
--- a/chrome/browser/prerender/prerender_contents.cc
+++ b/chrome/browser/prerender/prerender_contents.cc
@@ -38,6 +38,7 @@
 #endif
 
 using content::DownloadItem;
+using content::OpenURLParams;
 using content::WebContents;
 
 namespace prerender {
@@ -92,7 +93,7 @@
       prerender_contents_(prerender_contents) {
   }
 
- virtual TabContents* OpenURLFromTab(TabContents* source,
+ virtual WebContents* OpenURLFromTab(WebContents* source,
                                      const OpenURLParams& params) OVERRIDE {
     // |OpenURLFromTab| is typically called when a frame performs a navigation
     // that requires the browser to perform the transition instead of WebKit.
diff --git a/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc b/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc
index 6a427dfa..e368150 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc
+++ b/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc
@@ -36,6 +36,8 @@
 #include "ui/base/l10n/l10n_font_util.h"
 #include "ui/gfx/font.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::WebContents;
 
 namespace {
@@ -259,15 +261,17 @@
 }
 
 void CloudPrintSetupFlow::OnUserClickedLearnMore() {
-  web_ui_->tab_contents()->OpenURL(CloudPrintURL::GetCloudPrintLearnMoreURL(),
-                                   GURL(), NEW_FOREGROUND_TAB,
-                                   content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(CloudPrintURL::GetCloudPrintLearnMoreURL(),
+                       Referrer(), NEW_FOREGROUND_TAB,
+                       content::PAGE_TRANSITION_LINK, false);
+  web_ui_->tab_contents()->OpenURL(params);
 }
 
 void CloudPrintSetupFlow::OnUserClickedPrintTestPage() {
-  web_ui_->tab_contents()->OpenURL(CloudPrintURL::GetCloudPrintTestPageURL(),
-                                   GURL(), NEW_FOREGROUND_TAB,
-                                   content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(CloudPrintURL::GetCloudPrintTestPageURL(),
+                       Referrer(), NEW_FOREGROUND_TAB,
+                       content::PAGE_TRANSITION_LINK, false);
+  web_ui_->tab_contents()->OpenURL(params);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/renderer_host/safe_browsing_resource_handler.cc b/chrome/browser/renderer_host/safe_browsing_resource_handler.cc
index 2d97154..5827742 100644
--- a/chrome/browser/renderer_host/safe_browsing_resource_handler.cc
+++ b/chrome/browser/renderer_host/safe_browsing_resource_handler.cc
@@ -9,15 +9,17 @@
 #include "chrome/browser/prerender/prerender_final_status.h"
 #include "chrome/browser/prerender/prerender_tracker.h"
 #include "chrome/browser/renderer_host/chrome_url_request_user_data.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_dispatcher_host.h"
 #include "content/browser/renderer_host/resource_message_filter.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/common/resource_response.h"
 #include "net/base/io_buffer.h"
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
 #include "net/url_request/url_request.h"
 
+using content::GlobalRequestID;
+
 // Maximum time in milliseconds to wait for the safe browsing service to
 // verify a URL. After this amount of time the outstanding check will be
 // aborted, and the URL will be treated as if it were safe.
diff --git a/chrome/browser/renderer_host/transfer_navigation_resource_handler.cc b/chrome/browser/renderer_host/transfer_navigation_resource_handler.cc
index 38fa16b..25a04c33 100644
--- a/chrome/browser/renderer_host/transfer_navigation_resource_handler.cc
+++ b/chrome/browser/renderer_host/transfer_navigation_resource_handler.cc
@@ -14,6 +14,8 @@
 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
 #include "content/public/common/referrer.h"
 
+using content::GlobalRequestID;
+
 namespace {
 
 void RequestTransferURLOnUIThread(int render_process_id,
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
index d66a700..4aa2c9c 100644
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
@@ -40,6 +40,8 @@
 #include "ui/base/resource/resource_bundle.h"
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 // For malware interstitial pages, we link the problematic URL to Google's
@@ -438,14 +440,19 @@
     } else {
       NOTREACHED();
     }
-    tab()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_LINK);
+
+    OpenURLParams params(
+        url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK, false);
+    tab()->OpenURL(params);
     return;
   }
 
   if (command == kShowPrivacyCommand) {
     // User pressed "Safe Browsing privacy policy".
     GURL url(kSbPrivacyPolicyUrl);
-    tab()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_LINK);
+    OpenURLParams params(
+        url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK, false);
+    tab()->OpenURL(params);
     return;
   }
 
@@ -510,8 +517,10 @@
             kSbReportPhishingErrorUrl,
             bad_url_spec,
             threat_type == SafeBrowsingService::CLIENT_SIDE_PHISHING_URL);
-    tab()->OpenURL(
-        report_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_LINK);
+    OpenURLParams params(
+        report_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK,
+        false);
+    tab()->OpenURL(params);
     return;
   }
 
@@ -524,8 +533,10 @@
     diagnostic_url = google_util::AppendGoogleLocaleParam(diagnostic_url);
     DCHECK(unsafe_resources_[element_index].threat_type ==
            SafeBrowsingService::URL_MALWARE);
-    tab()->OpenURL(
-        diagnostic_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_LINK);
+    OpenURLParams params(
+        diagnostic_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK,
+        false);
+    tab()->OpenURL(params);
     return;
   }
 
diff --git a/chrome/browser/sync/test/integration/performance/sessions_sync_perf_test.cc b/chrome/browser/sync/test/integration/performance/sessions_sync_perf_test.cc
index 7e808b30..c53ffc6 100644
--- a/chrome/browser/sync/test/integration/performance/sessions_sync_perf_test.cc
+++ b/chrome/browser/sync/test/integration/performance/sessions_sync_perf_test.cc
@@ -9,6 +9,7 @@
 #include "chrome/browser/sync/test/integration/sessions_helper.h"
 #include "chrome/browser/sync/test/integration/sync_test.h"
 
+using content::OpenURLParams;
 using sessions_helper::GetLocalSession;
 using sessions_helper::GetSessionData;
 using sessions_helper::OpenMultipleTabs;
diff --git a/chrome/browser/tab_contents/insecure_content_infobar_delegate.cc b/chrome/browser/tab_contents/insecure_content_infobar_delegate.cc
index 18b1632..efbeda9 100644
--- a/chrome/browser/tab_contents/insecure_content_infobar_delegate.cc
+++ b/chrome/browser/tab_contents/insecure_content_infobar_delegate.cc
@@ -13,6 +13,8 @@
 #include "grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 
+using content::OpenURLParams;
+
 InsecureContentInfoBarDelegate::InsecureContentInfoBarDelegate(
     InfoBarTabHelper* infobar_helper,
     InfoBarType type)
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index fd9c06b..551c7487 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -88,8 +88,10 @@
 #endif
 
 using content::DownloadManager;
+using content::OpenURLParams;
 using content::SSLStatus;
 using content::UserMetricsAction;
+using content::WebContents;
 using WebKit::WebContextMenuData;
 using WebKit::WebMediaPlayerAction;
 using WebKit::WebURL;
@@ -1830,23 +1832,23 @@
     const GURL& url, const GURL& referrer, int64 frame_id,
     WindowOpenDisposition disposition,
     content::PageTransition transition) {
-  TabContents* new_contents = source_tab_contents_->OpenURL(OpenURLParams(
+  WebContents* new_contents = source_tab_contents_->OpenURL(OpenURLParams(
       url, content::Referrer(referrer, params_.referrer_policy), disposition,
       transition, false));
+  if (!new_contents)
+    return;
 
-  if (new_contents) {
-    RetargetingDetails details;
-    details.source_web_contents = source_tab_contents_;
-    details.source_frame_id = frame_id;
-    details.target_url = url;
-    details.target_web_contents = new_contents;
-    details.not_yet_in_tabstrip = false;
-    content::NotificationService::current()->Notify(
-        chrome::NOTIFICATION_RETARGETING,
-        content::Source<Profile>(Profile::FromBrowserContext(
-            source_tab_contents_->GetBrowserContext())),
-        content::Details<RetargetingDetails>(&details));
-  }
+  RetargetingDetails details;
+  details.source_web_contents = source_tab_contents_;
+  details.source_frame_id = frame_id;
+  details.target_url = url;
+  details.target_web_contents = new_contents;
+  details.not_yet_in_tabstrip = false;
+  content::NotificationService::current()->Notify(
+      chrome::NOTIFICATION_RETARGETING,
+      content::Source<Profile>(Profile::FromBrowserContext(
+          source_tab_contents_->GetBrowserContext())),
+      content::Details<RetargetingDetails>(&details));
 }
 
 void RenderViewContextMenu::CopyImageAt(int x, int y) {
diff --git a/chrome/browser/tab_contents/spelling_bubble_model.cc b/chrome/browser/tab_contents/spelling_bubble_model.cc
index 2ae4b17d..793b9b4 100644
--- a/chrome/browser/tab_contents/spelling_bubble_model.cc
+++ b/chrome/browser/tab_contents/spelling_bubble_model.cc
@@ -18,6 +18,9 @@
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/image/image.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 SpellingBubbleModel::SpellingBubbleModel(Profile* profile)
     : profile_(profile) {
 }
@@ -59,7 +62,8 @@
 
 void SpellingBubbleModel::LinkClicked() {
   Browser* browser = BrowserList::GetLastActiveWithProfile(profile_);
-  browser->OpenURL(
+  OpenURLParams params(
       google_util::AppendGoogleLocaleParam(GURL(chrome::kPrivacyLearnMoreURL)),
-      GURL(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+      Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false);
+  browser->OpenURL(params);
 }
diff --git a/chrome/browser/tab_contents/web_drop_target_win.cc b/chrome/browser/tab_contents/web_drop_target_win.cc
index 9e67b5d..cb184e9e 100644
--- a/chrome/browser/tab_contents/web_drop_target_win.cc
+++ b/chrome/browser/tab_contents/web_drop_target_win.cc
@@ -29,6 +29,8 @@
 using WebKit::WebDragOperationLink;
 using WebKit::WebDragOperationMove;
 using WebKit::WebDragOperationGeneric;
+using content::OpenURLParams;
+using content::Referrer;
 
 namespace {
 
@@ -68,15 +70,17 @@
   }
 
   DWORD OnDrop(IDataObject* data_object, DWORD effect) {
-    if (ui::ClipboardUtil::HasUrl(data_object)) {
-      std::wstring url;
-      std::wstring title;
-      ui::ClipboardUtil::GetUrl(data_object, &url, &title, true);
-      tab_contents_->OpenURL(GURL(url), GURL(), CURRENT_TAB,
-                             content::PAGE_TRANSITION_AUTO_BOOKMARK);
-      return GetPreferredDropEffect(effect);
-    }
-    return DROPEFFECT_NONE;
+    if (!ui::ClipboardUtil::HasUrl(data_object))
+      return DROPEFFECT_NONE;
+
+    std::wstring url;
+    std::wstring title;
+    ui::ClipboardUtil::GetUrl(data_object, &url, &title, true);
+    OpenURLParams params(
+        GURL(url), Referrer(), CURRENT_TAB,
+        content::PAGE_TRANSITION_AUTO_BOOKMARK, false);
+    tab_contents_->OpenURL(params);
+    return GetPreferredDropEffect(effect);
   }
 
  private:
diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc
index cb14d7f..fb071b0 100644
--- a/chrome/browser/task_manager/task_manager.cc
+++ b/chrome/browser/task_manager/task_manager.cc
@@ -46,6 +46,8 @@
 #endif
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::Referrer;
 
 namespace {
 
@@ -1062,6 +1064,9 @@
 
 void TaskManager::OpenAboutMemory() {
   Browser* browser = BrowserList::GetLastActive();
+  OpenURLParams params(
+      GURL(chrome::kChromeUIMemoryURL), Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK, false);
 
   if (!browser) {
     // On OS X, the task manager can be open without any open browser windows.
@@ -1072,11 +1077,9 @@
     if (!profile)
       return;
     browser = Browser::Create(profile);
-    browser->OpenURL(GURL(chrome::kChromeUIMemoryURL), GURL(),
-                     NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+    browser->OpenURL(params);
   } else {
-    browser->OpenURL(GURL(chrome::kChromeUIMemoryURL), GURL(),
-                     NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+    browser->OpenURL(params);
 
     // In case the browser window is minimized, show it. If |browser| is a
     // non-tabbed window, the call to OpenURL above will have opened a
diff --git a/chrome/browser/translate/options_menu_model.cc b/chrome/browser/translate/options_menu_model.cc
index d3ccd482..662d674 100644
--- a/chrome/browser/translate/options_menu_model.cc
+++ b/chrome/browser/translate/options_menu_model.cc
@@ -16,6 +16,8 @@
 #include "grit/locale_settings.h"
 #include "ui/base/l10n/l10n_util.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::WebContents;
 
 namespace {
@@ -142,9 +144,10 @@
       if (web_contents) {
         GURL about_url = google_util::AppendGoogleLocaleParam(
             GURL(kAboutGoogleTranslateUrl));
-        web_contents->OpenURL(
-            about_url, GURL(), NEW_FOREGROUND_TAB,
-            content::PAGE_TRANSITION_LINK);
+        OpenURLParams params(
+            about_url, Referrer(), NEW_FOREGROUND_TAB,
+            content::PAGE_TRANSITION_LINK, false);
+        web_contents->OpenURL(params);
       }
       break;
     }
diff --git a/chrome/browser/ui/blocked_content/blocked_content_container.cc b/chrome/browser/ui/blocked_content/blocked_content_container.cc
index 1759b54..bab9545 100644
--- a/chrome/browser/ui/blocked_content/blocked_content_container.cc
+++ b/chrome/browser/ui/blocked_content/blocked_content_container.cc
@@ -9,6 +9,7 @@
 #include "content/public/browser/web_contents.h"
 #include "ui/gfx/rect.h"
 
+using content::OpenURLParams;
 using content::WebContents;
 
 // static
@@ -109,8 +110,8 @@
 
 // Overridden from content::WebContentsDelegate:
 
-TabContents* BlockedContentContainer::OpenURLFromTab(
-    TabContents* source,
+WebContents* BlockedContentContainer::OpenURLFromTab(
+    WebContents* source,
     const OpenURLParams& params) {
   return owner_->web_contents()->OpenURL(params);
 }
diff --git a/chrome/browser/ui/blocked_content/blocked_content_container.h b/chrome/browser/ui/blocked_content/blocked_content_container.h
index 99da4e00..829ab46 100644
--- a/chrome/browser/ui/blocked_content/blocked_content_container.h
+++ b/chrome/browser/ui/blocked_content/blocked_content_container.h
@@ -57,8 +57,9 @@
   // Overridden from content::WebContentsDelegate:
 
   // Forwards OpenURLFromTab to our |owner_|.
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+      content::WebContents* source,
+      const content::OpenURLParams& params) OVERRIDE;
 
   // Forwards AddNewContents to our |owner_|.
   virtual void AddNewContents(TabContents* source,
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 9c38db6..5d2d85a 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -207,7 +207,9 @@
 #endif
 
 using base::TimeDelta;
+using content::OpenURLParams;
 using content::PluginService;
+using content::Referrer;
 using content::SSLStatus;
 using content::UserMetricsAction;
 using content::WebContents;
@@ -1548,8 +1550,9 @@
   if (current_tab && current_tab->ShowingInterstitialPage()) {
     NavigationEntry* entry = current_tab->GetController().GetActiveEntry();
     DCHECK(entry);  // Should exist if interstitial is showing.
-    OpenURL(
-        entry->GetURL(), GURL(), disposition, content::PAGE_TRANSITION_RELOAD);
+    OpenURL(OpenURLParams(
+        entry->GetURL(), Referrer(), disposition,
+        content::PAGE_TRANSITION_RELOAD, false));
     return;
   }
 
@@ -1565,11 +1568,12 @@
 
 void Browser::Home(WindowOpenDisposition disposition) {
   content::RecordAction(UserMetricsAction("Home"));
-  OpenURL(
-      profile_->GetHomePage(), GURL(), disposition,
+  OpenURL(OpenURLParams(
+      profile_->GetHomePage(), Referrer(), disposition,
       content::PageTransitionFromInt(
           content::PAGE_TRANSITION_AUTO_BOOKMARK |
-          content::PAGE_TRANSITION_HOME_PAGE));
+          content::PAGE_TRANSITION_HOME_PAGE),
+      false));
 }
 
 void Browser::OpenCurrentURL() {
@@ -2250,8 +2254,9 @@
 }
 
 void Browser::OpenPrivacyDashboardTabAndActivate() {
-  OpenURL(GURL(kPrivacyDashboardUrl), GURL(),
-          NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURL(OpenURLParams(
+      GURL(kPrivacyDashboardUrl), Referrer(),
+      NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false));
   window_->Activate();
 }
 
@@ -2301,8 +2306,9 @@
 }
 
 void Browser::OpenSystemTabAndActivate() {
-  OpenURL(GURL(chrome::kChromeUISystemInfoURL), GURL(),
-          NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURL(OpenURLParams(
+      GURL(chrome::kChromeUISystemInfoURL), Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK, false));
   window_->Activate();
 }
 
@@ -2311,16 +2317,18 @@
           switches::kEnableMobileSetupDialog)) {
     window_->ShowMobileSetup();
   } else {
-    OpenURL(GURL(chrome::kChromeUIMobileSetupURL), GURL(),
-            NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+    OpenURL(OpenURLParams(
+        GURL(chrome::kChromeUIMobileSetupURL), Referrer(), NEW_FOREGROUND_TAB,
+        content::PAGE_TRANSITION_LINK, false));
     window_->Activate();
   }
 }
 #endif
 
 void Browser::OpenPluginsTabAndActivate() {
-  OpenURL(GURL(chrome::kChromeUIPluginsURL), GURL(),
-          NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURL(OpenURLParams(
+      GURL(chrome::kChromeUIPluginsURL), Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK, false));
   window_->Activate();
 }
 
@@ -3004,18 +3012,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // Browser, PageNavigator implementation:
 
-// TODO(adriansc): Remove this method once refactoring changed all call sites.
-TabContents* Browser::OpenURL(const GURL& url,
-                              const GURL& referrer,
-                              WindowOpenDisposition disposition,
-                              content::PageTransition transition) {
-  // For specifying a referrer, use the version of OpenURL taking OpenURLParams.
-  DCHECK(referrer.is_empty());
-  return OpenURLFromTab(NULL, OpenURLParams(
-      url, content::Referrer(), disposition, transition, false));
-}
-
-TabContents* Browser::OpenURL(const OpenURLParams& params) {
+WebContents* Browser::OpenURL(const OpenURLParams& params) {
   return OpenURLFromTab(NULL, params);
 }
 
@@ -3424,7 +3421,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // Browser, content::WebContentsDelegate implementation:
 
-TabContents* Browser::OpenURLFromTab(TabContents* source,
+WebContents* Browser::OpenURLFromTab(WebContents* source,
                                      const OpenURLParams& params) {
   browser::NavigateParams nav_params(this, params.url, params.transition);
   nav_params.source_contents =
@@ -4076,8 +4073,12 @@
 void Browser::FileSelected(const FilePath& path, int index, void* params) {
   profile_->set_last_selected_directory(path.DirName());
   GURL file_url = net::FilePathToFileURL(path);
-  if (!file_url.is_empty())
-    OpenURL(file_url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  if (file_url.is_empty())
+    return;
+
+  OpenURL(OpenURLParams(
+      file_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+      false));
 }
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 7ef9bc0..d388b05a 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -44,8 +44,8 @@
 #include "chrome/common/content_settings.h"
 #include "chrome/common/content_settings_types.h"
 #include "chrome/common/extensions/extension_constants.h"
-#include "content/browser/tab_contents/page_navigator.h"
 #include "content/public/browser/notification_registrar.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/public/browser/web_contents_delegate.h"
 #include "content/public/common/page_transition_types.h"
 #include "content/public/common/page_zoom.h"
@@ -81,7 +81,7 @@
                 public BlockedContentTabHelperDelegate,
                 public BookmarkTabHelperDelegate,
                 public ExtensionTabHelperDelegate,
-                public PageNavigator,
+                public content::PageNavigator,
                 public CommandUpdater::CommandUpdaterDelegate,
                 public content::NotificationObserver,
                 public SelectFileDialog::Listener,
@@ -757,14 +757,9 @@
 
   // Interface implementations ////////////////////////////////////////////////
 
-  // Overridden from PageNavigator:
-  // Deprecated. Please use the one-argument variant instead.
-  // TODO(adriansc): Remove this method once refactoring changed all call sites.
-  virtual TabContents* OpenURL(const GURL& url,
-                               const GURL& referrer,
-                               WindowOpenDisposition disposition,
-                               content::PageTransition transition) OVERRIDE;
-  virtual TabContents* OpenURL(const OpenURLParams& params) OVERRIDE;
+  // Overridden from content::PageNavigator:
+  virtual content::WebContents* OpenURL(
+      const content::OpenURLParams& params) OVERRIDE;
 
   // Overridden from CommandUpdater::CommandUpdaterDelegate:
   virtual void ExecuteCommand(int id) OVERRIDE;
@@ -918,8 +913,9 @@
   };
 
   // Overridden from content::WebContentsDelegate:
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+      content::WebContents* source,
+      const content::OpenURLParams& params) OVERRIDE;
   virtual void NavigationStateChanged(const TabContents* source,
                                       unsigned changed_flags) OVERRIDE;
   virtual void AddNewContents(TabContents* source,
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc
index d571c10..61a3564 100644
--- a/chrome/browser/ui/browser_browsertest.cc
+++ b/chrome/browser/ui/browser_browsertest.cc
@@ -61,6 +61,8 @@
 #include "chrome/browser/browser_process.h"
 #endif
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::WebContents;
 
 namespace {
@@ -302,7 +304,8 @@
   // Navigate to a page that triggers a cross-site transition.
   ASSERT_TRUE(test_server()->Start());
   GURL url2(test_server()->GetURL("files/title1.html"));
-  browser()->OpenURL(url2, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url2, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   ui_test_utils::WindowedNotificationObserver host_destroyed_observer(
       content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
diff --git a/chrome/browser/ui/browser_init.cc b/chrome/browser/ui/browser_init.cc
index ffb2d72d..12fca50 100644
--- a/chrome/browser/ui/browser_init.cc
+++ b/chrome/browser/ui/browser_init.cc
@@ -124,6 +124,8 @@
 #endif
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::Referrer;
 
 namespace {
 
@@ -1310,8 +1312,10 @@
 }
 
 bool LearnMoreInfoBar::LinkClicked(WindowOpenDisposition disposition) {
-  owner()->web_contents()->OpenURL(learn_more_url_, GURL(), disposition,
-                                   content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      learn_more_url_, Referrer(), disposition, content::PAGE_TRANSITION_LINK,
+      false);
+  owner()->web_contents()->OpenURL(params);
   return false;
 }
 
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
index 6acc870..7289caa 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -35,6 +35,7 @@
 #include "content/public/browser/notification_service.h"
 #include "net/http/http_util.h"
 
+using content::GlobalRequestID;
 using content::WebContents;
 
 namespace {
diff --git a/chrome/browser/ui/browser_navigator.h b/chrome/browser/ui/browser_navigator.h
index ef37d3f6..1a82cfe 100644
--- a/chrome/browser/ui/browser_navigator.h
+++ b/chrome/browser/ui/browser_navigator.h
@@ -8,7 +8,7 @@
 
 #include <string>
 
-#include "content/browser/renderer_host/global_request_id.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/common/page_transition_types.h"
 #include "content/public/common/referrer.h"
 #include "googleurl/src/gurl.h"
@@ -185,7 +185,7 @@
   // Refers to a navigation that was parked in the browser in order to be
   // transferred to another RVH. Only used in case of a redirection of a request
   // to a different site that created a new RVH.
-  GlobalRequestID transferred_global_request_id;
+  content::GlobalRequestID transferred_global_request_id;
 
  private:
   NavigateParams();
diff --git a/chrome/browser/ui/cocoa/about_window_controller.mm b/chrome/browser/ui/cocoa/about_window_controller.mm
index 83d5b414..f156a40 100644
--- a/chrome/browser/ui/cocoa/about_window_controller.mm
+++ b/chrome/browser/ui/cocoa/about_window_controller.mm
@@ -27,6 +27,9 @@
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/image/image.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 void AttributedStringAppendString(NSMutableAttributedString* attr_str,
@@ -619,8 +622,10 @@
   // We always create a new window, so there's no need to try to re-use
   // an existing one just to pass in the NEW_WINDOW disposition.
   Browser* browser = Browser::Create(profile_);
-  browser->OpenURL(GURL([link UTF8String]), GURL(), NEW_FOREGROUND_TAB,
-                   content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      GURL([link UTF8String]), Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK, false);
+  browser->OpenURL(params);
   browser->window()->Show();
   return YES;
 }
diff --git a/chrome/browser/ui/cocoa/applescript/tab_applescript.mm b/chrome/browser/ui/cocoa/applescript/tab_applescript.mm
index 748e15d..dcd8b23 100644
--- a/chrome/browser/ui/cocoa/applescript/tab_applescript.mm
+++ b/chrome/browser/ui/cocoa/applescript/tab_applescript.mm
@@ -26,6 +26,9 @@
 #include "content/public/browser/web_contents_delegate.h"
 #include "googleurl/src/gurl.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 @interface AnyResultValue : NSObject {
  @private
   scoped_nsobject<NSAppleEventDescriptor> descriptor;
@@ -390,12 +393,13 @@
   NavigationEntry* entry =
       tabContents_->tab_contents()->GetController().GetLastCommittedEntry();
   if (entry) {
-    tabContents_->tab_contents()->OpenURL(
+    tabContents_->tab_contents()->OpenURL(OpenURLParams(
         GURL(chrome::kViewSourceScheme + std::string(":") +
              entry->GetURL().spec()),
-        GURL(),
+        Referrer(),
         NEW_FOREGROUND_TAB,
-        content::PAGE_TRANSITION_LINK);
+        content::PAGE_TRANSITION_LINK,
+        false));
   }
 }
 
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm
index a77a6172..40e524e 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm
@@ -53,6 +53,8 @@
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/mac/nsimage_cache.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 // Bookmark bar state changing and animations
@@ -1109,8 +1111,10 @@
 // Actually open the URL.  This is the last chance for a unit test to
 // override.
 - (void)openURL:(GURL)url disposition:(WindowOpenDisposition)disposition {
-  browser_->OpenURL(
-      url, GURL(), disposition, content::PAGE_TRANSITION_AUTO_BOOKMARK);
+  OpenURLParams params(
+      url, Referrer(), disposition, content::PAGE_TRANSITION_AUTO_BOOKMARK,
+      false);
+  browser_->OpenURL(params);
 }
 
 - (void)clearMenuTagMap {
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm
index 375b78e..a402b43e 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm
@@ -16,6 +16,8 @@
 #include "content/public/browser/user_metrics.h"
 #include "ui/base/text/text_elider.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 namespace {
@@ -94,8 +96,10 @@
     browser = Browser::Create(bridge_->GetProfile());
   WindowOpenDisposition disposition =
       event_utils::WindowOpenDispositionFromNSEvent([NSApp currentEvent]);
-  browser->OpenURL(node->url(), GURL(), disposition,
-                   content::PAGE_TRANSITION_AUTO_BOOKMARK);
+  OpenURLParams params(
+      node->url(), Referrer(), disposition,
+      content::PAGE_TRANSITION_AUTO_BOOKMARK, false);
+  browser->OpenURL(params);
 }
 
 // Open sites under BookmarkNode with the specified disposition.
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm
index bdc2ca8..45f205e 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller.mm
@@ -146,6 +146,8 @@
 // longer indicate that the window is shrinking from an apparent zoomed state)
 // and if it's set we continue to constrain the resize.
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::WebContents;
 
 @interface NSWindow (NSPrivateApis)
@@ -1756,8 +1758,10 @@
     if (web_contents) {
       GURL helpUrl =
           google_util::AppendGoogleLocaleParam(GURL(chrome::kCrashReasonURL));
-      web_contents->OpenURL(
-          helpUrl, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_LINK);
+      OpenURLParams params(
+          helpUrl, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK,
+          false);
+      web_contents->OpenURL(params);
     }
   }
 }
diff --git a/chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm b/chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm
index 702da3853..dc1c7309 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm
@@ -35,6 +35,9 @@
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/l10n/l10n_util_mac.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 // A class that loads the extension icon on the I/O thread before showing the
 // confirmation dialog to uninstall the given extension.
 // Also acts as the extension's UI delegate in order to display the dialog.
@@ -245,8 +248,10 @@
     case kExtensionContextName: {
       GURL url(std::string(extension_urls::kGalleryBrowsePrefix) +
                std::string("/detail/") + extension_->id());
-      browser->OpenURL(
-          url, GURL(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+      OpenURLParams params(
+          url, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK,
+           false);
+      browser->OpenURL(params);
       break;
     }
     case kExtensionContextOptions: {
diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
index c67e774..4d4aabe 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
@@ -20,6 +20,9 @@
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/l10n/l10n_util_mac.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 @interface ExtensionInstallDialogController ()
 - (bool)isInlineInstall;
 - (void)appendRatingStar:(const SkBitmap*)skiaImage;
@@ -124,9 +127,9 @@
 - (IBAction)storeLinkClicked:(id)sender {
   GURL store_url(
       extension_urls::GetWebstoreItemDetailURLPrefix() + extension_->id());
-  BrowserList::GetLastActiveWithProfile(profile_)->
-      OpenURL(store_url, GURL(), NEW_FOREGROUND_TAB,
-      content::PAGE_TRANSITION_LINK);
+  BrowserList::GetLastActiveWithProfile(profile_)->OpenURL(OpenURLParams(
+      store_url, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK,
+      false));
 
   delegate_->InstallUIAbort(/*user_initiated=*/true);
   [NSApp endSheet:[self window]];
diff --git a/chrome/browser/ui/cocoa/history_menu_cocoa_controller.mm b/chrome/browser/ui/cocoa/history_menu_cocoa_controller.mm
index 7fa2988..2f3a050 100644
--- a/chrome/browser/ui/cocoa/history_menu_cocoa_controller.mm
+++ b/chrome/browser/ui/cocoa/history_menu_cocoa_controller.mm
@@ -17,6 +17,9 @@
 #include "chrome/browser/ui/cocoa/event_utils.h"
 #include "webkit/glue/window_open_disposition.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 @implementation HistoryMenuCocoaController
 
 - (id)initWithBridge:(HistoryMenuBridge*)bridge {
@@ -47,8 +50,10 @@
         node->session_id, UNKNOWN);
   } else {
     DCHECK(node->url.is_valid());
-    browser->OpenURL(node->url, GURL(), disposition,
-                     content::PAGE_TRANSITION_AUTO_BOOKMARK);
+    OpenURLParams params(
+        node->url, Referrer(), disposition,
+        content::PAGE_TRANSITION_AUTO_BOOKMARK, false);
+    browser->OpenURL(params);
   }
 }
 
diff --git a/chrome/browser/ui/cocoa/page_info_bubble_controller.mm b/chrome/browser/ui/cocoa/page_info_bubble_controller.mm
index 26ee5a5..39e0652 100644
--- a/chrome/browser/ui/cocoa/page_info_bubble_controller.mm
+++ b/chrome/browser/ui/cocoa/page_info_bubble_controller.mm
@@ -32,6 +32,8 @@
 #include "ui/base/l10n/l10n_util_mac.h"
 #include "ui/gfx/image/image.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::SSLStatus;
 
 @interface PageInfoBubbleController (Private)
@@ -214,8 +216,10 @@
   GURL url = google_util::AppendGoogleLocaleParam(
       GURL(chrome::kPageInfoHelpCenterURL));
   Browser* browser = BrowserList::GetLastActive();
-  browser->OpenURL(
-      url, GURL(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      url, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK,
+      false);
+  browser->OpenURL(params);
 }
 
 // This will create the subviews for the page info window. The general layout
diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
index 447197f..2a0bd59 100644
--- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
+++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
@@ -66,6 +66,8 @@
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/mac/nsimage_cache.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 NSString* const kTabStripNumberOfTabsChanged = @"kTabStripNumberOfTabsChanged";
@@ -1882,9 +1884,9 @@
     }
     case CURRENT_TAB:
       content::RecordAction(UserMetricsAction("Tab_DropURLOnTab"));
-      tabStripModel_->GetTabContentsAt(index)
-          ->tab_contents()->OpenURL(*url, GURL(), CURRENT_TAB,
-                                    content::PAGE_TRANSITION_TYPED);
+      OpenURLParams params(
+          *url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false);
+      tabStripModel_->GetTabContentsAt(index)->tab_contents()->OpenURL(params);
       tabStripModel_->ActivateTabAt(index, true);
       break;
     default:
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
index a5f5f687..0affff4 100644
--- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
+++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
@@ -61,6 +61,9 @@
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/rect.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 // Height of the toolbar in pixels when the bookmark bar is closed.
@@ -755,8 +758,9 @@
         OmniboxView::StripJavascriptSchemas(UTF8ToUTF16(url.spec())));
     return;
   }
-  browser_->GetSelectedTabContents()->OpenURL(url, GURL(), CURRENT_TAB,
-                                              content::PAGE_TRANSITION_TYPED);
+  OpenURLParams params(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false);
+  browser_->GetSelectedTabContents()->OpenURL(params);
 }
 
 // (URLDropTargetController protocol)
@@ -771,8 +775,9 @@
       base::SysNSStringToUTF16(text), string16(), false, false, &match, NULL);
   GURL url(match.destination_url);
 
-  browser_->GetSelectedTabContents()->OpenURL(url, GURL(), CURRENT_TAB,
-                                              content::PAGE_TRANSITION_TYPED);
+  OpenURLParams params(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false);
+  browser_->GetSelectedTabContents()->OpenURL(params);
 }
 
 // (URLDropTargetController protocol)
diff --git a/chrome/browser/ui/cocoa/view_id_util_browsertest.mm b/chrome/browser/ui/cocoa/view_id_util_browsertest.mm
index 3cf49d4..dffc2310 100644
--- a/chrome/browser/ui/cocoa/view_id_util_browsertest.mm
+++ b/chrome/browser/ui/cocoa/view_id_util_browsertest.mm
@@ -20,6 +20,9 @@
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 // Basic sanity check of ViewID use on the mac.
 class ViewIDTest : public InProcessBrowserTest {
  public:
@@ -108,15 +111,17 @@
   // Open 9 new tabs.
   for (int i = 1; i <= 9; ++i) {
     CheckViewID(static_cast<ViewID>(VIEW_ID_TAB_0 + i), false);
-    browser()->OpenURL(GURL(chrome::kAboutBlankURL), GURL(),
-                       NEW_BACKGROUND_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        GURL(chrome::kAboutBlankURL), Referrer(), NEW_BACKGROUND_TAB,
+         content::PAGE_TRANSITION_TYPED, false));
     CheckViewID(static_cast<ViewID>(VIEW_ID_TAB_0 + i), true);
     // VIEW_ID_TAB_LAST should always be available.
     CheckViewID(VIEW_ID_TAB_LAST, true);
   }
 
   // Open the 11th tab.
-  browser()->OpenURL(GURL(chrome::kAboutBlankURL), GURL(),
-                     NEW_BACKGROUND_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      GURL(chrome::kAboutBlankURL), Referrer(), NEW_BACKGROUND_TAB,
+      content::PAGE_TRANSITION_TYPED, false));
   CheckViewID(VIEW_ID_TAB_LAST, true);
 }
diff --git a/chrome/browser/ui/cocoa/web_intent_bubble_controller.mm b/chrome/browser/ui/cocoa/web_intent_bubble_controller.mm
index e08cc45..c4804d1 100644
--- a/chrome/browser/ui/cocoa/web_intent_bubble_controller.mm
+++ b/chrome/browser/ui/cocoa/web_intent_bubble_controller.mm
@@ -21,6 +21,9 @@
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/image/image.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 // The width of the window, in view coordinates. The height will be
@@ -112,8 +115,10 @@
 - (IBAction)showChromeWebStore:(id)sender {
   GURL url(l10n_util::GetStringUTF8(IDS_WEBSTORE_URL));
   Browser* browser = BrowserList::GetLastActive();
-  browser->OpenURL(url, GURL(), NEW_FOREGROUND_TAB,
-      content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      url, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK,
+      false);
+  browser->OpenURL(params);
 }
 
 // A picker button has been pressed - invoke corresponding service.
diff --git a/chrome/browser/ui/gtk/about_chrome_dialog.cc b/chrome/browser/ui/gtk/about_chrome_dialog.cc
index d1d7f88..04d182f 100644
--- a/chrome/browser/ui/gtk/about_chrome_dialog.cc
+++ b/chrome/browser/ui/gtk/about_chrome_dialog.cc
@@ -28,6 +28,8 @@
 #include "ui/gfx/image/image.h"
 #include "webkit/glue/webkit_glue.h"
 
+using content::OpenURLParams;
+
 namespace {
 
 // Left or right margin.
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc
index c0e18811..d707d803 100644
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc
@@ -51,6 +51,7 @@
 #include "ui/gfx/image/cairo_cached_surface.h"
 #include "ui/gfx/image/image.h"
 
+using content::PageNavigator;
 using content::UserMetricsAction;
 
 namespace {
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h
index 300f9f89..0c6632b 100644
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h
@@ -36,9 +36,12 @@
 class BrowserWindowGtk;
 class GtkThemeService;
 class MenuGtk;
-class PageNavigator;
 class TabstripOriginProvider;
 
+namespace content {
+class PageNavigator;
+}
+
 class BookmarkBarGtk : public ui::AnimationDelegate,
                        public BookmarkModelObserver,
                        public MenuBarHelper::Delegate,
@@ -62,7 +65,7 @@
 
   // Sets the PageNavigator that is used when the user selects an entry on
   // the bookmark bar.
-  void SetPageNavigator(PageNavigator* navigator);
+  void SetPageNavigator(content::PageNavigator* navigator);
 
   // Create the contents of the bookmark bar.
   void Init();
@@ -297,7 +300,7 @@
   void OnEditBookmarksEnabledChanged();
 
   // Used for opening urls.
-  PageNavigator* page_navigator_;
+  content::PageNavigator* page_navigator_;
 
   Browser* browser_;
   BrowserWindowGtk* window_;
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_menu_controller_gtk.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_menu_controller_gtk.cc
index 6a7515c..24e31dfc 100644
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_menu_controller_gtk.cc
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_menu_controller_gtk.cc
@@ -16,7 +16,7 @@
 #include "chrome/browser/ui/gtk/gtk_theme_service.h"
 #include "chrome/browser/ui/gtk/gtk_util.h"
 #include "chrome/browser/ui/gtk/menu_gtk.h"
-#include "content/browser/tab_contents/page_navigator.h"
+#include "content/public/browser/page_navigator.h"
 #include "grit/generated_resources.h"
 #include "grit/theme_resources.h"
 #include "grit/ui_resources.h"
@@ -25,6 +25,9 @@
 #include "ui/gfx/gtk_util.h"
 #include "webkit/glue/window_open_disposition.h"
 
+using content::OpenURLParams;
+using content::PageNavigator;
+
 namespace {
 
 void SetImageMenuItem(GtkWidget* menu_item,
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_menu_controller_gtk.h b/chrome/browser/ui/gtk/bookmarks/bookmark_menu_controller_gtk.h
index 497216a..5bfcba29 100644
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_menu_controller_gtk.h
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_menu_controller_gtk.h
@@ -19,11 +19,14 @@
 #include "webkit/glue/window_open_disposition.h"
 
 class Profile;
-class PageNavigator;
 class BookmarkModel;
 class BookmarkNode;
 class MenuGtk;
 
+namespace content {
+class PageNavigator;
+}
+
 typedef struct _GdkDragContext GdkDragContext;
 typedef struct _GdkEventButton GdkEventButton;
 typedef struct _GtkSelectionData GtkSelectionData;
@@ -35,7 +38,7 @@
   // Creates a BookmarkMenuController showing the children of |node| starting
   // at index |start_child_index|.
   BookmarkMenuController(Profile* profile,
-                         PageNavigator* page_navigator,
+                         content::PageNavigator* page_navigator,
                          GtkWindow* window,
                          const BookmarkNode* node,
                          int start_child_index);
@@ -99,7 +102,7 @@
                        GdkDragContext*, GtkSelectionData*, guint, guint);
 
   Profile* profile_;
-  PageNavigator* page_navigator_;
+  content::PageNavigator* page_navigator_;
 
   // Parent window of this menu.
   GtkWindow* parent_window_;
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.cc
index cd23414e..8d50903a 100644
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.cc
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.cc
@@ -17,6 +17,9 @@
 #include "grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 
+using content::OpenURLParams;
+using content::PageNavigator;
+
 // Per chrome/app/chrome_command_ids.h, values < 4000 are for "dynamic menu
 // items". We only use one command id for all the bookmarks, because we handle
 // bookmark item activations directly. So we pick a suitably large random value
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.h b/chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.h
index 0c091d7..67dc8e5 100644
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.h
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.h
@@ -16,7 +16,10 @@
 class BookmarkModel;
 class BookmarkNode;
 class MenuGtk;  // See below for why we need this.
+
+namespace content {
 class PageNavigator;
+}
 
 // BookmarkNodeMenuModel builds a SimpleMenuModel on demand when the menu is
 // shown, and automatically destroys child models when the menu is closed.
@@ -25,7 +28,7 @@
   BookmarkNodeMenuModel(ui::SimpleMenuModel::Delegate* delegate,
                         BookmarkModel* model,
                         const BookmarkNode* node,
-                        PageNavigator* page_navigator);
+                        content::PageNavigator* page_navigator);
   virtual ~BookmarkNodeMenuModel();
 
   // From SimpleMenuModel. Takes care of deleting submenus.
@@ -64,7 +67,7 @@
   const BookmarkNode* node_;
 
   // The page navigator used to open bookmarks in ActivatedAt().
-  PageNavigator* page_navigator_;
+  content::PageNavigator* page_navigator_;
 
   // A list of the submenus we own and will need to delete.
   std::vector<BookmarkNodeMenuModel*> submenus_;
diff --git a/chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc b/chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc
index 9d08063..01e8a8e7 100644
--- a/chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc
+++ b/chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc
@@ -21,6 +21,8 @@
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/gtk_util.h"
 
+using content::OpenURLParams;
+
 namespace {
 
 const int kLeftColumnMinWidth = 250;
diff --git a/chrome/browser/ui/gtk/global_history_menu.cc b/chrome/browser/ui/gtk/global_history_menu.cc
index 3f941b6..4bda136 100644
--- a/chrome/browser/ui/gtk/global_history_menu.cc
+++ b/chrome/browser/ui/gtk/global_history_menu.cc
@@ -31,6 +31,8 @@
 #include "ui/gfx/codec/png_codec.h"
 #include "ui/gfx/gtk_util.h"
 
+using content::OpenURLParams;
+
 namespace {
 
 // The maximum number of most visited items to display.
diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk.cc b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
index 4c36500e..3bcc7eb 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
@@ -70,6 +70,8 @@
 #include "ui/gfx/image/image.h"
 #include "webkit/glue/window_open_disposition.h"
 
+using content::OpenURLParams;
+
 namespace {
 
 // We are positioned with a little bit of extra space that we don't use now.
diff --git a/chrome/browser/ui/gtk/page_info_bubble_gtk.cc b/chrome/browser/ui/gtk/page_info_bubble_gtk.cc
index e7c9e4d..8a0cf6da 100644
--- a/chrome/browser/ui/gtk/page_info_bubble_gtk.cc
+++ b/chrome/browser/ui/gtk/page_info_bubble_gtk.cc
@@ -28,7 +28,7 @@
 #include "ui/base/gtk/gtk_hig_constants.h"
 #include "ui/base/l10n/l10n_util.h"
 
-class Profile;
+using content::OpenURLParams;
 
 using content::SSLStatus;
 
diff --git a/chrome/browser/ui/gtk/sad_tab_gtk.cc b/chrome/browser/ui/gtk/sad_tab_gtk.cc
index f365e305..202a50201 100644
--- a/chrome/browser/ui/gtk/sad_tab_gtk.cc
+++ b/chrome/browser/ui/gtk/sad_tab_gtk.cc
@@ -17,6 +17,7 @@
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/image/image.h"
 
+using content::OpenURLParams;
 using content::WebContents;
 
 namespace {
diff --git a/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc b/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc
index b41c088..dfd2b88 100644
--- a/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc
+++ b/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc
@@ -23,6 +23,7 @@
 #include "content/public/browser/notification_types.h"
 #include "ui/gfx/screen.h"
 
+using content::OpenURLParams;
 using content::WebContents;
 
 namespace {
@@ -171,8 +172,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 // DraggedTabControllerGtk, content::WebContentsDelegate implementation:
 
-TabContents* DraggedTabControllerGtk::OpenURLFromTab(
-    TabContents* source,
+WebContents* DraggedTabControllerGtk::OpenURLFromTab(
+    WebContents* source,
     const OpenURLParams& params) {
   if (drag_data_->GetSourceTabData()->original_delegate_) {
     OpenURLParams forward_params = params;
diff --git a/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.h b/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.h
index 4cbf515b..45ec934 100644
--- a/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.h
+++ b/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.h
@@ -85,8 +85,9 @@
   DraggedTabData InitDraggedTabData(TabGtk* tab);
 
   // Overridden from content::WebContentsDelegate:
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+    content::WebContents* source,
+    const content::OpenURLParams& params) OVERRIDE;
   virtual void NavigationStateChanged(const TabContents* source,
                                       unsigned changed_flags) OVERRIDE;
   virtual void AddNewContents(TabContents* source,
diff --git a/chrome/browser/ui/gtk/view_id_util_browsertest.cc b/chrome/browser/ui/gtk/view_id_util_browsertest.cc
index 255b5a3..ae9338e 100644
--- a/chrome/browser/ui/gtk/view_id_util_browsertest.cc
+++ b/chrome/browser/ui/gtk/view_id_util_browsertest.cc
@@ -10,6 +10,8 @@
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/in_process_browser_test.h"
 
+using content::OpenURLParams;
+
 class ViewIDTest : public InProcessBrowserTest {
  public:
   ViewIDTest() : root_window_(NULL) {}
diff --git a/chrome/browser/ui/gtk/web_intent_picker_gtk.cc b/chrome/browser/ui/gtk/web_intent_picker_gtk.cc
index c72d04e..af40ebb2 100644
--- a/chrome/browser/ui/gtk/web_intent_picker_gtk.cc
+++ b/chrome/browser/ui/gtk/web_intent_picker_gtk.cc
@@ -313,11 +313,6 @@
 WebIntentPickerGtk::InlineDispositionDelegate::InlineDispositionDelegate() {}
 WebIntentPickerGtk::InlineDispositionDelegate::~InlineDispositionDelegate() {}
 
-TabContents* WebIntentPickerGtk::InlineDispositionDelegate::OpenURLFromTab(
-    TabContents* source,
-    const OpenURLParams& params) {
-  return NULL;
-}
 
 bool WebIntentPickerGtk::InlineDispositionDelegate::IsPopupOrPanel(
     const TabContents* source) const {
diff --git a/chrome/browser/ui/gtk/web_intent_picker_gtk.h b/chrome/browser/ui/gtk/web_intent_picker_gtk.h
index 9c434ed2..ccf2571 100644
--- a/chrome/browser/ui/gtk/web_intent_picker_gtk.h
+++ b/chrome/browser/ui/gtk/web_intent_picker_gtk.h
@@ -59,8 +59,6 @@
    public:
     InlineDispositionDelegate();
     virtual ~InlineDispositionDelegate();
-    virtual TabContents* OpenURLFromTab(TabContents* source,
-                                        const OpenURLParams& params) OVERRIDE;
     virtual bool IsPopupOrPanel(const TabContents* source) const OVERRIDE;
     virtual bool ShouldAddNavigationToHistory(
       const history::HistoryAddPageArgs& add_page_args,
diff --git a/chrome/browser/ui/login/login_prompt_browsertest.cc b/chrome/browser/ui/login/login_prompt_browsertest.cc
index ba8dcea..c879992c 100644
--- a/chrome/browser/ui/login/login_prompt_browsertest.cc
+++ b/chrome/browser/ui/login/login_prompt_browsertest.cc
@@ -22,6 +22,9 @@
 #include "net/base/auth.h"
 #include "net/base/mock_host_resolver.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 class LoginPromptBrowserTest : public InProcessBrowserTest {
@@ -247,8 +250,8 @@
   observer.Register(content::Source<NavigationController>(controller));
 
   WindowedLoadStopObserver load_stop_waiter(controller, 1);
-  browser()->OpenURL(
-      test_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   load_stop_waiter.Wait();
   EXPECT_TRUE(observer.handlers_.empty());
@@ -282,12 +285,13 @@
     // no_auth_page_2.
     WindowedLoadStopObserver load_stop_waiter(controller, 2);
     WindowedAuthNeededObserver auth_needed_waiter(controller);
-    browser()->OpenURL(
-        auth_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        auth_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
     auth_needed_waiter.Wait();
     WindowedAuthCancelledObserver auth_cancelled_waiter(controller);
-    browser()->OpenURL(
-        no_auth_page_2, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        no_auth_page_2, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_cancelled_waiter.Wait();
     load_stop_waiter.Wait();
     EXPECT_TRUE(observer.handlers_.empty());
@@ -298,8 +302,9 @@
     // As above, we wait for two LOAD_STOP events; one for each navigation.
     WindowedLoadStopObserver load_stop_waiter(controller, 2);
     WindowedAuthNeededObserver auth_needed_waiter(controller);
-    browser()->OpenURL(
-        auth_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        auth_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_needed_waiter.Wait();
     WindowedAuthCancelledObserver auth_cancelled_waiter(controller);
     ASSERT_TRUE(browser()->CanGoBack());
@@ -321,8 +326,9 @@
     // We wait for two LOAD_STOP events; one for each navigation.
     WindowedLoadStopObserver load_stop_waiter(controller, 2);
     WindowedAuthNeededObserver auth_needed_waiter(controller);
-    browser()->OpenURL(
-        auth_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        auth_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_needed_waiter.Wait();
     WindowedAuthCancelledObserver auth_cancelled_waiter(controller);
     ASSERT_TRUE(browser()->CanGoForward());
@@ -336,8 +342,9 @@
   {
     WindowedLoadStopObserver load_stop_waiter(controller, 1);
     WindowedAuthNeededObserver auth_needed_waiter(controller);
-    browser()->OpenURL(
-        auth_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        auth_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_needed_waiter.Wait();
     WindowedAuthCancelledObserver auth_cancelled_waiter(controller);
     LoginHandler* handler = *observer.handlers_.begin();
@@ -371,8 +378,9 @@
 
   {
     WindowedAuthNeededObserver auth_needed_waiter(controller);
-    browser()->OpenURL(
-        test_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_needed_waiter.Wait();
   }
 
@@ -425,8 +433,9 @@
   {
     WindowedAuthNeededObserver auth_needed_waiter(controller);
 
-    browser()->OpenURL(
-        test_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_needed_waiter.Wait();
   }
 
@@ -473,8 +482,9 @@
 
   {
     WindowedAuthNeededObserver auth_needed_waiter(controller);
-    browser()->OpenURL(
-        test_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_needed_waiter.Wait();
   }
 
@@ -547,8 +557,9 @@
   {
     GURL test_page = test_server()->GetURL(kFaviconTestPage);
     WindowedLoadStopObserver load_stop_waiter(controller, 1);
-    browser()->OpenURL(
-        test_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     load_stop_waiter.Wait();
   }
 
@@ -558,8 +569,9 @@
     GURL test_page = test_server()->GetURL(kFaviconResource);
     WindowedLoadStopObserver load_stop_waiter(controller, 1);
     WindowedAuthNeededObserver auth_needed_waiter(controller);
-    browser()->OpenURL(
-        test_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_needed_waiter.Wait();
     ASSERT_EQ(1u, observer.handlers_.size());
 
@@ -610,8 +622,9 @@
     test_page = test_page.ReplaceComponents(replacements);
 
     WindowedLoadStopObserver load_stop_waiter(controller, 1);
-    browser()->OpenURL(
-        test_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     load_stop_waiter.Wait();
   }
 
@@ -631,8 +644,9 @@
     test_page = test_page.ReplaceComponents(replacements);
 
     WindowedAuthNeededObserver auth_needed_waiter(controller);
-    browser()->OpenURL(
-        test_page, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
     auth_needed_waiter.Wait();
     ASSERT_EQ(1u, observer.handlers_.size());
 
diff --git a/chrome/browser/ui/panels/panel_settings_menu_model.cc b/chrome/browser/ui/panels/panel_settings_menu_model.cc
index cb079dc..6e36c04 100644
--- a/chrome/browser/ui/panels/panel_settings_menu_model.cc
+++ b/chrome/browser/ui/panels/panel_settings_menu_model.cc
@@ -16,6 +16,9 @@
 #include "grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 PanelSettingsMenuModel::PanelSettingsMenuModel(Panel* panel)
     : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)),
       panel_(panel) {
@@ -75,12 +78,13 @@
 
   Browser* browser = panel_->browser();
   switch (command_id) {
-    case COMMAND_NAME:
-     browser->OpenURL(extension->GetHomepageURL(),
-                      GURL(),
-                      NEW_FOREGROUND_TAB,
-                      content::PAGE_TRANSITION_LINK);
+    case COMMAND_NAME: {
+      OpenURLParams params(
+          extension->GetHomepageURL(), Referrer(), NEW_FOREGROUND_TAB,
+          content::PAGE_TRANSITION_LINK, false);
+      browser->OpenURL(params);
       break;
+    }
     case COMMAND_CONFIGURE:
       DCHECK(!extension->options_url().is_empty());
       browser->GetProfile()->GetExtensionProcessManager()->OpenOptionsPage(
diff --git a/chrome/browser/ui/pdf/pdf_unsupported_feature.cc b/chrome/browser/ui/pdf/pdf_unsupported_feature.cc
index 0dd9f97c..f5db878 100644
--- a/chrome/browser/ui/pdf/pdf_unsupported_feature.cc
+++ b/chrome/browser/ui/pdf/pdf_unsupported_feature.cc
@@ -32,7 +32,9 @@
 #include "ui/gfx/image/image.h"
 #include "webkit/plugins/npapi/plugin_group.h"
 
+using content::OpenURLParams;
 using content::PluginService;
+using content::Referrer;
 using content::UserMetricsAction;
 using webkit::npapi::PluginGroup;
 using webkit::WebPluginInfo;
@@ -129,8 +131,10 @@
 
 // Launch the url to get the latest Adbobe Reader installer.
 void OpenReaderUpdateURL(TabContents* tab) {
-  tab->OpenURL(GURL(kReaderUpdateUrl), GURL(), NEW_FOREGROUND_TAB,
-               content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      GURL(kReaderUpdateUrl), Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK, false);
+  tab->OpenURL(params);
 }
 
 // Opens the PDF using Adobe Reader.
diff --git a/chrome/browser/ui/toolbar/toolbar_model_unittest.cc b/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
index 5d321bc..a5bc9c8 100644
--- a/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
+++ b/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
@@ -11,6 +11,9 @@
 #include "content/browser/tab_contents/tab_contents.h"
 #include "content/public/common/url_constants.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 class ToolbarModelTest : public BrowserWithTestWindowTest {
  public:
   ToolbarModelTest() {}
@@ -20,8 +23,9 @@
                             const std::string& expected_text,
                             bool should_display) {
     TabContents* contents = browser()->GetTabContentsAt(0);
-    browser()->OpenURL(GURL(url), GURL(), CURRENT_TAB,
-                       content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        GURL(url), Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
+        false));
 
     // Check while loading.
     EXPECT_EQ(should_display, browser()->toolbar_model()->ShouldDisplayURL());
diff --git a/chrome/browser/ui/views/about_chrome_view.cc b/chrome/browser/ui/views/about_chrome_view.cc
index a21b870..84cbe24 100644
--- a/chrome/browser/ui/views/about_chrome_view.cc
+++ b/chrome/browser/ui/views/about_chrome_view.cc
@@ -51,6 +51,8 @@
 #include "chrome/installer/util/install_util.h"
 #endif  // defined(OS_WIN)
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 // The amount of vertical space separating the error label at the bottom from
@@ -625,7 +627,9 @@
   }
 
   Browser* browser = BrowserList::GetLastActiveWithProfile(profile_);
-  browser->OpenURL(url, GURL(), NEW_WINDOW, content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      url, Referrer(), NEW_WINDOW, content::PAGE_TRANSITION_LINK, false);
+  browser->OpenURL(params);
 }
 
 #if defined(OS_WIN) && !defined(USE_AURA)
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index 61f7c5a..14306abb 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -37,10 +37,10 @@
 #include "chrome/common/pref_names.h"
 #include "content/browser/renderer_host/render_view_host.h"
 #include "content/browser/renderer_host/render_widget_host_view.h"
-#include "content/browser/tab_contents/page_navigator.h"
 #include "content/browser/tab_contents/tab_contents.h"
 #include "content/public/browser/notification_details.h"
 #include "content/public/browser/notification_source.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/public/browser/user_metrics.h"
 #include "content/public/common/page_transition_types.h"
 #include "grit/generated_resources.h"
@@ -62,6 +62,9 @@
 #include "ui/views/widget/tooltip_manager.h"
 #include "ui/views/widget/widget.h"
 
+using content::OpenURLParams;
+using content::PageNavigator;
+using content::Referrer;
 using content::UserMetricsAction;
 using views::CustomButton;
 using views::DropTargetEvent;
@@ -1029,8 +1032,10 @@
   Profile* profile = browser_->profile();
   if (node->is_url()) {
     RecordAppLaunch(profile, node->url());
-    page_navigator_->OpenURL(node->url(), GURL(),
-        disposition_from_event_flags, content::PAGE_TRANSITION_AUTO_BOOKMARK);
+    OpenURLParams params(
+        node->url(), Referrer(), disposition_from_event_flags,
+        content::PAGE_TRANSITION_AUTO_BOOKMARK, false);
+    page_navigator_->OpenURL(params);
   } else {
     bookmark_utils::OpenAll(GetWidget()->GetNativeWindow(), profile,
         page_navigator_, node, disposition_from_event_flags);
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
index 2cc33b6..6ad2fcab 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
@@ -29,7 +29,10 @@
 
 class BookmarkContextMenu;
 class Browser;
+
+namespace content {
 class PageNavigator;
+}
 
 namespace ui {
 class SlideAnimation;
@@ -79,7 +82,7 @@
 
   // Sets the PageNavigator that is used when the user selects an entry on
   // the bookmark bar.
-  void SetPageNavigator(PageNavigator* navigator);
+  void SetPageNavigator(content::PageNavigator* navigator);
 
   // Sets whether the containing browser is showing an infobar.  This affects
   // layout during animation.
@@ -353,7 +356,7 @@
   content::NotificationRegistrar registrar_;
 
   // Used for opening urls.
-  PageNavigator* page_navigator_;
+  content::PageNavigator* page_navigator_;
 
   // Model providing details as to the starred entries/folders that should be
   // shown. This is owned by the Profile.
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
index e384989..014cf2a0 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
@@ -21,8 +21,8 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "chrome/test/base/view_event_test_base.h"
-#include "content/browser/tab_contents/page_navigator.h"
 #include "content/public/browser/notification_service.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/test/test_browser_thread.h"
 #include "grit/generated_resources.h"
 #include "ui/base/accessibility/accessibility_types.h"
@@ -37,6 +37,9 @@
 #include "ui/views/widget/widget.h"
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::PageNavigator;
+using content::WebContents;
 
 #if defined(OS_LINUX)
 // See http://crbug.com/40040 for details.
@@ -116,18 +119,7 @@
 // PageNavigator implementation that records the URL.
 class TestingPageNavigator : public PageNavigator {
  public:
-  // Deprecated. Please use the one-argument variant.
-  // TODO(adriansc): Remove this function once refactoring has changed
-  // all call sites.
-  virtual TabContents* OpenURL(const GURL& url,
-                               const GURL& referrer,
-                               WindowOpenDisposition disposition,
-                               content::PageTransition transition) OVERRIDE {
-    return OpenURL(OpenURLParams(url, content::Referrer(), disposition,
-                                 transition, false));
-  }
-
-  virtual TabContents* OpenURL(const OpenURLParams& params) OVERRIDE {
+  virtual WebContents* OpenURL(const OpenURLParams& params) OVERRIDE {
     url_ = params.url;
     return NULL;
   }
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc b/chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc
index 3a2f842..5a8f993c 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc
@@ -17,6 +17,8 @@
 #include "ui/views/controls/menu/menu_runner.h"
 #include "ui/views/widget/widget.h"
 
+using content::PageNavigator;
+
 ////////////////////////////////////////////////////////////////////////////////
 // BookmarkContextMenu, public:
 
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu.h b/chrome/browser/ui/views/bookmarks/bookmark_context_menu.h
index 860a2e72..5c90ab0 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu.h
@@ -35,7 +35,7 @@
   BookmarkContextMenu(
       views::Widget* parent_widget,
       Profile* profile,
-      PageNavigator* page_navigator,
+      content::PageNavigator* page_navigator,
       const BookmarkNode* parent,
       const std::vector<const BookmarkNode*>& selection,
       bool close_on_remove);
@@ -51,7 +51,7 @@
   }
 
   // Sets the PageNavigator.
-  void SetPageNavigator(PageNavigator* navigator);
+  void SetPageNavigator(content::PageNavigator* navigator);
 
   // Overridden from views::MenuDelegate:
   virtual void ExecuteCommand(int command_id) OVERRIDE;
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc
index f9b337e..310c22a 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc
@@ -15,11 +15,12 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/common/pref_names.h"
-#include "content/browser/tab_contents/page_navigator.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/public/browser/user_metrics.h"
 #include "grit/generated_resources.h"
 #include "ui/views/widget/widget.h"
 
+using content::PageNavigator;
 using content::UserMetricsAction;
 
 BookmarkContextMenuControllerViews::BookmarkContextMenuControllerViews(
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.h b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.h
index 28d655c1..5a7de194 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.h
@@ -11,9 +11,12 @@
 #include "base/basictypes.h"
 #include "chrome/browser/bookmarks/base_bookmark_model_observer.h"
 
-class PageNavigator;
 class Profile;
 
+namespace content {
+class PageNavigator;
+}
+
 namespace views {
 class Widget;
 }
@@ -55,7 +58,7 @@
       views::Widget* parent_widget,
       BookmarkContextMenuControllerViewsDelegate* delegate,
       Profile* profile,
-      PageNavigator* navigator,
+      content::PageNavigator* navigator,
       const BookmarkNode* parent,
       const std::vector<const BookmarkNode*>& selection);
   virtual ~BookmarkContextMenuControllerViews();
@@ -68,8 +71,10 @@
 
   Profile* profile() const { return profile_; }
 
-  void set_navigator(PageNavigator* navigator) { navigator_ = navigator; }
-  PageNavigator* navigator() const { return navigator_; }
+  void set_navigator(content::PageNavigator* navigator) {
+    navigator_ = navigator;
+  }
+  content::PageNavigator* navigator() const { return navigator_; }
 
  private:
   // Overridden from BaseBookmarkModelObserver:
@@ -85,7 +90,7 @@
   views::Widget* parent_widget_;
   BookmarkContextMenuControllerViewsDelegate* delegate_;
   Profile* profile_;
-  PageNavigator* navigator_;
+  content::PageNavigator* navigator_;
   const BookmarkNode* parent_;
   std::vector<const BookmarkNode*> selection_;
   BookmarkModel* model_;
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_test.cc b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_test.cc
index 2e244b7..17244f5 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_test.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_test.cc
@@ -14,7 +14,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/views/bookmarks/bookmark_context_menu.h"
 #include "chrome/test/base/testing_profile.h"
-#include "content/browser/tab_contents/page_navigator.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/test/test_browser_thread.h"
 #include "grit/generated_resources.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -24,24 +24,16 @@
 #endif
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::PageNavigator;
+using content::WebContents;
 
 namespace {
 
 // PageNavigator implementation that records the URL.
 class TestingPageNavigator : public PageNavigator {
  public:
-  // Deprecated. Please use one-argument variant.
-  // TODO(adriansc): Remove this method once refactoring changed all call
-  // sites.
-  virtual TabContents* OpenURL(const GURL& url,
-                               const GURL& referrer,
-                               WindowOpenDisposition disposition,
-                               content::PageTransition transition) OVERRIDE {
-    return OpenURL(OpenURLParams(url, content::Referrer(), disposition,
-                                 transition, false));
-  }
-
-  virtual TabContents* OpenURL(const OpenURLParams& params) OVERRIDE {
+  virtual WebContents* OpenURL(const OpenURLParams& params) OVERRIDE {
     urls_.push_back(params.url);
     return NULL;
   }
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc
index b3564464..4de786d7 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc
@@ -15,7 +15,7 @@
 #include "chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h"
 #include "chrome/browser/ui/views/event_utils.h"
 #include "chrome/common/pref_names.h"
-#include "content/browser/tab_contents/page_navigator.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/public/browser/user_metrics.h"
 #include "grit/generated_resources.h"
 #include "grit/theme_resources.h"
@@ -26,6 +26,7 @@
 #include "ui/views/controls/menu/menu_runner.h"
 #include "ui/views/widget/widget.h"
 
+using content::PageNavigator;
 using content::UserMetricsAction;
 using views::MenuItemView;
 
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h
index 1420f2c..af280870 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h
@@ -17,9 +17,12 @@
 class BookmarkBarView;
 class BookmarkMenuDelegate;
 class BookmarkNode;
-class PageNavigator;
 class Profile;
 
+namespace content {
+class PageNavigator;
+}
+
 namespace ui {
 class OSExchangeData;
 }  // namespace ui
@@ -49,7 +52,7 @@
   // Creates a BookmarkMenuController showing the children of |node| starting
   // at |start_child_index|.
   BookmarkMenuController(Profile* profile,
-                         PageNavigator* page_navigator,
+                         content::PageNavigator* page_navigator,
                          views::Widget* parent,
                          const BookmarkNode* node,
                          int start_child_index);
@@ -69,7 +72,7 @@
   views::MenuItemView* context_menu() const;
 
   // Sets the page navigator.
-  void SetPageNavigator(PageNavigator* navigator);
+  void SetPageNavigator(content::PageNavigator* navigator);
 
   void set_observer(Observer* observer) { observer_ = observer; }
 
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
index 5495b8d..12e218ea 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
@@ -13,7 +13,7 @@
 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
 #include "chrome/browser/ui/views/event_utils.h"
 #include "chrome/common/pref_names.h"
-#include "content/browser/tab_contents/page_navigator.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/public/browser/user_metrics.h"
 #include "grit/generated_resources.h"
 #include "grit/theme_resources.h"
@@ -26,6 +26,7 @@
 #include "ui/views/controls/menu/submenu_view.h"
 #include "ui/views/widget/widget.h"
 
+using content::PageNavigator;
 using content::UserMetricsAction;
 using views::MenuItemView;
 
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h
index 2d5999c..d10b3645 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h
@@ -17,9 +17,12 @@
 #include "ui/views/controls/menu/menu_delegate.h"
 
 class BookmarkNode;
-class PageNavigator;
 class Profile;
 
+namespace content {
+class PageNavigator;
+}
+
 namespace ui {
 class OSExchangeData;
 }
@@ -48,7 +51,7 @@
   };
 
   BookmarkMenuDelegate(Profile* profile,
-                       PageNavigator* navigator,
+                       content::PageNavigator* navigator,
                        views::Widget* parent,
                        int first_menu_id);
   virtual ~BookmarkMenuDelegate();
@@ -62,7 +65,7 @@
             bookmark_utils::BookmarkLaunchLocation);
 
   // Sets the PageNavigator.
-  void SetPageNavigator(PageNavigator* navigator);
+  void SetPageNavigator(content::PageNavigator* navigator);
 
   // Returns the id given to the next menu.
   int next_menu_id() const { return next_menu_id_; }
@@ -160,7 +163,7 @@
 
   Profile* profile_;
 
-  PageNavigator* page_navigator_;
+  content::PageNavigator* page_navigator_;
 
   // Parent of menus.
   views::Widget* parent_;
diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
index 70fca75..9bb596bf 100644
--- a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
+++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
@@ -29,6 +29,9 @@
 #include "ui/views/widget/widget.h"
 #include "ui/views/window/dialog_delegate.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 // Size of extension icon in top left of dialog.
@@ -299,8 +302,10 @@
                                              int event_flags) {
   GURL store_url(
       extension_urls::GetWebstoreItemDetailURLPrefix() + extension_->id());
-  BrowserList::GetLastActive()->OpenURL(
-      store_url, GURL(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      store_url, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK,
+      false);
+  BrowserList::GetLastActive()->OpenURL(params);
   GetWidget()->Close();
 }
 
diff --git a/chrome/browser/ui/views/instant_confirm_view.cc b/chrome/browser/ui/views/instant_confirm_view.cc
index 42f3c59..488b6c5 100644
--- a/chrome/browser/ui/views/instant_confirm_view.cc
+++ b/chrome/browser/ui/views/instant_confirm_view.cc
@@ -20,6 +20,9 @@
 #include "ui/views/layout/layout_constants.h"
 #include "ui/views/widget/widget.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 InstantConfirmView::InstantConfirmView(Profile* profile) : profile_(profile) {
   views::Label* description_label = new views::Label(
       l10n_util::GetStringUTF16(IDS_INSTANT_OPT_IN_MESSAGE));
@@ -80,8 +83,10 @@
 
 void InstantConfirmView::LinkClicked(views::Link* source, int event_flags) {
   Browser* browser = BrowserList::GetLastActiveWithProfile(profile_);
-  browser->OpenURL(browser::InstantLearnMoreURL(), GURL(),
-                   NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_TYPED);
+  OpenURLParams params(
+      browser::InstantLearnMoreURL(), Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_TYPED, false);
+  browser->OpenURL(params);
 }
 
 namespace browser {
diff --git a/chrome/browser/ui/views/page_info_bubble_view.cc b/chrome/browser/ui/views/page_info_bubble_view.cc
index cda225f3..6b8e139 100644
--- a/chrome/browser/ui/views/page_info_bubble_view.cc
+++ b/chrome/browser/ui/views/page_info_bubble_view.cc
@@ -29,6 +29,8 @@
 #include "ui/views/layout/grid_layout.h"
 #include "ui/views/widget/widget.h"
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::SSLStatus;
 
 namespace {
@@ -309,8 +311,9 @@
   GURL url = google_util::AppendGoogleLocaleParam(
       GURL(chrome::kPageInfoHelpCenterURL));
   Browser* browser = BrowserList::GetLastActive();
-  browser->OpenURL(
-      url, GURL(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      url, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false);
+  browser->OpenURL(params);
   // NOTE: The bubble closes automatically on deactivation as the link opens.
 }
 
diff --git a/chrome/browser/ui/views/sad_tab_view.cc b/chrome/browser/ui/views/sad_tab_view.cc
index 3479e1e2..7449f2d 100644
--- a/chrome/browser/ui/views/sad_tab_view.cc
+++ b/chrome/browser/ui/views/sad_tab_view.cc
@@ -23,6 +23,7 @@
 #include "ui/views/controls/link.h"
 #include "ui/views/layout/grid_layout.h"
 
+using content::OpenURLParams;
 using content::WebContents;
 
 static const int kPadding = 20;
diff --git a/chrome/browser/ui/views/tabs/default_tab_drag_controller.cc b/chrome/browser/ui/views/tabs/default_tab_drag_controller.cc
index 319400e..1f40719 100644
--- a/chrome/browser/ui/views/tabs/default_tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/default_tab_drag_controller.cc
@@ -43,6 +43,7 @@
 #include <gdk/gdkkeysyms.h>  // NOLINT
 #endif
 
+using content::OpenURLParams;
 using content::UserMetricsAction;
 using content::WebContents;
 
@@ -416,8 +417,9 @@
 ///////////////////////////////////////////////////////////////////////////////
 // DefaultTabDragController, PageNavigator implementation:
 
-TabContents* DefaultTabDragController::OpenURLFromTab(TabContents* source,
-                                                  const OpenURLParams& params) {
+WebContents* DefaultTabDragController::OpenURLFromTab(
+    WebContents* source,
+    const OpenURLParams& params) {
   if (source_tab_drag_data()->original_delegate) {
     OpenURLParams forward_params = params;
     if (params.disposition == CURRENT_TAB)
diff --git a/chrome/browser/ui/views/tabs/default_tab_drag_controller.h b/chrome/browser/ui/views/tabs/default_tab_drag_controller.h
index e08dbc4..bda6490 100644
--- a/chrome/browser/ui/views/tabs/default_tab_drag_controller.h
+++ b/chrome/browser/ui/views/tabs/default_tab_drag_controller.h
@@ -114,8 +114,9 @@
   virtual bool GetStartedDrag() const OVERRIDE;
 
   // Overridden from content::WebContentsDelegate:
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+      content::WebContents* source,
+      const content::OpenURLParams& params) OVERRIDE;
   virtual void NavigationStateChanged(const TabContents* source,
                                       unsigned changed_flags) OVERRIDE;
   virtual void AddNewContents(TabContents* source,
diff --git a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
index dccdf0d8..44c0d193 100644
--- a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
+++ b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
@@ -11,6 +11,9 @@
 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
 #include "content/browser/tab_contents/tab_contents.h"
 
+using content::OpenURLParams;
+using content::WebContents;
+
 // Incognito profiles are not long-lived, so we always want to store a
 // non-incognito profile.
 //
@@ -28,8 +31,8 @@
   profile_ = NULL;
 }
 
-TabContents* HtmlDialogTabContentsDelegate::OpenURLFromTab(
-    TabContents* source, const OpenURLParams& params) {
+WebContents* HtmlDialogTabContentsDelegate::OpenURLFromTab(
+    WebContents* source, const OpenURLParams& params) {
   if (profile_) {
     // Specify a NULL browser for navigation. This will cause Navigate()
     // to find a browser matching params.profile or create a new one.
diff --git a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h
index 31f7c4ab..4aa45f4f 100644
--- a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h
+++ b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h
@@ -32,9 +32,9 @@
   void Detach();
 
   // content::WebContentsDelegate declarations.
-
-  virtual TabContents* OpenURLFromTab(TabContents* source,
-                                      const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURLFromTab(
+      content::WebContents* source,
+      const content::OpenURLParams& params) OVERRIDE;
 
   virtual void AddNewContents(TabContents* source,
                               TabContents* new_contents,
diff --git a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate_unittest.cc b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate_unittest.cc
index b6360243..01d61783 100644
--- a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate_unittest.cc
+++ b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate_unittest.cc
@@ -21,6 +21,9 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/gfx/rect.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 class TestTabContentsDelegate : public HtmlDialogTabContentsDelegate {
@@ -72,7 +75,7 @@
 
 TEST_F(HtmlDialogTabContentsDelegateTest, OpenURLFromTabTest) {
   test_tab_contents_delegate_->OpenURLFromTab(
-    NULL, OpenURLParams(GURL(chrome::kAboutBlankURL), content::Referrer(),
+    NULL, OpenURLParams(GURL(chrome::kAboutBlankURL), Referrer(),
     NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false));
   // This should create a new foreground tab in the existing browser.
   EXPECT_EQ(1, browser()->tab_count());
@@ -95,7 +98,7 @@
   EXPECT_EQ(NULL, test_tab_contents_delegate_->profile());
   // Now, none of the following calls should do anything.
   test_tab_contents_delegate_->OpenURLFromTab(
-      NULL, OpenURLParams(GURL(chrome::kAboutBlankURL), content::Referrer(),
+      NULL, OpenURLParams(GURL(chrome::kAboutBlankURL), Referrer(),
       NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false));
   test_tab_contents_delegate_->AddNewContents(NULL, NULL, NEW_FOREGROUND_TAB,
                                               gfx::Rect(), false);
diff --git a/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc b/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc
index feee76c..810ce22 100644
--- a/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc
+++ b/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc
@@ -11,6 +11,9 @@
 #include "content/public/browser/notification_types.h"
 #include "googleurl/src/gurl.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 class NewTabUIBrowserTest : public InProcessBrowserTest {
  public:
   NewTabUIBrowserTest() {
@@ -55,8 +58,9 @@
     ui_test_utils::WindowedNotificationObserver process_exited_observer(
         content::NOTIFICATION_RENDERER_PROCESS_TERMINATED,
         content::NotificationService::AllSources());
-    browser()->OpenURL(test_server()->GetURL("files/title1.html"), GURL(),
-                       CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+    browser()->OpenURL(OpenURLParams(
+        test_server()->GetURL("files/title1.html"), Referrer(), CURRENT_TAB,
+        content::PAGE_TRANSITION_TYPED, false));
     process_exited_observer.Wait();
   }
 
diff --git a/chrome/browser/ui/webui/ntp/ntp_login_handler.cc b/chrome/browser/ui/webui/ntp/ntp_login_handler.cc
index 4ddf8b0..380a396 100644
--- a/chrome/browser/ui/webui/ntp/ntp_login_handler.cc
+++ b/chrome/browser/ui/webui/ntp/ntp_login_handler.cc
@@ -42,6 +42,9 @@
 #include "ui/gfx/canvas_skia.h"
 #include "ui/gfx/image/image.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 SkBitmap GetGAIAPictureForNTP(const gfx::Image& image) {
@@ -127,9 +130,10 @@
   if (username.empty()) {
     // The user isn't signed in, show the sync promo.
     if (SyncPromoUI::ShouldShowSyncPromo(profile)) {
-      web_ui_->tab_contents()->OpenURL(GURL(chrome::kChromeUISyncPromoURL),
-                                       GURL(), CURRENT_TAB,
-                                       content::PAGE_TRANSITION_LINK);
+      OpenURLParams params(
+          GURL(chrome::kChromeUISyncPromoURL), Referrer(), CURRENT_TAB,
+          content::PAGE_TRANSITION_LINK, false);
+      web_ui_->tab_contents()->OpenURL(params);
       RecordInHistogram(NTP_SIGN_IN_PROMO_CLICKED);
     }
   } else if (args->GetSize() == 4) {
diff --git a/chrome/browser/ui/webui/options/advanced_options_handler.cc b/chrome/browser/ui/webui/options/advanced_options_handler.cc
index 329c03b..5e5f330 100644
--- a/chrome/browser/ui/webui/options/advanced_options_handler.cc
+++ b/chrome/browser/ui/webui/options/advanced_options_handler.cc
@@ -47,6 +47,8 @@
 #endif
 
 using content::DownloadManager;
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 AdvancedOptionsHandler::AdvancedOptionsHandler() {
@@ -474,9 +476,10 @@
   content::RecordAction(UserMetricsAction("Options_ManageCloudPrinters"));
   // Open a new tab in the current window for the management page.
   Profile* profile = Profile::FromWebUI(web_ui_);
-  web_ui_->tab_contents()->OpenURL(
-      CloudPrintURL(profile).GetCloudPrintServiceManageURL(),
-      GURL(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      CloudPrintURL(profile).GetCloudPrintServiceManageURL(), Referrer(),
+      NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false);
+  web_ui_->tab_contents()->OpenURL(params);
 }
 
 #if !defined(OS_CHROMEOS)
@@ -484,10 +487,11 @@
   content::RecordAction(UserMetricsAction("Options_EnableCloudPrintProxy"));
   // Open the connector enable page in the current tab.
   Profile* profile = Profile::FromWebUI(web_ui_);
-  web_ui_->tab_contents()->OpenURL(
+  OpenURLParams params(
       CloudPrintURL(profile).GetCloudPrintServiceEnableURL(
           CloudPrintProxyServiceFactory::GetForProfile(profile)->proxy_id()),
-      GURL(), CURRENT_TAB, content::PAGE_TRANSITION_LINK);
+      Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK, false);
+  web_ui_->tab_contents()->OpenURL(params);
 }
 
 void AdvancedOptionsHandler::HandleDisableCloudPrintConnector(
diff --git a/chrome/browser/ui/webui/options/advanced_options_utils_x11.cc b/chrome/browser/ui/webui/options/advanced_options_utils_x11.cc
index 7b68ba3..b5f8e3b 100644
--- a/chrome/browser/ui/webui/options/advanced_options_utils_x11.cc
+++ b/chrome/browser/ui/webui/options/advanced_options_utils_x11.cc
@@ -17,6 +17,8 @@
 #include "content/public/browser/browser_thread.h"
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::Referrer;
 
 // Command used to configure GNOME 2 proxy settings.
 const char* kGNOME2ProxyConfigCommand[] = {"gnome-network-properties", NULL};
@@ -42,8 +44,10 @@
   const char* name = base::nix::GetDesktopEnvironmentName(env.get());
   if (name)
     LOG(ERROR) << "Could not find " << name << " network settings in $PATH";
-  tab_contents->OpenURL(GURL(kLinuxProxyConfigUrl), GURL(),
-                        NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      GURL(kLinuxProxyConfigUrl), Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK, false);
+  tab_contents->OpenURL(params);
 }
 
 // Start the given proxy configuration utility.
diff --git a/chrome/browser/ui/webui/options2/advanced_options_handler2.cc b/chrome/browser/ui/webui/options2/advanced_options_handler2.cc
index 02f8e1b..05d5343 100644
--- a/chrome/browser/ui/webui/options2/advanced_options_handler2.cc
+++ b/chrome/browser/ui/webui/options2/advanced_options_handler2.cc
@@ -47,6 +47,8 @@
 #endif
 
 using content::DownloadManager;
+using content::OpenURLParams;
+using content::Referrer;
 using content::UserMetricsAction;
 
 namespace options2 {
@@ -476,9 +478,10 @@
   content::RecordAction(UserMetricsAction("Options_ManageCloudPrinters"));
   // Open a new tab in the current window for the management page.
   Profile* profile = Profile::FromWebUI(web_ui_);
-  web_ui_->tab_contents()->OpenURL(
-      CloudPrintURL(profile).GetCloudPrintServiceManageURL(),
-      GURL(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      CloudPrintURL(profile).GetCloudPrintServiceManageURL(), Referrer(),
+      NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false);
+  web_ui_->tab_contents()->OpenURL(params);
 }
 
 #if !defined(OS_CHROMEOS)
@@ -486,10 +489,11 @@
   content::RecordAction(UserMetricsAction("Options_EnableCloudPrintProxy"));
   // Open the connector enable page in the current tab.
   Profile* profile = Profile::FromWebUI(web_ui_);
-  web_ui_->tab_contents()->OpenURL(
+  OpenURLParams params(
       CloudPrintURL(profile).GetCloudPrintServiceEnableURL(
           CloudPrintProxyServiceFactory::GetForProfile(profile)->proxy_id()),
-      GURL(), CURRENT_TAB, content::PAGE_TRANSITION_LINK);
+      Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK, false);
+  web_ui_->tab_contents()->OpenURL(params);
 }
 
 void AdvancedOptionsHandler::HandleDisableCloudPrintConnector(
diff --git a/chrome/browser/ui/webui/options2/advanced_options_utils2_x11.cc b/chrome/browser/ui/webui/options2/advanced_options_utils2_x11.cc
index e505da38..1bba134 100644
--- a/chrome/browser/ui/webui/options2/advanced_options_utils2_x11.cc
+++ b/chrome/browser/ui/webui/options2/advanced_options_utils2_x11.cc
@@ -17,6 +17,8 @@
 #include "content/public/browser/browser_thread.h"
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::Referrer;
 
 namespace options2 {
 
@@ -44,8 +46,10 @@
   const char* name = base::nix::GetDesktopEnvironmentName(env.get());
   if (name)
     LOG(ERROR) << "Could not find " << name << " network settings in $PATH";
-  tab_contents->OpenURL(GURL(kLinuxProxyConfigUrl), GURL(),
-                        NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      GURL(kLinuxProxyConfigUrl), Referrer(), NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK, false);
+  tab_contents->OpenURL(params);
 }
 
 // Start the given proxy configuration utility.
diff --git a/chrome/browser/ui/webui/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview_handler.cc
index 69b9288..1661317 100644
--- a/chrome/browser/ui/webui/print_preview_handler.cc
+++ b/chrome/browser/ui/webui/print_preview_handler.cc
@@ -58,6 +58,8 @@
 #endif
 
 using content::BrowserThread;
+using content::OpenURLParams;
+using content::Referrer;
 using printing::Metafile;
 
 namespace {
@@ -543,11 +545,12 @@
 
 void PrintPreviewHandler::HandleManageCloudPrint(const ListValue* /*args*/) {
   Browser* browser = BrowserList::GetLastActive();
-  browser->OpenURL(CloudPrintURL(browser->profile()).
-                   GetCloudPrintServiceManageURL(),
-                   GURL(),
-                   NEW_FOREGROUND_TAB,
-                   content::PAGE_TRANSITION_LINK);
+  browser->OpenURL(OpenURLParams(
+      CloudPrintURL(browser->profile()).GetCloudPrintServiceManageURL(),
+      Referrer(),
+      NEW_FOREGROUND_TAB,
+      content::PAGE_TRANSITION_LINK,
+      false));
 }
 
 void PrintPreviewHandler::HandleShowSystemDialog(const ListValue* /*args*/) {
diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc b/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc
index 232f8d0..9ea1b965 100644
--- a/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc
+++ b/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc
@@ -26,6 +26,9 @@
 #include "content/public/browser/notification_details.h"
 #include "content/public/browser/notification_service.h"
 
+using content::OpenURLParams;
+using content::Referrer;
+
 namespace {
 
 // User actions on the sync promo (aka "Sign in to Chrome").
@@ -201,8 +204,9 @@
 
   GURL url = SyncPromoUI::GetNextPageURLForSyncPromoURL(
       web_ui_->tab_contents()->GetURL());
-  web_ui_->tab_contents()->OpenURL(url, GURL(), CURRENT_TAB,
-                                   content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK, false);
+  web_ui_->tab_contents()->OpenURL(params);
 }
 
 void SyncPromoHandler::HandleInitializeSyncPromo(const base::ListValue* args) {
@@ -232,8 +236,9 @@
   CloseSyncSetup();
   std::string url(chrome::kChromeUISettingsURL);
   url += chrome::kSyncSetupSubPage;
-  web_ui_->tab_contents()->OpenURL(GURL(url), GURL(), CURRENT_TAB,
-                                   content::PAGE_TRANSITION_LINK);
+  OpenURLParams params(
+      GURL(url), Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK, false);
+  web_ui_->tab_contents()->OpenURL(params);
   RecordUserFlowAction(SYNC_PROMO_ADVANCED_CLICKED);
 }
 
diff --git a/chrome/test/base/browser_with_test_window_test.h b/chrome/test/base/browser_with_test_window_test.h
index e48aa36..ec8fee36 100644
--- a/chrome/test/base/browser_with_test_window_test.h
+++ b/chrome/test/base/browser_with_test_window_test.h
@@ -44,9 +44,9 @@
 //   NavigateAndCommit(controller, url2);
 //
 //   // This is equivalent to the above, and lets you test pending navigations.
-//   browser()->OpenURL(GURL("http://foo/2"), GURL(), CURRENT_TAB,
-//                      content::PAGE_TRANSITION_TYPED);
-//                      PageTransition::TYPED);
+//   browser()->OpenURL(OpenURLParams(
+//       GURL("http://foo/2"), GURL(), CURRENT_TAB,
+//       content::PAGE_TRANSITION_TYPED, false));
 //   CommitPendingLoad(controller);
 //
 // Subclasses must invoke BrowserWithTestWindowTest::SetUp as it is responsible
diff --git a/chrome/test/base/ui_test_utils.cc b/chrome/test/base/ui_test_utils.cc
index 3e53676a..2617ea5 100644
--- a/chrome/test/base/ui_test_utils.cc
+++ b/chrome/test/base/ui_test_utils.cc
@@ -68,6 +68,8 @@
 #include "ui/aura/root_window.h"
 #endif
 
+using content::OpenURLParams;
+using content::Referrer;
 using content::WebContents;
 
 static const int kDefaultWsPort = 8880;
@@ -416,7 +418,8 @@
       content::NOTIFICATION_TAB_ADDED,
       content::NotificationService::AllSources());
 
-  browser->OpenURL(url, GURL(), disposition, content::PAGE_TRANSITION_TYPED);
+  browser->OpenURL(OpenURLParams(
+      url, Referrer(), disposition, content::PAGE_TRANSITION_TYPED, false));
   if (browser_test_flags & BROWSER_TEST_WAIT_FOR_BROWSER)
     browser = WaitForBrowserNotInSet(initial_browsers);
   if (browser_test_flags & BROWSER_TEST_WAIT_FOR_TAB)
diff --git a/content/browser/accessibility/renderer_accessibility_browsertest.cc b/content/browser/accessibility/renderer_accessibility_browsertest.cc
index 62e406d1..0b04b797 100644
--- a/content/browser/accessibility/renderer_accessibility_browsertest.cc
+++ b/content/browser/accessibility/renderer_accessibility_browsertest.cc
@@ -22,6 +22,8 @@
 #include "ui/base/win/atl_module.h"
 #endif
 
+using content::OpenURLParams;
+using content::Referrer;
 using webkit_glue::WebAccessibility;
 
 namespace {
@@ -131,7 +133,8 @@
       "<body><input type='button' value='push' /><input type='checkbox' />"
       "</body></html>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
   const WebAccessibility& tree = GetWebAccessibilityTree();
 
   // Check properties of the root element of the tree.
@@ -193,7 +196,8 @@
       "<input value=\"Hello, world.\"/>"
       "</body></html>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   const WebAccessibility& tree = GetWebAccessibilityTree();
   ASSERT_EQ(1U, tree.children.size());
@@ -222,7 +226,8 @@
       "<input value=\"Hello, world.\"/>"
       "</body></html>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   const WebAccessibility& tree = GetWebAccessibilityTree();
   ASSERT_EQ(1U, tree.children.size());
@@ -249,7 +254,8 @@
       "<!doctype html>"
       "<table border=1><tr><td>1</td><td>2</td></tr></table>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   const WebAccessibility& tree = GetWebAccessibilityTree();
   ASSERT_EQ(1U, tree.children.size());
@@ -290,7 +296,8 @@
       "  }, 1);\n"
       "</script>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   const WebAccessibility& tree = GetWebAccessibilityTree();
   base::hash_set<int> ids;
@@ -310,7 +317,8 @@
       "<button>Button 3</button>"
       "</body></html>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   const WebAccessibility& tree = GetWebAccessibilityTree();
   ASSERT_EQ(1U, tree.children.size());
@@ -356,7 +364,8 @@
       "<!doctype html>"
       "<em><code ><h4 ></em>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   const WebAccessibility& tree = GetWebAccessibilityTree();
   base::hash_set<int> ids;
@@ -384,7 +393,8 @@
       " </tr>"
       "</table>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
 
   const WebAccessibility& tree = GetWebAccessibilityTree();
   const WebAccessibility& table = tree.children[0];
@@ -442,7 +452,8 @@
       " Some text"
       "</div>";
   GURL url(url_str);
-  browser()->OpenURL(url, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED);
+  browser()->OpenURL(OpenURLParams(
+      url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
   const WebAccessibility& tree = GetWebAccessibilityTree();
 
   ASSERT_EQ(1U, tree.children.size());
diff --git a/content/browser/download/download_resource_handler.cc b/content/browser/download/download_resource_handler.cc
index 531f209..34d072d6 100644
--- a/content/browser/download/download_resource_handler.cc
+++ b/content/browser/download/download_resource_handler.cc
@@ -17,7 +17,6 @@
 #include "content/browser/download/download_request_handle.h"
 #include "content/browser/download/download_stats.h"
 #include "content/browser/download/interrupt_reasons.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_dispatcher_host.h"
 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
 #include "content/public/browser/browser_thread.h"
diff --git a/content/browser/download/download_resource_handler.h b/content/browser/download/download_resource_handler.h
index 85f669c..5425c51 100644
--- a/content/browser/download/download_resource_handler.h
+++ b/content/browser/download/download_resource_handler.h
@@ -13,8 +13,8 @@
 #include "base/timer.h"
 #include "content/browser/download/download_id.h"
 #include "content/browser/download/download_types.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_handler.h"
+#include "content/public/browser/global_request_id.h"
 #include "net/base/net_errors.h"
 
 class DownloadFileManager;
@@ -100,7 +100,7 @@
   void CallStartedCB(net::Error error);
 
   DownloadId download_id_;
-  GlobalRequestID global_id_;
+  content::GlobalRequestID global_id_;
   int render_view_id_;
   scoped_refptr<net::IOBuffer> read_buffer_;
   std::string content_disposition_;
diff --git a/content/browser/renderer_host/async_resource_handler.cc b/content/browser/renderer_host/async_resource_handler.cc
index d4b5a159..d4635796 100644
--- a/content/browser/renderer_host/async_resource_handler.cc
+++ b/content/browser/renderer_host/async_resource_handler.cc
@@ -12,13 +12,13 @@
 #include "base/shared_memory.h"
 #include "content/browser/debugger/devtools_netlog_observer.h"
 #include "content/browser/host_zoom_map.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_dispatcher_host.h"
 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
 #include "content/browser/renderer_host/resource_message_filter.h"
 #include "content/browser/resource_context.h"
 #include "content/common/resource_messages.h"
 #include "content/common/view_messages.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/browser/resource_dispatcher_host_delegate.h"
 #include "content/public/common/resource_response.h"
 #include "net/base/io_buffer.h"
@@ -27,6 +27,7 @@
 #include "webkit/glue/resource_loader_bridge.h"
 
 using base::TimeTicks;
+using content::GlobalRequestID;
 
 namespace {
 
diff --git a/content/browser/renderer_host/cross_site_resource_handler.cc b/content/browser/renderer_host/cross_site_resource_handler.cc
index a354c10..b93ea22 100644
--- a/content/browser/renderer_host/cross_site_resource_handler.cc
+++ b/content/browser/renderer_host/cross_site_resource_handler.cc
@@ -8,16 +8,18 @@
 
 #include "base/bind.h"
 #include "base/logging.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/render_view_host.h"
 #include "content/browser/renderer_host/render_view_host_delegate.h"
 #include "content/browser/renderer_host/resource_dispatcher_host.h"
 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/common/resource_response.h"
 #include "net/base/io_buffer.h"
 #include "net/http/http_response_headers.h"
 
+using content::GlobalRequestID;
+
 namespace {
 
 void OnCrossSiteResponseHelper(int render_process_id,
diff --git a/content/browser/renderer_host/cross_site_resource_handler.h b/content/browser/renderer_host/cross_site_resource_handler.h
index a27a7ee..45e3d15 100644
--- a/content/browser/renderer_host/cross_site_resource_handler.h
+++ b/content/browser/renderer_host/cross_site_resource_handler.h
@@ -10,7 +10,10 @@
 #include "net/url_request/url_request_status.h"
 
 class ResourceDispatcherHost;
+
+namespace content {
 struct GlobalRequestID;
+}
 
 // Ensures that cross-site responses are delayed until the onunload handler of
 // the previous page is allowed to run.  This handler wraps an
@@ -60,7 +63,7 @@
   void StartCrossSiteTransition(
       int request_id,
       content::ResourceResponse* response,
-      const GlobalRequestID& global_id);
+      const content::GlobalRequestID& global_id);
 
   scoped_refptr<ResourceHandler> next_handler_;
   int render_process_host_id_;
diff --git a/content/browser/renderer_host/render_view_host_delegate.h b/content/browser/renderer_host/render_view_host_delegate.h
index 7ed56d9..2494f15 100644
--- a/content/browser/renderer_host/render_view_host_delegate.h
+++ b/content/browser/renderer_host/render_view_host_delegate.h
@@ -28,7 +28,6 @@
 class TabContents;
 class WebKeyboardEvent;
 struct ContextMenuParams;
-struct GlobalRequestID;
 struct NativeWebKeyboardEvent;
 struct ViewHostMsg_CreateWindow_Params;
 struct ViewHostMsg_FrameNavigate_Params;
@@ -44,6 +43,7 @@
 class BrowserContext;
 class WebContents;
 struct FileChooserParams;
+struct GlobalRequestID;
 struct Referrer;
 struct RendererPreferences;
 }
@@ -282,11 +282,12 @@
                               int64 source_frame_id) {}
 
   // The page wants to transfer the request to a new renderer.
-  virtual void RequestTransferURL(const GURL& url,
-                                  const content::Referrer& referrer,
-                                  WindowOpenDisposition disposition,
-                                  int64 source_frame_id,
-                                  const GlobalRequestID& old_request_id) {}
+  virtual void RequestTransferURL(
+      const GURL& url,
+      const content::Referrer& referrer,
+      WindowOpenDisposition disposition,
+      int64 source_frame_id,
+      const content::GlobalRequestID& old_request_id) {}
 
   // A javascript message, confirmation or prompt should be shown.
   virtual void RunJavaScriptMessage(const RenderViewHost* rvh,
diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc
index fbe3825..120f09e 100644
--- a/content/browser/renderer_host/resource_dispatcher_host.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host.cc
@@ -35,7 +35,6 @@
 #include "content/browser/renderer_host/async_resource_handler.h"
 #include "content/browser/renderer_host/buffered_resource_handler.h"
 #include "content/browser/renderer_host/cross_site_resource_handler.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/redirect_to_file_resource_handler.h"
 #include "content/browser/renderer_host/render_view_host.h"
 #include "content/browser/renderer_host/render_view_host_delegate.h"
@@ -54,6 +53,7 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/content_browser_client.h"
 #include "content/public/browser/download_manager.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/browser/notification_service.h"
 #include "content/public/browser/resource_dispatcher_host_delegate.h"
 #include "content/public/common/content_switches.h"
@@ -85,6 +85,7 @@
 using base::TimeDelta;
 using base::TimeTicks;
 using content::BrowserThread;
+using content::GlobalRequestID;
 using content::ResourceResponse;
 using content::WebContents;
 using webkit_blob::DeletableFileReference;
diff --git a/content/browser/renderer_host/resource_dispatcher_host.h b/content/browser/renderer_host/resource_dispatcher_host.h
index cdf30b3..5e7e02e5 100644
--- a/content/browser/renderer_host/resource_dispatcher_host.h
+++ b/content/browser/renderer_host/resource_dispatcher_host.h
@@ -39,14 +39,15 @@
 class SaveFileManager;
 class TabContents;
 struct DownloadSaveInfo;
-struct GlobalRequestID;
 struct ResourceHostMsg_Request;
 struct ViewMsg_SwapOut_Params;
 
 namespace content {
 class ResourceContext;
 class ResourceDispatcherHostDelegate;
+struct GlobalRequestID;
 }
+
 namespace net {
 class CookieList;
 class URLRequestJobFactory;
@@ -212,7 +213,8 @@
                                    int* render_view_host_id);
 
   // Retrieves a net::URLRequest.  Must be called from the IO thread.
-  net::URLRequest* GetURLRequest(const GlobalRequestID& request_id) const;
+  net::URLRequest* GetURLRequest(
+      const content::GlobalRequestID& request_id) const;
 
   void RemovePendingRequest(int process_unique_id, int request_id);
 
@@ -267,7 +269,7 @@
   // Marks the request as "parked". This happens if a request is
   // redirected cross-site and needs to be resumed by a new render view.
   void MarkAsTransferredNavigation(
-      const GlobalRequestID& transferred_request_id,
+      const content::GlobalRequestID& transferred_request_id,
       net::URLRequest* transferred_request);
 
  private:
@@ -294,7 +296,7 @@
   bool PauseRequestIfNeeded(ResourceDispatcherHostRequestInfo* info);
 
   // Resumes the given request by calling OnResponseStarted or OnReadCompleted.
-  void ResumeRequest(const GlobalRequestID& request_id);
+  void ResumeRequest(const content::GlobalRequestID& request_id);
 
   // Internal function to start reading for the first time.
   void StartReading(net::URLRequest* request);
@@ -345,7 +347,8 @@
   // It may be enhanced in the future to provide some kind of prioritization
   // mechanism. We should also consider a hashtable or binary tree if it turns
   // out we have a lot of things here.
-  typedef std::map<GlobalRequestID, net::URLRequest*> PendingRequestList;
+  typedef std::map<content::GlobalRequestID, net::URLRequest*>
+      PendingRequestList;
 
   // Deletes the pending request identified by the iterator passed in.
   // This function will invalidate the iterator passed in. Callers should
@@ -508,7 +511,8 @@
 
   // Maps the request ID of request that is being transferred to a new RVH
   // to the respective request.
-  typedef std::map<GlobalRequestID, net::URLRequest*> TransferredNavigations;
+  typedef std::map<content::GlobalRequestID, net::URLRequest*>
+      TransferredNavigations;
   TransferredNavigations transferred_navigations_;
 
   DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost);
diff --git a/content/browser/renderer_host/resource_dispatcher_host_unittest.cc b/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
index 8a45b66d..4da7eca 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
@@ -16,7 +16,6 @@
 #include "content/browser/download/download_id_factory.h"
 #include "content/browser/mock_resource_context.h"
 #include "content/browser/renderer_host/dummy_resource_handler.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_dispatcher_host.h"
 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
 #include "content/browser/renderer_host/resource_handler.h"
@@ -24,6 +23,7 @@
 #include "content/common/child_process_host_impl.h"
 #include "content/common/resource_messages.h"
 #include "content/common/view_messages.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/common/resource_response.h"
 #include "net/base/net_errors.h"
 #include "net/base/upload_data.h"
@@ -42,6 +42,7 @@
 using content::BrowserThreadImpl;
 using content::ChildProcessHostImpl;
 using content::DownloadManager;
+using content::GlobalRequestID;
 
 // TODO(eroman): Write unit tests for SafeBrowsing that exercise
 //               SafeBrowsingResourceHandler.
diff --git a/content/browser/renderer_host/resource_queue.cc b/content/browser/renderer_host/resource_queue.cc
index 84fef80..ef0ebe3 100644
--- a/content/browser/renderer_host/resource_queue.cc
+++ b/content/browser/renderer_host/resource_queue.cc
@@ -5,11 +5,12 @@
 #include "content/browser/renderer_host/resource_queue.h"
 
 #include "base/stl_util.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/global_request_id.h"
 
 using content::BrowserThread;
+using content::GlobalRequestID;
 
 ResourceQueueDelegate::~ResourceQueueDelegate() {
 }
diff --git a/content/browser/renderer_host/resource_queue.h b/content/browser/renderer_host/resource_queue.h
index 1119335..19807db 100644
--- a/content/browser/renderer_host/resource_queue.h
+++ b/content/browser/renderer_host/resource_queue.h
@@ -12,13 +12,16 @@
 #include "base/basictypes.h"
 #include "content/common/content_export.h"
 
+namespace content {
+struct GlobalRequestID;
+}
+
 namespace net {
 class URLRequest;
 }  // namespace net
 
 class ResourceDispatcherHostRequestInfo;
 class ResourceQueue;
-struct GlobalRequestID;
 
 // Makes decisions about delaying or not each net::URLRequest in the queue.
 // All methods are called on the IO thread.
@@ -32,7 +35,7 @@
   virtual bool ShouldDelayRequest(
       net::URLRequest* request,
       const ResourceDispatcherHostRequestInfo& request_info,
-      const GlobalRequestID& request_id) = 0;
+      const content::GlobalRequestID& request_id) = 0;
 
   // Called just before ResourceQueue shutdown. After that, the delegate
   // should not use the ResourceQueue.
@@ -71,7 +74,7 @@
 
   // Tells the queue that the net::URLRequest object associated with
   // |request_id| is no longer valid.
-  void RemoveRequest(const GlobalRequestID& request_id);
+  void RemoveRequest(const content::GlobalRequestID& request_id);
 
   // A delegate should call StartDelayedRequests when it wants to allow all
   // its delayed requests to start. If it was the last delegate that required
@@ -79,8 +82,9 @@
   void StartDelayedRequests(ResourceQueueDelegate* delegate);
 
  private:
-  typedef std::map<GlobalRequestID, net::URLRequest*> RequestMap;
-  typedef std::map<GlobalRequestID, DelegateSet> InterestedDelegatesMap;
+  typedef std::map<content::GlobalRequestID, net::URLRequest*> RequestMap;
+  typedef std::map<content::GlobalRequestID, DelegateSet>
+      InterestedDelegatesMap;
 
   // The registered delegates. Will not change after the queue has been
   // initialized.
diff --git a/content/browser/renderer_host/resource_queue_unittest.cc b/content/browser/renderer_host/resource_queue_unittest.cc
index 54d86442..c16f8d2 100644
--- a/content/browser/renderer_host/resource_queue_unittest.cc
+++ b/content/browser/renderer_host/resource_queue_unittest.cc
@@ -7,9 +7,9 @@
 #include "content/browser/browser_thread_impl.h"
 #include "content/browser/mock_resource_context.h"
 #include "content/browser/renderer_host/dummy_resource_handler.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
 #include "content/browser/renderer_host/resource_queue.h"
+#include "content/public/browser/global_request_id.h"
 #include "googleurl/src/gurl.h"
 #include "net/url_request/url_request.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -17,6 +17,7 @@
 using content::BrowserThread;
 using content::BrowserThreadImpl;
 using content::DummyResourceHandler;
+using content::GlobalRequestID;
 
 namespace {
 
diff --git a/content/browser/renderer_host/sync_resource_handler.cc b/content/browser/renderer_host/sync_resource_handler.cc
index 3dfb18eb..9c165e6 100644
--- a/content/browser/renderer_host/sync_resource_handler.cc
+++ b/content/browser/renderer_host/sync_resource_handler.cc
@@ -6,14 +6,16 @@
 
 #include "base/logging.h"
 #include "content/browser/debugger/devtools_netlog_observer.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/renderer_host/resource_dispatcher_host.h"
 #include "content/browser/renderer_host/resource_message_filter.h"
 #include "content/common/resource_messages.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/browser/resource_dispatcher_host_delegate.h"
 #include "net/base/io_buffer.h"
 #include "net/http/http_response_headers.h"
 
+using content::GlobalRequestID;
+
 SyncResourceHandler::SyncResourceHandler(
     ResourceMessageFilter* filter,
     const GURL& url,
diff --git a/content/browser/ssl/ssl_error_handler.h b/content/browser/ssl/ssl_error_handler.h
index 4074bb6..7daed32 100644
--- a/content/browser/ssl/ssl_error_handler.h
+++ b/content/browser/ssl/ssl_error_handler.h
@@ -10,9 +10,9 @@
 
 #include "base/basictypes.h"
 #include "base/memory/ref_counted.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/ssl/ssl_manager.h"
 #include "content/common/content_export.h"
+#include "content/public/browser/global_request_id.h"
 #include "googleurl/src/gurl.h"
 #include "webkit/glue/resource_type.h"
 
@@ -100,7 +100,7 @@
 
   // The id of the net::URLRequest associated with this object.
   // Should only be accessed from the IO thread.
-  GlobalRequestID request_id_;
+  content::GlobalRequestID request_id_;
 
   // The ResourceDispatcherHost we are associated with.
   ResourceDispatcherHost* resource_dispatcher_host_;
diff --git a/content/browser/tab_contents/navigation_controller.cc b/content/browser/tab_contents/navigation_controller.cc
index b12552d..7887714 100644
--- a/content/browser/tab_contents/navigation_controller.cc
+++ b/content/browser/tab_contents/navigation_controller.cc
@@ -31,6 +31,7 @@
 #include "net/base/net_util.h"
 #include "webkit/glue/webkit_glue.h"
 
+using content::GlobalRequestID;
 using content::UserMetricsAction;
 
 namespace {
diff --git a/content/browser/tab_contents/navigation_controller.h b/content/browser/tab_contents/navigation_controller.h
index aa4d8e09..e0054c8 100644
--- a/content/browser/tab_contents/navigation_controller.h
+++ b/content/browser/tab_contents/navigation_controller.h
@@ -14,9 +14,9 @@
 #include "base/memory/linked_ptr.h"
 #include "base/time.h"
 #include "googleurl/src/gurl.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/browser/ssl/ssl_manager.h"
 #include "content/common/content_export.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/browser/navigation_type.h"
 #include "content/public/common/page_transition_types.h"
 #include "content/public/common/referrer.h"
@@ -201,7 +201,7 @@
       const content::Referrer& referrer,
       content::PageTransition transition,
       const std::string& extra_headers,
-      const GlobalRequestID& transferred_global_request_id,
+      const content::GlobalRequestID& transferred_global_request_id,
       bool is_renderer_initiated);
 
   // Loads the current page if this NavigationController was restored from
diff --git a/content/browser/tab_contents/navigation_entry.h b/content/browser/tab_contents/navigation_entry.h
index f20c0473..df33867 100644
--- a/content/browser/tab_contents/navigation_entry.h
+++ b/content/browser/tab_contents/navigation_entry.h
@@ -9,9 +9,9 @@
 #include "base/basictypes.h"
 #include "base/compiler_specific.h"
 #include "base/memory/ref_counted.h"
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/favicon_status.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/browser/ssl_status.h"
 #include "content/public/common/page_type.h"
@@ -162,11 +162,11 @@
   }
 
   void set_transferred_global_request_id(
-      const GlobalRequestID& transferred_global_request_id) {
+      const content::GlobalRequestID& transferred_global_request_id) {
     transferred_global_request_id_ = transferred_global_request_id;
   }
 
-  GlobalRequestID transferred_global_request_id() const {
+  content::GlobalRequestID transferred_global_request_id() const {
     return transferred_global_request_id_;
   }
 
@@ -216,7 +216,7 @@
   // carries this |transferred_global_request_id_| annotation. Once the request
   // is transferred to the new process, this is cleared and the request
   // continues as normal.
-  GlobalRequestID transferred_global_request_id_;
+  content::GlobalRequestID transferred_global_request_id_;
 
   // Copy and assignment is explicitly allowed for this class.
 };
diff --git a/content/browser/tab_contents/tab_contents.cc b/content/browser/tab_contents/tab_contents.cc
index 3330a24c..bc17945d 100644
--- a/content/browser/tab_contents/tab_contents.cc
+++ b/content/browser/tab_contents/tab_contents.cc
@@ -111,6 +111,8 @@
 using content::DevToolsManagerImpl;
 using content::DownloadItem;
 using content::DownloadManager;
+using content::GlobalRequestID;
+using content::OpenURLParams;
 using content::SSLStatus;
 using content::UserMetricsAction;
 using content::WebContents;
@@ -762,27 +764,16 @@
     delegate_->WebUISend(this, source_url, name, args);
 }
 
-// TODO(adriansc): Remove this method once refactoring changed all call sites.
-TabContents* TabContents::OpenURL(const GURL& url,
-                                  const GURL& referrer,
-                                  WindowOpenDisposition disposition,
-                                  content::PageTransition transition) {
-  // For specifying a referrer, use the version of OpenURL taking OpenURLParams.
-  DCHECK(referrer.is_empty());
-  return OpenURL(OpenURLParams(url, content::Referrer(), disposition,
-                               transition, false));
-}
+WebContents* TabContents::OpenURL(const OpenURLParams& params) {
+  if (!delegate_)
+    return NULL;
 
-TabContents* TabContents::OpenURL(const OpenURLParams& params) {
-  if (delegate_) {
-    TabContents* new_contents = delegate_->OpenURLFromTab(this, params);
-    // Notify observers.
-    FOR_EACH_OBSERVER(WebContentsObserver, observers_,
-                      DidOpenURL(params.url, params.referrer,
-                                 params.disposition, params.transition));
-    return new_contents;
-  }
-  return NULL;
+  WebContents* new_contents = delegate_->OpenURLFromTab(this, params);
+  // Notify observers.
+  FOR_EACH_OBSERVER(WebContentsObserver, observers_,
+                    DidOpenURL(params.url, params.referrer,
+                               params.disposition, params.transition));
+  return new_contents;
 }
 
 bool TabContents::NavigateToPendingEntry(
@@ -1921,7 +1912,7 @@
                                      WindowOpenDisposition disposition,
                                      int64 source_frame_id,
                                      const GlobalRequestID& old_request_id) {
-  TabContents* new_contents = NULL;
+  WebContents* new_contents = NULL;
   content::PageTransition transition_type = content::PAGE_TRANSITION_LINK;
   if (render_manager_.web_ui()) {
     // When we're a Web UI, it will provide a page transition type for us (this
diff --git a/content/browser/tab_contents/tab_contents.h b/content/browser/tab_contents/tab_contents.h
index d23024d3..c249282 100644
--- a/content/browser/tab_contents/tab_contents.h
+++ b/content/browser/tab_contents/tab_contents.h
@@ -210,15 +210,8 @@
   virtual bool GotResponseToLockMouseRequest(bool allowed) OVERRIDE;
 
   // Implementation of PageNavigator.
-
-  // Deprecated. Please use the one-argument variant instead.
-  // TODO(adriansc): Remove this method once refactoring changed all call sites.
-  virtual TabContents* OpenURL(const GURL& url,
-                               const GURL& referrer,
-                               WindowOpenDisposition disposition,
-                               content::PageTransition transition) OVERRIDE;
-
-  virtual TabContents* OpenURL(const OpenURLParams& params) OVERRIDE;
+  virtual content::WebContents* OpenURL(
+      const content::OpenURLParams& params) OVERRIDE;
 
   // RenderViewHostDelegate ----------------------------------------------------
 
@@ -270,7 +263,7 @@
       const content::Referrer& referrer,
       WindowOpenDisposition disposition,
       int64 source_frame_id,
-      const GlobalRequestID& transferred_global_request_id) OVERRIDE;
+      const content::GlobalRequestID& transferred_global_request_id) OVERRIDE;
   virtual void RunJavaScriptMessage(const RenderViewHost* rvh,
                                     const string16& message,
                                     const string16& default_prompt,
diff --git a/content/browser/tab_contents/web_drag_dest_mac.mm b/content/browser/tab_contents/web_drag_dest_mac.mm
index eeeb3ef..53e0ecc 100644
--- a/content/browser/tab_contents/web_drag_dest_mac.mm
+++ b/content/browser/tab_contents/web_drag_dest_mac.mm
@@ -15,6 +15,8 @@
 #include "webkit/glue/window_open_disposition.h"
 
 using WebKit::WebDragOperationsMask;
+using content::OpenURLParams;
+using content::Referrer;
 
 @implementation WebDragDest
 
@@ -164,8 +166,9 @@
     if ([pboard containsURLData]) {
       GURL url;
       ui::PopulateURLAndTitleFromPasteboard(&url, NULL, pboard, YES);
-      tabContents_->OpenURL(url, GURL(), CURRENT_TAB,
-                            content::PAGE_TRANSITION_AUTO_BOOKMARK);
+      tabContents_->OpenURL(OpenURLParams(
+          url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_AUTO_BOOKMARK,
+          false));
       return YES;
     }
     return NO;
diff --git a/content/browser/webui/generic_handler.cc b/content/browser/webui/generic_handler.cc
index f8ce3d4f..36cf8688 100644
--- a/content/browser/webui/generic_handler.cc
+++ b/content/browser/webui/generic_handler.cc
@@ -12,6 +12,8 @@
 #include "content/browser/tab_contents/tab_contents.h"
 #include "googleurl/src/gurl.h"
 
+using content::OpenURLParams;
+
 GenericHandler::GenericHandler() {
 }
 
@@ -49,8 +51,9 @@
   if (disposition == CURRENT_TAB && target_string == "_blank")
     disposition = NEW_FOREGROUND_TAB;
 
-  web_ui_->tab_contents()->OpenURL(
-      GURL(url_string), GURL(), disposition, content::PAGE_TRANSITION_LINK);
+  web_ui_->tab_contents()->OpenURL(OpenURLParams(
+      GURL(url_string), content::Referrer(), disposition,
+      content::PAGE_TRANSITION_LINK, false));
 
   // This may delete us!
 }
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index 0305e7e..89c71932 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -49,6 +49,7 @@
     'public/browser/download_manager_delegate.h',
     'public/browser/favicon_status.cc',
     'public/browser/favicon_status.h',
+    'public/browser/global_request_id.h',
     'public/browser/native_web_keyboard_event.h',
     'public/browser/navigation_details.cc',
     'public/browser/navigation_details.h',
@@ -61,6 +62,8 @@
     'public/browser/notification_service.h',
     'public/browser/notification_source.h',
     'public/browser/notification_types.h',
+    'public/browser/page_navigator.cc',
+    'public/browser/page_navigator.h',
     'public/browser/plugin_data_remover.h',
     'public/browser/plugin_service.h',
     'public/browser/profiler_controller.h',
@@ -402,7 +405,6 @@
     'browser/renderer_host/file_utilities_message_filter.h',
     'browser/renderer_host/gamepad_browser_message_filter.cc',
     'browser/renderer_host/gamepad_browser_message_filter.h',
-    'browser/renderer_host/global_request_id.h',
     'browser/renderer_host/gpu_message_filter.cc',
     'browser/renderer_host/gpu_message_filter.h',
     'browser/renderer_host/gtk_im_context_wrapper.cc',
@@ -592,8 +594,6 @@
     'browser/tab_contents/navigation_controller.h',
     'browser/tab_contents/navigation_entry.cc',
     'browser/tab_contents/navigation_entry.h',
-    'browser/tab_contents/page_navigator.cc',
-    'browser/tab_contents/page_navigator.h',
     'browser/tab_contents/popup_menu_helper_mac.h',
     'browser/tab_contents/popup_menu_helper_mac.mm',
     'browser/tab_contents/provisional_load_details.cc',
diff --git a/content/browser/renderer_host/global_request_id.h b/content/public/browser/global_request_id.h
similarity index 83%
rename from content/browser/renderer_host/global_request_id.h
rename to content/public/browser/global_request_id.h
index f9a87db..e3a541c 100644
--- a/content/browser/renderer_host/global_request_id.h
+++ b/content/public/browser/global_request_id.h
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CONTENT_BROWSER_RENDERER_HOST_GLOBAL_REQUEST_ID_H_
-#define CONTENT_BROWSER_RENDERER_HOST_GLOBAL_REQUEST_ID_H_
+#ifndef CONTENT_PUBLIC_BROWSER_GLOBAL_REQUEST_ID_H_
+#define CONTENT_PUBLIC_BROWSER_GLOBAL_REQUEST_ID_H_
 #pragma once
 
+namespace content {
+
 // Uniquely identifies a net::URLRequest.
 struct GlobalRequestID {
   GlobalRequestID() : child_id(-1), request_id(-1) {
@@ -37,4 +39,6 @@
   }
 };
 
-#endif  // CHROME_BROWSER_RENDERER_HOST_GLOBAL_REQUEST_ID_H_
+}  // namespace content
+
+#endif  // CONTENT_PUBLIC_BROWSER_GLOBAL_REQUEST_ID_H_
diff --git a/content/browser/tab_contents/page_navigator.cc b/content/public/browser/page_navigator.cc
similarity index 65%
rename from content/browser/tab_contents/page_navigator.cc
rename to content/public/browser/page_navigator.cc
index 4e9e9c3..b37ea4b 100644
--- a/content/browser/tab_contents/page_navigator.cc
+++ b/content/public/browser/page_navigator.cc
@@ -2,18 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "content/browser/tab_contents/page_navigator.h"
+#include "content/public/browser/page_navigator.h"
 
-#include "content/public/common/page_transition_types.h"
-#include "webkit/glue/window_open_disposition.h"
-
-class GURL;
+namespace content {
 
 OpenURLParams::OpenURLParams(
     const GURL& url,
-    const content::Referrer& referrer,
+    const Referrer& referrer,
     WindowOpenDisposition disposition,
-    content::PageTransition transition,
+    PageTransition transition,
     bool is_renderer_initiated)
     : url(url),
       referrer(referrer),
@@ -24,10 +21,11 @@
 
 OpenURLParams::OpenURLParams()
     : disposition(UNKNOWN),
-      transition(content::PageTransitionFromInt(0)),
+      transition(PageTransitionFromInt(0)),
       is_renderer_initiated(false) {
 }
 
 OpenURLParams::~OpenURLParams() {
 }
 
+}  // namespace content
diff --git a/content/browser/tab_contents/page_navigator.h b/content/public/browser/page_navigator.h
similarity index 64%
rename from content/browser/tab_contents/page_navigator.h
rename to content/public/browser/page_navigator.h
index 4ec0a3b..0fded4e 100644
--- a/content/browser/tab_contents/page_navigator.h
+++ b/content/public/browser/page_navigator.h
@@ -6,38 +6,40 @@
 // intention to navigate to a particular URL.  The implementing class should
 // perform the navigation.
 
-#ifndef CONTENT_BROWSER_TAB_CONTENTS_PAGE_NAVIGATOR_H_
-#define CONTENT_BROWSER_TAB_CONTENTS_PAGE_NAVIGATOR_H_
+#ifndef CONTENT_PUBLIC_BROWSER_PAGE_NAVIGATOR_H_
+#define CONTENT_PUBLIC_BROWSER_PAGE_NAVIGATOR_H_
 #pragma once
 
 #include <string>
 
-#include "content/browser/renderer_host/global_request_id.h"
 #include "content/common/content_export.h"
+#include "content/public/browser/global_request_id.h"
 #include "content/public/common/page_transition_types.h"
 #include "content/public/common/referrer.h"
 #include "googleurl/src/gurl.h"
 #include "webkit/glue/window_open_disposition.h"
 
-class TabContents;
+namespace content {
+
+class WebContents;
 
 struct CONTENT_EXPORT OpenURLParams {
   OpenURLParams(const GURL& url,
-                const content::Referrer& referrer,
+                const Referrer& referrer,
                 WindowOpenDisposition disposition,
-                content::PageTransition transition,
+                PageTransition transition,
                 bool is_renderer_initiated);
   ~OpenURLParams();
 
   // The URL/referrer to be opened.
   GURL url;
-  content::Referrer referrer;
+  Referrer referrer;
 
   // The disposition requested by the navigation source.
   WindowOpenDisposition disposition;
 
   // The transition type of navigation.
-  content::PageTransition transition;
+  PageTransition transition;
 
   // Whether this navigation is initiated by the renderer process.
   bool is_renderer_initiated;
@@ -53,23 +55,17 @@
   OpenURLParams();
 };
 
-class CONTENT_EXPORT PageNavigator {
+class PageNavigator {
  public:
-  // Deprecated. Please use the one-argument variant instead.
-  // TODO(adriansc): Remove this method when refactoring changed all call sites.
-  virtual TabContents* OpenURL(const GURL& url,
-                               const GURL& referrer,
-                               WindowOpenDisposition disposition,
-                               content::PageTransition transition) = 0;
+  virtual ~PageNavigator() {}
 
   // Opens a URL with the given disposition.  The transition specifies how this
   // navigation should be recorded in the history system (for example, typed).
   // Returns the TabContents the URL is opened in, or NULL if the URL wasn't
   // opened immediately.
-  virtual TabContents* OpenURL(const OpenURLParams& params) = 0;
-
- protected:
-  virtual ~PageNavigator() {}
+  virtual WebContents* OpenURL(const OpenURLParams& params) = 0;
 };
 
-#endif  // CONTENT_BROWSER_TAB_CONTENTS_PAGE_NAVIGATOR_H_
+}
+
+#endif  // CONTENT_PUBLIC_BROWSER_PAGE_NAVIGATOR_H_
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index 518853f..0c6df168 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -10,9 +10,9 @@
 #include "base/process_util.h"
 #include "base/string16.h"
 #include "content/browser/download/save_package.h"
-#include "content/browser/tab_contents/page_navigator.h"
 #include "content/browser/webui/web_ui.h"
 #include "content/common/content_export.h"
+#include "content/public/browser/page_navigator.h"
 #include "content/public/common/view_type.h"
 #include "ui/gfx/native_widget_types.h"
 #include "webkit/glue/window_open_disposition.h"
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
index 1ca147c..766af906 100644
--- a/content/public/browser/web_contents_delegate.cc
+++ b/content/public/browser/web_contents_delegate.cc
@@ -21,7 +21,7 @@
 WebContentsDelegate::WebContentsDelegate() {
 }
 
-TabContents* WebContentsDelegate::OpenURLFromTab(TabContents* source,
+WebContents* WebContentsDelegate::OpenURLFromTab(WebContents* source,
                                                  const OpenURLParams& params) {
   return NULL;
 }
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
index 57bf077..e2fef31 100644
--- a/content/public/browser/web_contents_delegate.h
+++ b/content/public/browser/web_contents_delegate.h
@@ -22,7 +22,6 @@
 class TabContents;
 struct ContextMenuParams;
 struct NativeWebKeyboardEvent;
-struct OpenURLParams;
 
 namespace base {
 class ListValue;
@@ -54,22 +53,24 @@
 
 namespace content {
 
+struct OpenURLParams;
+
 // Objects implement this interface to get notified about changes in the
 // TabContents and to provide necessary functionality.
 class CONTENT_EXPORT WebContentsDelegate {
  public:
   WebContentsDelegate();
 
-  // Opens a new URL inside the passed in TabContents (if source is 0 open
+  // Opens a new URL inside the passed in WebContents (if source is 0 open
   // in the current front-most tab), unless |disposition| indicates the url
   // should be opened in a new tab or window.
   //
   // A NULL source indicates the current tab (callers should probably use
   // OpenURL() for these cases which does it for you).
 
-  // Returns the TabContents the URL is opened in, or NULL if the URL wasn't
+  // Returns the WebContents the URL is opened in, or NULL if the URL wasn't
   // opened immediately.
-  virtual TabContents* OpenURLFromTab(TabContents* source,
+  virtual WebContents* OpenURLFromTab(WebContents* source,
                                       const OpenURLParams& params);
 
   // Called to inform the delegate that the tab content's navigation state