OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "extensions/browser/api/web_request/web_request_api.h" | 5 #include "extensions/browser/api/web_request/web_request_api.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 1328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1339 DecrementBlockCount(browser_context, extension_id, event_name, *it, NULL); | 1339 DecrementBlockCount(browser_context, extension_id, event_name, *it, NULL); |
1340 } | 1340 } |
1341 | 1341 |
1342 event_listeners.erase(listener); | 1342 event_listeners.erase(listener); |
1343 | 1343 |
1344 helpers::ClearCacheOnNavigation(); | 1344 helpers::ClearCacheOnNavigation(); |
1345 } | 1345 } |
1346 | 1346 |
1347 void ExtensionWebRequestEventRouter::RemoveWebViewEventListeners( | 1347 void ExtensionWebRequestEventRouter::RemoveWebViewEventListeners( |
1348 void* browser_context, | 1348 void* browser_context, |
1349 const std::string& extension_id, | |
1350 int embedder_process_id, | 1349 int embedder_process_id, |
1351 int web_view_instance_id) { | 1350 int web_view_instance_id) { |
1352 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 1351 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
1353 | 1352 |
1354 // Iterate over all listeners of all WebRequest events to delete | 1353 // Iterate over all listeners of all WebRequest events to delete |
1355 // any listeners that belong to the provided <webview>. | 1354 // any listeners that belong to the provided <webview>. |
1356 ListenerMapForBrowserContext& map_for_browser_context = | 1355 ListenerMapForBrowserContext& map_for_browser_context = |
1357 listeners_[browser_context]; | 1356 listeners_[browser_context]; |
1358 for (const auto& event_iter : map_for_browser_context) { | 1357 for (const auto& event_iter : map_for_browser_context) { |
1359 // Construct a listeners_to_delete vector so that we don't modify the set of | 1358 // Construct a listeners_to_delete vector so that we don't modify the set of |
1360 // listeners as we iterate through it. | 1359 // listeners as we iterate through it. |
1361 std::vector<EventListener> listeners_to_delete; | 1360 std::vector<EventListener> listeners_to_delete; |
1362 const std::set<EventListener>& listeners = event_iter.second; | 1361 const std::set<EventListener>& listeners = event_iter.second; |
1363 for (const auto& listener : listeners) { | 1362 for (const auto& listener : listeners) { |
1364 if (listener.embedder_process_id == embedder_process_id && | 1363 if (listener.embedder_process_id == embedder_process_id && |
1365 listener.web_view_instance_id == web_view_instance_id) { | 1364 listener.web_view_instance_id == web_view_instance_id) { |
1366 listeners_to_delete.push_back(listener); | 1365 listeners_to_delete.push_back(listener); |
1367 } | 1366 } |
1368 } | 1367 } |
1369 // Remove the listeners selected for deletion. | 1368 // Remove the listeners selected for deletion. |
1370 for (const auto& listener : listeners_to_delete) { | 1369 for (const auto& listener : listeners_to_delete) { |
1371 RemoveEventListenerOnIOThread( | 1370 RemoveEventListenerOnIOThread( |
1372 browser_context, | 1371 browser_context, |
1373 extension_id, | 1372 listener.extension_id, |
lazyboy
2015/06/09 14:19:32
This isn't equivalent to what it used to be, as I'
paulmeyer
2015/06/09 14:49:42
As per our offline discussion, I'll leave this cha
| |
1374 listener.sub_event_name, | 1373 listener.sub_event_name, |
1375 listener.embedder_process_id, | 1374 listener.embedder_process_id, |
1376 listener.web_view_instance_id); | 1375 listener.web_view_instance_id); |
1377 } | 1376 } |
1378 } | 1377 } |
1379 } | 1378 } |
1380 | 1379 |
1381 void ExtensionWebRequestEventRouter::OnOTRBrowserContextCreated( | 1380 void ExtensionWebRequestEventRouter::OnOTRBrowserContextCreated( |
1382 void* original_browser_context, void* otr_browser_context) { | 1381 void* original_browser_context, void* otr_browser_context) { |
1383 cross_browser_context_map_[original_browser_context] = | 1382 cross_browser_context_map_[original_browser_context] = |
(...skipping 1075 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2459 base::Bind(&WarningService::NotifyWarningsOnUI, profile_id(), warnings)); | 2458 base::Bind(&WarningService::NotifyWarningsOnUI, profile_id(), warnings)); |
2460 | 2459 |
2461 // Continue gracefully. | 2460 // Continue gracefully. |
2462 RunSync(); | 2461 RunSync(); |
2463 } | 2462 } |
2464 | 2463 |
2465 bool WebRequestHandlerBehaviorChangedFunction::RunSync() { | 2464 bool WebRequestHandlerBehaviorChangedFunction::RunSync() { |
2466 helpers::ClearCacheOnNavigation(); | 2465 helpers::ClearCacheOnNavigation(); |
2467 return true; | 2466 return true; |
2468 } | 2467 } |
OLD | NEW |