Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(528)

Unified Diff: net/url_request/url_request.cc

Issue 7523042: Add a status message "Waiting for extension Foo..." when there's a request (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/url_request/url_request.cc
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
index 07af22f7b7b94f032fa0d8e7d84021c4a2614232..f18a4e3960d5833f06d7efc399c01e3f0d0efc84 100644
--- a/net/url_request/url_request.cc
+++ b/net/url_request/url_request.cc
@@ -140,6 +140,7 @@ URLRequest::URLRequest(const GURL& url, Delegate* delegate)
final_upload_progress_(0),
priority_(LOWEST),
identifier_(GenerateURLRequestIdentifier()),
+ blocked_on_delegate_(false),
ALLOW_THIS_IN_INITIALIZER_LIST(
before_request_callback_(this, &URLRequest::BeforeRequestComplete)),
has_notified_completion_(false) {
@@ -253,8 +254,13 @@ void URLRequest::SetExtraRequestHeaders(
// for request headers are implemented.
}
-LoadState URLRequest::GetLoadState() const {
- return job_ ? job_->GetLoadState() : LOAD_STATE_IDLE;
+LoadStateWithParam URLRequest::GetLoadState() const {
+ if (blocked_on_delegate_) {
+ return net::LoadStateWithParam(LOAD_STATE_WAITING_FOR_DELEGATE,
+ load_state_param_);
+ }
+ return net::LoadStateWithParam(job_ ? job_->GetLoadState() : LOAD_STATE_IDLE,
+ "");
}
uint64 URLRequest::GetUploadProgress() const {
@@ -399,7 +405,7 @@ void URLRequest::Start() {
if (context_->network_delegate()->NotifyBeforeURLRequest(
this, &before_request_callback_, &delegate_redirect_url_) ==
net::ERR_IO_PENDING) {
- net_log_.BeginEvent(NetLog::TYPE_URL_REQUEST_BLOCKED_ON_DELEGATE, NULL);
+ SetBlockedOnDelegate();
return; // paused
}
}
@@ -413,7 +419,7 @@ void URLRequest::BeforeRequestComplete(int error) {
DCHECK(!job_);
DCHECK_NE(ERR_IO_PENDING, error);
- net_log_.EndEvent(NetLog::TYPE_URL_REQUEST_BLOCKED_ON_DELEGATE, NULL);
+ SetUnblockedOnDelegate();
if (error != OK) {
net_log_.AddEvent(NetLog::TYPE_CANCELLED,
make_scoped_refptr(new NetLogStringParameter("source", "delegate")));
@@ -801,4 +807,15 @@ void URLRequest::NotifyRequestCompleted() {
context_->network_delegate()->NotifyCompleted(this);
}
+void URLRequest::SetBlockedOnDelegate() {
+ blocked_on_delegate_ = true;
+ net_log_.BeginEvent(NetLog::TYPE_URL_REQUEST_BLOCKED_ON_DELEGATE, NULL);
+}
+
+void URLRequest::SetUnblockedOnDelegate() {
+ blocked_on_delegate_ = false;
+ load_state_param_.clear();
+ net_log_.EndEvent(NetLog::TYPE_URL_REQUEST_BLOCKED_ON_DELEGATE, NULL);
+}
+
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698