Chromium Code Reviews| Index: chrome/browser/ui/browser_commands.cc |
| diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc |
| index 423efc915ea14d1bdfdb860592384f17b6eef198..a8f7895c38c92ea45ba2be844bfa94b0018eabf2 100644 |
| --- a/chrome/browser/ui/browser_commands.cc |
| +++ b/chrome/browser/ui/browser_commands.cc |
| @@ -62,10 +62,12 @@ |
| #include "content/public/browser/user_metrics.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/browser/web_contents_view.h" |
| +#include "content/public/common/content_client.h" |
| #include "content/public/common/content_restriction.h" |
| #include "content/public/common/renderer_preferences.h" |
| #include "content/public/common/url_constants.h" |
| #include "net/base/escape.h" |
| +#include "webkit/glue/user_agent.h" |
| #include "webkit/glue/webkit_glue.h" |
| #if defined(OS_MACOSX) |
| @@ -864,6 +866,35 @@ void ToggleSpeechInput(Browser* browser) { |
| GetActiveWebContents(browser)->GetRenderViewHost()->ToggleSpeechInput(); |
| } |
| +void ToggleRequestTabletSite(Browser* browser) |
| +{ |
| + WebContents* current_tab = GetActiveWebContents(browser); |
| + if (!current_tab) return; |
|
Rick Byers
2012/08/03 15:53:06
newline before return
If there's no current tab,
sschmitz
2012/08/03 18:11:43
I made a code change elsewhere to disable the cont
|
| + NavigationController& controller = current_tab->GetController(); |
| + NavigationEntry* entry = controller.GetActiveEntry(); |
| + if (!entry) return; |
|
Rick Byers
2012/08/03 15:53:06
If there's no active entry we should probably stil
sschmitz
2012/08/03 18:11:43
Same as above: control is disabled; comment in cod
|
| + if (entry->GetIsOverridingUserAgent()) { |
| + entry->SetIsOverridingUserAgent(false); |
| + const int entryCount = controller.GetEntryCount(); |
| + for (int ii = 0; ii < entryCount; ++ii) { |
| + NavigationEntry* entryAtIdx = controller.GetEntryAtIndex(ii); |
| + if (entryAtIdx) entryAtIdx->SetIsOverridingUserAgent(false); |
| + } |
| + current_tab->SetUserAgentOverride(std::string()); |
| + } else { |
| + entry->SetIsOverridingUserAgent(true); |
| + const int entryCount = controller.GetEntryCount(); |
| + for (int ii = 0; ii < entryCount; ++ii) { |
| + NavigationEntry* entryAtIdx = controller.GetEntryAtIndex(ii); |
| + if (entryAtIdx) entryAtIdx->SetIsOverridingUserAgent(true); |
| + } |
| + current_tab->SetUserAgentOverride( |
| + webkit_glue::BuildUserAgentOverrideForTabletSiteFromUserAgent( |
| + content::GetUserAgent(entry->GetOriginalRequestURL()))); |
| + } |
| + controller.Reload(true); |
| +} |
| + |
| void ToggleFullscreenMode(Browser* browser) { |
| browser->fullscreen_controller()->ToggleFullscreenMode(); |
| } |