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

Unified Diff: chrome/browser/extensions/user_script_listener.cc

Issue 8205001: (Owner approval for) Delay network requests on startup if any webRequest ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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: chrome/browser/extensions/user_script_listener.cc
===================================================================
--- chrome/browser/extensions/user_script_listener.cc (revision 104705)
+++ chrome/browser/extensions/user_script_listener.cc (working copy)
@@ -4,13 +4,13 @@
#include "chrome/browser/extensions/user_script_listener.h"
+#include "base/bind.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/url_pattern.h"
#include "content/browser/browser_thread.h"
-#include "content/browser/renderer_host/global_request_id.h"
#include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
#include "content/common/notification_service.h"
#include "net/url_request/url_request.h"
@@ -18,7 +18,7 @@
UserScriptListener::UserScriptListener()
: resource_queue_(NULL),
user_scripts_ready_(false) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
NotificationService::AllSources());
@@ -37,7 +37,7 @@
net::URLRequest* request,
const ResourceDispatcherHostRequestInfo& request_info,
const GlobalRequestID& request_id) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
// If it's a frame load, then we need to check the URL against the list of
// user scripts to see if we need to wait.
@@ -54,7 +54,6 @@
if ((*it).MatchesURL(request->url())) {
// One of the user scripts wants to inject into this request, but the
// script isn't ready yet. Delay the request.
- delayed_request_ids_.push_front(request_id);
return true;
}
}
@@ -63,34 +62,29 @@
}
void UserScriptListener::WillShutdownResourceQueue() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
resource_queue_ = NULL;
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this, &UserScriptListener::Cleanup));
+ base::Bind(&UserScriptListener::Cleanup, this));
}
UserScriptListener::~UserScriptListener() {
}
void UserScriptListener::StartDelayedRequests() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
user_scripts_ready_ = true;
if (resource_queue_) {
- for (DelayedRequests::iterator it = delayed_request_ids_.begin();
- it != delayed_request_ids_.end(); ++it) {
- resource_queue_->StartDelayedRequest(this, *it);
- }
+ resource_queue_->StartDelayedRequests(this);
}
-
- delayed_request_ids_.clear();
}
void UserScriptListener::AppendNewURLPatterns(const URLPatterns& new_patterns) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
user_scripts_ready_ = false;
url_patterns_.insert(url_patterns_.end(),
@@ -98,19 +92,19 @@
}
void UserScriptListener::ReplaceURLPatterns(const URLPatterns& patterns) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
url_patterns_ = patterns;
}
void UserScriptListener::Cleanup() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
registrar_.RemoveAll();
Release();
}
void UserScriptListener::CollectURLPatterns(const Extension* extension,
URLPatterns* patterns) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
const UserScriptList& scripts = extension->content_scripts();
for (UserScriptList::const_iterator iter = scripts.begin();
@@ -124,7 +118,7 @@
void UserScriptListener::Observe(int type,
const NotificationSource& source,
const NotificationDetails& details) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
switch (type) {
case chrome::NOTIFICATION_EXTENSION_LOADED: {
@@ -138,8 +132,8 @@
if (!new_patterns.empty()) {
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(
- this, &UserScriptListener::AppendNewURLPatterns, new_patterns));
+ base::Bind(
+ &UserScriptListener::AppendNewURLPatterns, this, new_patterns));
}
break;
}
@@ -161,15 +155,15 @@
}
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(
- this, &UserScriptListener::ReplaceURLPatterns, new_patterns));
+ base::Bind(
+ &UserScriptListener::ReplaceURLPatterns, this, new_patterns));
break;
}
case chrome::NOTIFICATION_USER_SCRIPTS_UPDATED: {
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(this, &UserScriptListener::StartDelayedRequests));
+ base::Bind(&UserScriptListener::StartDelayedRequests, this));
break;
}

Powered by Google App Engine
This is Rietveld 408576698