Index: chrome/browser/browser_about_handler.cc |
diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc |
index 005d0dfd0f3114545e7db932c5a063a6f1c3e6dc..7282b4aaeb3bfe3a0c10f5289d9d478f4e332e7c 100644 |
--- a/chrome/browser/browser_about_handler.cc |
+++ b/chrome/browser/browser_about_handler.cc |
@@ -47,6 +47,7 @@ |
#include "content/browser/gpu/gpu_process_host.h" |
#include "content/browser/renderer_host/render_process_host.h" |
#include "content/browser/renderer_host/render_view_host.h" |
+#include "content/browser/sensors/provider.h" |
#include "content/common/gpu/gpu_messages.h" |
#include "crypto/nss_util.h" |
#include "googleurl/src/gurl.h" |
@@ -1496,6 +1497,21 @@ bool WillHandleBrowserAboutURL(GURL* url, Profile* profile) { |
} else if (host == chrome::kChromeUIGpuHangHost) { |
GpuProcessHost::SendOnIO( |
0, content::CAUSE_FOR_GPU_LAUNCH_ABOUT_GPUHANG, new GpuMsg_Hang()); |
+ } else if (host == chrome::kChromeUIRotateHost) { |
+ sensors::ScreenOrientation change; |
+ std::string query(url->query()); |
+ if (query == "left") { |
+ change.upward = sensors::ScreenOrientation::LEFT; |
+ } else if (query == "right") { |
+ change.upward = sensors::ScreenOrientation::RIGHT; |
+ } else if (query == "top") { |
+ change.upward = sensors::ScreenOrientation::TOP; |
+ } else if (query == "bottom") { |
+ change.upward = sensors::ScreenOrientation::BOTTOM; |
+ } |
+ sensors::Provider::GetInstance()->FireScreenOrientationChange(change); |
+ host = chrome::kChromeUIBlankHost; |
+ *url = GURL(chrome::kChromeUIBlankHost); |
} |
// Initialize any potentially corresponding AboutSource handler. |