| 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..113df10115373fb4d872fa6983c1420cd5f696ec 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"
|
| @@ -1325,7 +1326,7 @@ int ExtensionWebRequestEventRouter::ExecuteDeltas(
|
| bool credentials_set = false;
|
|
|
| deltas.sort(&helpers::InDecreasingExtensionInstallationTimeOrder);
|
| - std::set<std::string> conflicting_extensions;
|
| + scoped_ptr<ExtensionWarningSet> warnings(new ExtensionWarningSet);
|
|
|
| bool canceled = false;
|
| helpers::MergeCancelOfResponses(
|
| @@ -1338,14 +1339,14 @@ int ExtensionWebRequestEventRouter::ExecuteDeltas(
|
| helpers::MergeOnBeforeRequestResponses(
|
| blocked_request.response_deltas,
|
| blocked_request.new_url,
|
| - &conflicting_extensions,
|
| + warnings.get(),
|
| 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.get(),
|
| blocked_request.net_log);
|
| } else if (blocked_request.event == kOnHeadersReceived) {
|
| CHECK(!blocked_request.callback.is_null());
|
| @@ -1353,7 +1354,7 @@ int ExtensionWebRequestEventRouter::ExecuteDeltas(
|
| blocked_request.response_deltas,
|
| blocked_request.original_response_headers.get(),
|
| blocked_request.override_response_headers,
|
| - &conflicting_extensions,
|
| + warnings.get(),
|
| blocked_request.net_log);
|
| } else if (blocked_request.event == kOnAuthRequired) {
|
| CHECK(blocked_request.callback.is_null());
|
| @@ -1361,20 +1362,19 @@ int ExtensionWebRequestEventRouter::ExecuteDeltas(
|
| credentials_set = helpers::MergeOnAuthRequiredResponses(
|
| blocked_request.response_deltas,
|
| blocked_request.auth_credentials,
|
| - &conflicting_extensions,
|
| + warnings.get(),
|
| blocked_request.net_log);
|
| } else {
|
| NOTREACHED();
|
| }
|
|
|
| - if (!conflicting_extensions.empty()) {
|
| + if (!warnings->IsEmpty()) {
|
| BrowserThread::PostTask(
|
| BrowserThread::UI,
|
| FROM_HERE,
|
| - base::Bind(&ExtensionWarningSet::NotifyWarningsOnUI,
|
| + base::Bind(&ExtensionWarningService::NotifyWarningsOnUI,
|
| profile,
|
| - conflicting_extensions,
|
| - ExtensionWarningSet::kNetworkConflict));
|
| + base::Passed(warnings.Pass())));
|
| }
|
|
|
| if (canceled) {
|
| @@ -1803,15 +1803,15 @@ 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());
|
| + scoped_ptr<ExtensionWarningSet> warnings(new ExtensionWarningSet);
|
| + warnings->Insert(
|
| + ExtensionWarning::CreateRepeatedCacheFlushesWarning(extension_id()));
|
| BrowserThread::PostTask(
|
| BrowserThread::UI,
|
| FROM_HERE,
|
| - base::Bind(&ExtensionWarningSet::NotifyWarningsOnUI,
|
| + base::Bind(&ExtensionWarningService::NotifyWarningsOnUI,
|
| profile_id(),
|
| - extension_ids,
|
| - ExtensionWarningSet::kRepeatedCacheFlushes));
|
| + base::Passed(warnings.Pass())));
|
|
|
| // Continue gracefully.
|
| Run();
|
|
|