| Index: extensions/browser/api/web_request/web_request_api.cc
|
| diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc
|
| index 40b9db7ddf0c080438019823b180f00b6bd38c03..3d9b9beac30bbf54f1dd883df795bf84ee699ede 100644
|
| --- a/extensions/browser/api/web_request/web_request_api.cc
|
| +++ b/extensions/browser/api/web_request/web_request_api.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| +#include "base/debug/alias.h"
|
| #include "base/json/json_writer.h"
|
| #include "base/lazy_instance.h"
|
| #include "base/macros.h"
|
| @@ -1226,6 +1227,20 @@ void ExtensionWebRequestEventRouter::OnURLRequestDestroyed(
|
| base::Time::Now());
|
| }
|
|
|
| +void ExtensionWebRequestEventRouter::OnURLRequestJobOrphaned(
|
| + void* browser_context,
|
| + const net::URLRequest* request) {
|
| + // See https://crbug.com/289715. While a URLRequest is blocking on an
|
| + // extension, it may not orphan jobs unless OnURLRequestDestroyed is called
|
| + // first.
|
| + //
|
| + // TODO(davidben): Remove this when the crash has been diagnosed.
|
| + char url_buf[128];
|
| + base::strlcpy(url_buf, request->url().spec().c_str(), arraysize(url_buf));
|
| + base::debug::Alias(url_buf);
|
| + CHECK_EQ(0u, blocked_requests_.count(request->identifier()));
|
| +}
|
| +
|
| void ExtensionWebRequestEventRouter::ClearPendingCallbacks(
|
| const net::URLRequest* request) {
|
| blocked_requests_.erase(request->identifier());
|
|
|