| Index: chrome/browser/ui/panels/panel_host.cc
|
| diff --git a/chrome/browser/ui/panels/panel_host.cc b/chrome/browser/ui/panels/panel_host.cc
|
| index a01870a80294d31017e929d4b576b8ad9a72c0f2..e0a78fadec3e37eac748c1448bc154ed61382ec0 100644
|
| --- a/chrome/browser/ui/panels/panel_host.cc
|
| +++ b/chrome/browser/ui/panels/panel_host.cc
|
| @@ -10,8 +10,11 @@
|
| #include "chrome/browser/chrome_page_zoom.h"
|
| #include "chrome/browser/favicon/favicon_tab_helper.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/browser_finder.h"
|
| +#include "chrome/browser/ui/browser_navigator.h"
|
| #include "chrome/browser/ui/panels/panel.h"
|
| #include "chrome/browser/ui/prefs/prefs_tab_helper.h"
|
| +#include "chrome/browser/ui/tab_contents/tab_contents.h"
|
| #include "chrome/browser/view_type_utils.h"
|
| #include "chrome/common/chrome_notification_types.h"
|
| #include "chrome/common/extensions/extension_messages.h"
|
| @@ -72,6 +75,30 @@ SkBitmap PanelHost::GetPageIcon() const {
|
| favicon_tab_helper_->GetFavicon().AsBitmap() : SkBitmap();
|
| }
|
|
|
| +content::WebContents* PanelHost::OpenURLFromTab(
|
| + content::WebContents* source,
|
| + const content::OpenURLParams& params) {
|
| + // These dispositions aren't really navigations.
|
| + if (params.disposition == SUPPRESS_OPEN ||
|
| + params.disposition == SAVE_TO_DISK ||
|
| + params.disposition == IGNORE_ACTION)
|
| + return NULL;
|
| +
|
| + // Only allow clicks on links.
|
| + if (params.transition != content::PAGE_TRANSITION_LINK)
|
| + return NULL;
|
| +
|
| + // Force all links to open in a new tab.
|
| + chrome::NavigateParams navigate_params(
|
| + browser::FindOrCreateTabbedBrowser(profile_),
|
| + params.url, params.transition);
|
| + navigate_params.disposition = params.disposition == NEW_BACKGROUND_TAB ?
|
| + params.disposition : NEW_FOREGROUND_TAB;
|
| + chrome::Navigate(&navigate_params);
|
| + return navigate_params.target_contents ?
|
| + navigate_params.target_contents->web_contents() : NULL;
|
| +}
|
| +
|
| void PanelHost::NavigationStateChanged(const content::WebContents* source,
|
| unsigned changed_flags) {
|
| // Only need to update the title if the title changed while not loading,
|
|
|