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

Unified Diff: chrome/browser/extensions/api/web_request/web_request_api.cc

Issue 10407105: Improve error messaging of webRequest API in case of conflicts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Store ExtensionWarnings as values in set rather than pointers Created 8 years, 3 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/api/web_request/web_request_api.cc
diff --git a/chrome/browser/extensions/api/web_request/web_request_api.cc b/chrome/browser/extensions/api/web_request/web_request_api.cc
index 229e5534a3f0d044ba02014896c90f250ffb816d..a85329abc0ede819be865a4ec85e0a122291a955 100644
--- a/chrome/browser/extensions/api/web_request/web_request_api.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_api.cc
@@ -7,6 +7,7 @@
#include <algorithm>
#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/json/json_writer.h"
#include "base/metrics/histogram.h"
#include "base/string_number_conversions.h"
@@ -27,6 +28,7 @@
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_tab_id_map.h"
+#include "chrome/browser/extensions/extension_warning_set.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/renderer_host/chrome_render_message_filter.h"
@@ -54,6 +56,9 @@ using content::BrowserMessageFilter;
using content::BrowserThread;
using content::ResourceRequestInfo;
using extensions::Extension;
+using extensions::ExtensionWarning;
+using extensions::ExtensionWarningService;
+using extensions::ExtensionWarningSet;
using extensions::web_navigation_api_helpers::GetFrameId;
@@ -1325,7 +1330,7 @@ int ExtensionWebRequestEventRouter::ExecuteDeltas(
bool credentials_set = false;
deltas.sort(&helpers::InDecreasingExtensionInstallationTimeOrder);
- std::set<std::string> conflicting_extensions;
+ ExtensionWarningSet warnings;
bool canceled = false;
helpers::MergeCancelOfResponses(
@@ -1338,14 +1343,14 @@ int ExtensionWebRequestEventRouter::ExecuteDeltas(
helpers::MergeOnBeforeRequestResponses(
blocked_request.response_deltas,
blocked_request.new_url,
- &conflicting_extensions,
+ &warnings,
blocked_request.net_log);
} else if (blocked_request.event == kOnBeforeSendHeaders) {
CHECK(!blocked_request.callback.is_null());
helpers::MergeOnBeforeSendHeadersResponses(
blocked_request.response_deltas,
blocked_request.request_headers,
- &conflicting_extensions,
+ &warnings,
blocked_request.net_log);
} else if (blocked_request.event == kOnHeadersReceived) {
CHECK(!blocked_request.callback.is_null());
@@ -1353,7 +1358,7 @@ int ExtensionWebRequestEventRouter::ExecuteDeltas(
blocked_request.response_deltas,
blocked_request.original_response_headers.get(),
blocked_request.override_response_headers,
- &conflicting_extensions,
+ &warnings,
blocked_request.net_log);
} else if (blocked_request.event == kOnAuthRequired) {
CHECK(blocked_request.callback.is_null());
@@ -1361,20 +1366,18 @@ int ExtensionWebRequestEventRouter::ExecuteDeltas(
credentials_set = helpers::MergeOnAuthRequiredResponses(
blocked_request.response_deltas,
blocked_request.auth_credentials,
- &conflicting_extensions,
+ &warnings,
blocked_request.net_log);
} else {
NOTREACHED();
}
- if (!conflicting_extensions.empty()) {
+ if (!warnings.empty()) {
BrowserThread::PostTask(
BrowserThread::UI,
FROM_HERE,
- base::Bind(&ExtensionWarningSet::NotifyWarningsOnUI,
- profile,
- conflicting_extensions,
- ExtensionWarningSet::kNetworkConflict));
+ base::Bind(&ExtensionWarningService::NotifyWarningsOnUI,
+ profile, warnings));
}
if (canceled) {
@@ -1803,15 +1806,14 @@ void WebRequestHandlerBehaviorChanged::GetQuotaLimitHeuristics(
void WebRequestHandlerBehaviorChanged::OnQuotaExceeded(
const std::string& violation_error) {
// Post warning message.
- std::set<std::string> extension_ids;
- extension_ids.insert(extension_id());
+ ExtensionWarningSet warnings;
+ warnings.insert(
+ ExtensionWarning::CreateRepeatedCacheFlushesWarning(extension_id()));
BrowserThread::PostTask(
BrowserThread::UI,
FROM_HERE,
- base::Bind(&ExtensionWarningSet::NotifyWarningsOnUI,
- profile_id(),
- extension_ids,
- ExtensionWarningSet::kRepeatedCacheFlushes));
+ base::Bind(&ExtensionWarningService::NotifyWarningsOnUI,
+ profile_id(), warnings));
// Continue gracefully.
Run();

Powered by Google App Engine
This is Rietveld 408576698