| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/frame_host/debug_urls.h" | 5 #include "content/browser/frame_host/debug_urls.h" |
| 6 | 6 |
| 7 #if defined(SYZYASAN) | 7 #if defined(SYZYASAN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 #endif | 49 #endif |
| 50 | 50 |
| 51 #if BUILDFLAG(ENABLE_KASKO) | 51 #if BUILDFLAG(ENABLE_KASKO) |
| 52 // Define the Kasko debug URLs. | 52 // Define the Kasko debug URLs. |
| 53 const char kKaskoCrashDomain[] = "kasko"; | 53 const char kKaskoCrashDomain[] = "kasko"; |
| 54 const char kKaskoSendReport[] = "/send-report"; | 54 const char kKaskoSendReport[] = "/send-report"; |
| 55 #endif | 55 #endif |
| 56 | 56 |
| 57 void HandlePpapiFlashDebugURL(const GURL& url) { | 57 void HandlePpapiFlashDebugURL(const GURL& url) { |
| 58 #if defined(ENABLE_PLUGINS) | 58 #if defined(ENABLE_PLUGINS) |
| 59 bool crash = url == GURL(kChromeUIPpapiFlashCrashURL); | 59 bool crash = url == kChromeUIPpapiFlashCrashURL; |
| 60 | 60 |
| 61 std::vector<PpapiPluginProcessHost*> hosts; | 61 std::vector<PpapiPluginProcessHost*> hosts; |
| 62 PpapiPluginProcessHost::FindByName( | 62 PpapiPluginProcessHost::FindByName( |
| 63 base::UTF8ToUTF16(kFlashPluginName), &hosts); | 63 base::UTF8ToUTF16(kFlashPluginName), &hosts); |
| 64 for (std::vector<PpapiPluginProcessHost*>::iterator iter = hosts.begin(); | 64 for (std::vector<PpapiPluginProcessHost*>::iterator iter = hosts.begin(); |
| 65 iter != hosts.end(); ++iter) { | 65 iter != hosts.end(); ++iter) { |
| 66 if (crash) | 66 if (crash) |
| 67 (*iter)->Send(new PpapiMsg_Crash()); | 67 (*iter)->Send(new PpapiMsg_Crash()); |
| 68 else | 68 else |
| 69 (*iter)->Send(new PpapiMsg_Hang()); | 69 (*iter)->Send(new PpapiMsg_Hang()); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 return false; | 191 return false; |
| 192 | 192 |
| 193 if (IsAsanDebugURL(url)) | 193 if (IsAsanDebugURL(url)) |
| 194 return HandleAsanDebugURL(url); | 194 return HandleAsanDebugURL(url); |
| 195 | 195 |
| 196 if (IsKaskoDebugURL(url)) { | 196 if (IsKaskoDebugURL(url)) { |
| 197 HandleKaskoDebugURL(); | 197 HandleKaskoDebugURL(); |
| 198 return true; | 198 return true; |
| 199 } | 199 } |
| 200 | 200 |
| 201 if (url == GURL(kChromeUIBrowserCrashURL)) { | 201 if (url == kChromeUIBrowserCrashURL) { |
| 202 // Induce an intentional crash in the browser process. | 202 // Induce an intentional crash in the browser process. |
| 203 CHECK(false); | 203 CHECK(false); |
| 204 return true; | 204 return true; |
| 205 } | 205 } |
| 206 | 206 |
| 207 if (url == GURL(kChromeUIBrowserUIHang)) { | 207 if (url == kChromeUIBrowserUIHang) { |
| 208 HangCurrentThread(); | 208 HangCurrentThread(); |
| 209 return true; | 209 return true; |
| 210 } | 210 } |
| 211 | 211 |
| 212 if (url == GURL(kChromeUIDelayedBrowserUIHang)) { | 212 if (url == kChromeUIDelayedBrowserUIHang) { |
| 213 // Webdriver-safe url to hang the ui thread. Webdriver waits for the onload | 213 // Webdriver-safe url to hang the ui thread. Webdriver waits for the onload |
| 214 // event in javascript which needs a little more time to fire. | 214 // event in javascript which needs a little more time to fire. |
| 215 BrowserThread::PostDelayedTask(BrowserThread::UI, FROM_HERE, | 215 BrowserThread::PostDelayedTask(BrowserThread::UI, FROM_HERE, |
| 216 base::Bind(&HangCurrentThread), | 216 base::Bind(&HangCurrentThread), |
| 217 base::TimeDelta::FromSeconds(2)); | 217 base::TimeDelta::FromSeconds(2)); |
| 218 return true; | 218 return true; |
| 219 } | 219 } |
| 220 | 220 |
| 221 if (url == GURL(kChromeUIGpuCleanURL)) { | 221 if (url == kChromeUIGpuCleanURL) { |
| 222 GpuProcessHostUIShim* shim = GpuProcessHostUIShim::GetOneInstance(); | 222 GpuProcessHostUIShim* shim = GpuProcessHostUIShim::GetOneInstance(); |
| 223 if (shim) | 223 if (shim) |
| 224 shim->SimulateRemoveAllContext(); | 224 shim->SimulateRemoveAllContext(); |
| 225 return true; | 225 return true; |
| 226 } | 226 } |
| 227 | 227 |
| 228 if (url == GURL(kChromeUIGpuCrashURL)) { | 228 if (url == kChromeUIGpuCrashURL) { |
| 229 GpuProcessHostUIShim* shim = GpuProcessHostUIShim::GetOneInstance(); | 229 GpuProcessHostUIShim* shim = GpuProcessHostUIShim::GetOneInstance(); |
| 230 if (shim) | 230 if (shim) |
| 231 shim->SimulateCrash(); | 231 shim->SimulateCrash(); |
| 232 return true; | 232 return true; |
| 233 } | 233 } |
| 234 | 234 |
| 235 if (url == GURL(kChromeUIGpuHangURL)) { | 235 if (url == kChromeUIGpuHangURL) { |
| 236 GpuProcessHostUIShim* shim = GpuProcessHostUIShim::GetOneInstance(); | 236 GpuProcessHostUIShim* shim = GpuProcessHostUIShim::GetOneInstance(); |
| 237 if (shim) | 237 if (shim) |
| 238 shim->SimulateHang(); | 238 shim->SimulateHang(); |
| 239 return true; | 239 return true; |
| 240 } | 240 } |
| 241 | 241 |
| 242 if (url == GURL(kChromeUIPpapiFlashCrashURL) || | 242 if (url == kChromeUIPpapiFlashCrashURL || url == kChromeUIPpapiFlashHangURL) { |
| 243 url == GURL(kChromeUIPpapiFlashHangURL)) { | |
| 244 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 243 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
| 245 base::Bind(&HandlePpapiFlashDebugURL, url)); | 244 base::Bind(&HandlePpapiFlashDebugURL, url)); |
| 246 return true; | 245 return true; |
| 247 } | 246 } |
| 248 | 247 |
| 249 return false; | 248 return false; |
| 250 } | 249 } |
| 251 | 250 |
| 252 bool IsRendererDebugURL(const GURL& url) { | 251 bool IsRendererDebugURL(const GURL& url) { |
| 253 if (!url.is_valid()) | 252 if (!url.is_valid()) |
| 254 return false; | 253 return false; |
| 255 | 254 |
| 256 if (url.SchemeIs(url::kJavaScriptScheme)) | 255 if (url.SchemeIs(url::kJavaScriptScheme)) |
| 257 return true; | 256 return true; |
| 258 | 257 |
| 259 return url == GURL(kChromeUIBadCastCrashURL) || | 258 return url == kChromeUIBadCastCrashURL || |
| 260 url == GURL(kChromeUICrashURL) || | 259 url == kChromeUICrashURL || |
| 261 url == GURL(kChromeUIDumpURL) || | 260 url == kChromeUIDumpURL || |
| 262 url == GURL(kChromeUIKillURL) || | 261 url == kChromeUIKillURL || |
| 263 url == GURL(kChromeUIHangURL) || | 262 url == kChromeUIHangURL || |
| 264 url == GURL(kChromeUIShorthangURL) || | 263 url == kChromeUIShorthangURL || |
| 265 url == GURL(kChromeUIMemoryExhaustURL); | 264 url == kChromeUIMemoryExhaustURL; |
| 266 } | 265 } |
| 267 | 266 |
| 268 } // namespace content | 267 } // namespace content |
| OLD | NEW |