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

Side by Side Diff: chrome/browser/extensions/api/web_request/web_request_api.cc

Issue 503033002: Move ExtensionWarningService and ExtensionsWarningSet to extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@3_web_view_internal
Patch Set: rebase Created 6 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 unified diff | Download patch
OLDNEW
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 "chrome/browser/extensions/api/web_request/web_request_api.h" 5 #include "chrome/browser/extensions/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 12 matching lines...) Expand all
23 #include "chrome/browser/extensions/activity_log/activity_log.h" 23 #include "chrome/browser/extensions/activity_log/activity_log.h"
24 #include "chrome/browser/extensions/activity_log/web_request_constants.h" 24 #include "chrome/browser/extensions/activity_log/web_request_constants.h"
25 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h" 25 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h"
26 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h" 26 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h"
27 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_ registry.h" 27 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_ registry.h"
28 #include "chrome/browser/extensions/api/web_request/upload_data_presenter.h" 28 #include "chrome/browser/extensions/api/web_request/upload_data_presenter.h"
29 #include "chrome/browser/extensions/api/web_request/web_request_api_constants.h" 29 #include "chrome/browser/extensions/api/web_request/web_request_api_constants.h"
30 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" 30 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
31 #include "chrome/browser/extensions/api/web_request/web_request_time_tracker.h" 31 #include "chrome/browser/extensions/api/web_request/web_request_time_tracker.h"
32 #include "chrome/browser/extensions/extension_renderer_state.h" 32 #include "chrome/browser/extensions/extension_renderer_state.h"
33 #include "chrome/browser/extensions/extension_warning_service.h"
34 #include "chrome/browser/extensions/extension_warning_set.h"
35 #include "chrome/browser/profiles/profile.h" 33 #include "chrome/browser/profiles/profile.h"
36 #include "chrome/browser/profiles/profile_manager.h" 34 #include "chrome/browser/profiles/profile_manager.h"
37 #include "chrome/common/extensions/api/web_request.h" 35 #include "chrome/common/extensions/api/web_request.h"
38 #include "chrome/common/extensions/extension_constants.h" 36 #include "chrome/common/extensions/extension_constants.h"
39 #include "chrome/common/url_constants.h" 37 #include "chrome/common/url_constants.h"
40 #include "chrome/grit/generated_resources.h" 38 #include "chrome/grit/generated_resources.h"
41 #include "content/public/browser/browser_message_filter.h" 39 #include "content/public/browser/browser_message_filter.h"
42 #include "content/public/browser/browser_thread.h" 40 #include "content/public/browser/browser_thread.h"
43 #include "content/public/browser/render_frame_host.h" 41 #include "content/public/browser/render_frame_host.h"
44 #include "content/public/browser/render_process_host.h" 42 #include "content/public/browser/render_process_host.h"
45 #include "content/public/browser/resource_request_info.h" 43 #include "content/public/browser/resource_request_info.h"
46 #include "content/public/browser/user_metrics.h" 44 #include "content/public/browser/user_metrics.h"
47 #include "extensions/browser/event_router.h" 45 #include "extensions/browser/event_router.h"
48 #include "extensions/browser/extension_message_filter.h" 46 #include "extensions/browser/extension_message_filter.h"
49 #include "extensions/browser/extension_prefs.h" 47 #include "extensions/browser/extension_prefs.h"
50 #include "extensions/browser/extension_registry.h" 48 #include "extensions/browser/extension_registry.h"
51 #include "extensions/browser/extension_system.h" 49 #include "extensions/browser/extension_system.h"
52 #include "extensions/browser/guest_view/web_view/web_view_constants.h" 50 #include "extensions/browser/guest_view/web_view/web_view_constants.h"
53 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h" 51 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h"
54 #include "extensions/browser/info_map.h" 52 #include "extensions/browser/info_map.h"
55 #include "extensions/browser/runtime_data.h" 53 #include "extensions/browser/runtime_data.h"
54 #include "extensions/browser/warning_service.h"
55 #include "extensions/browser/warning_set.h"
56 #include "extensions/common/error_utils.h" 56 #include "extensions/common/error_utils.h"
57 #include "extensions/common/event_filtering_info.h" 57 #include "extensions/common/event_filtering_info.h"
58 #include "extensions/common/extension.h" 58 #include "extensions/common/extension.h"
59 #include "extensions/common/extension_messages.h" 59 #include "extensions/common/extension_messages.h"
60 #include "extensions/common/extension_set.h" 60 #include "extensions/common/extension_set.h"
61 #include "extensions/common/features/feature.h" 61 #include "extensions/common/features/feature.h"
62 #include "extensions/common/permissions/permissions_data.h" 62 #include "extensions/common/permissions/permissions_data.h"
63 #include "extensions/common/url_pattern.h" 63 #include "extensions/common/url_pattern.h"
64 #include "net/base/auth.h" 64 #include "net/base/auth.h"
65 #include "net/base/net_errors.h" 65 #include "net/base/net_errors.h"
66 #include "net/base/upload_data_stream.h" 66 #include "net/base/upload_data_stream.h"
67 #include "net/http/http_response_headers.h" 67 #include "net/http/http_response_headers.h"
68 #include "net/http/http_util.h" 68 #include "net/http/http_util.h"
69 #include "net/url_request/url_request.h" 69 #include "net/url_request/url_request.h"
70 #include "ui/base/l10n/l10n_util.h" 70 #include "ui/base/l10n/l10n_util.h"
71 #include "url/gurl.h" 71 #include "url/gurl.h"
72 72
73 using base::DictionaryValue; 73 using base::DictionaryValue;
74 using base::ListValue; 74 using base::ListValue;
75 using base::StringValue; 75 using base::StringValue;
76 using content::BrowserMessageFilter; 76 using content::BrowserMessageFilter;
77 using content::BrowserThread; 77 using content::BrowserThread;
78 using content::ResourceRequestInfo; 78 using content::ResourceRequestInfo;
79 using content::ResourceType; 79 using content::ResourceType;
80 using extensions::ErrorUtils; 80 using extensions::ErrorUtils;
81 using extensions::Extension; 81 using extensions::Extension;
82 using extensions::ExtensionWarning;
83 using extensions::ExtensionWarningService;
84 using extensions::ExtensionWarningSet;
85 using extensions::InfoMap; 82 using extensions::InfoMap;
86 using extensions::Feature; 83 using extensions::Feature;
87 using extensions::RulesRegistryService; 84 using extensions::RulesRegistryService;
85 using extensions::Warning;
86 using extensions::WarningService;
87 using extensions::WarningSet;
88 88
89 namespace helpers = extension_web_request_api_helpers; 89 namespace helpers = extension_web_request_api_helpers;
90 namespace keys = extension_web_request_api_constants; 90 namespace keys = extension_web_request_api_constants;
91 namespace web_request = extensions::api::web_request; 91 namespace web_request = extensions::api::web_request;
92 namespace declarative_keys = extensions::declarative_webrequest_constants; 92 namespace declarative_keys = extensions::declarative_webrequest_constants;
93 namespace activitylog = activity_log_web_request_constants; 93 namespace activitylog = activity_log_web_request_constants;
94 94
95 namespace { 95 namespace {
96 96
97 const char kWebRequestEventPrefix[] = "webRequest."; 97 const char kWebRequestEventPrefix[] = "webRequest.";
(...skipping 1779 matching lines...) Expand 10 before | Expand all | Expand 10 after
1877 BlockedRequest& blocked_request = blocked_requests_[request_id]; 1877 BlockedRequest& blocked_request = blocked_requests_[request_id];
1878 CHECK(blocked_request.num_handlers_blocking == 0); 1878 CHECK(blocked_request.num_handlers_blocking == 0);
1879 helpers::EventResponseDeltas& deltas = blocked_request.response_deltas; 1879 helpers::EventResponseDeltas& deltas = blocked_request.response_deltas;
1880 base::TimeDelta block_time = 1880 base::TimeDelta block_time =
1881 base::Time::Now() - blocked_request.blocking_time; 1881 base::Time::Now() - blocked_request.blocking_time;
1882 request_time_tracker_->IncrementTotalBlockTime(request_id, block_time); 1882 request_time_tracker_->IncrementTotalBlockTime(request_id, block_time);
1883 1883
1884 bool credentials_set = false; 1884 bool credentials_set = false;
1885 1885
1886 deltas.sort(&helpers::InDecreasingExtensionInstallationTimeOrder); 1886 deltas.sort(&helpers::InDecreasingExtensionInstallationTimeOrder);
1887 ExtensionWarningSet warnings; 1887 WarningSet warnings;
1888 1888
1889 bool canceled = false; 1889 bool canceled = false;
1890 helpers::MergeCancelOfResponses( 1890 helpers::MergeCancelOfResponses(
1891 blocked_request.response_deltas, 1891 blocked_request.response_deltas,
1892 &canceled, 1892 &canceled,
1893 blocked_request.net_log); 1893 blocked_request.net_log);
1894 1894
1895 if (blocked_request.event == kOnBeforeRequest) { 1895 if (blocked_request.event == kOnBeforeRequest) {
1896 CHECK(!blocked_request.callback.is_null()); 1896 CHECK(!blocked_request.callback.is_null());
1897 helpers::MergeOnBeforeRequestResponses( 1897 helpers::MergeOnBeforeRequestResponses(
(...skipping 28 matching lines...) Expand all
1926 } else { 1926 } else {
1927 NOTREACHED(); 1927 NOTREACHED();
1928 } 1928 }
1929 1929
1930 SendMessages(profile, blocked_request); 1930 SendMessages(profile, blocked_request);
1931 1931
1932 if (!warnings.empty()) { 1932 if (!warnings.empty()) {
1933 BrowserThread::PostTask( 1933 BrowserThread::PostTask(
1934 BrowserThread::UI, 1934 BrowserThread::UI,
1935 FROM_HERE, 1935 FROM_HERE,
1936 base::Bind(&ExtensionWarningService::NotifyWarningsOnUI, 1936 base::Bind(&WarningService::NotifyWarningsOnUI, profile, warnings));
1937 profile, warnings));
1938 } 1937 }
1939 1938
1940 if (canceled) { 1939 if (canceled) {
1941 request_time_tracker_->SetRequestCanceled(request_id); 1940 request_time_tracker_->SetRequestCanceled(request_id);
1942 } else if (blocked_request.new_url && 1941 } else if (blocked_request.new_url &&
1943 !blocked_request.new_url->is_empty()) { 1942 !blocked_request.new_url->is_empty()) {
1944 request_time_tracker_->SetRequestRedirected(request_id); 1943 request_time_tracker_->SetRequestRedirected(request_id);
1945 } 1944 }
1946 1945
1947 // This triggers onErrorOccurred if canceled is true. 1946 // This triggers onErrorOccurred if canceled is true.
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
2449 extensions::QuotaLimitHeuristic::BucketMapper* bucket_mapper = 2448 extensions::QuotaLimitHeuristic::BucketMapper* bucket_mapper =
2450 new extensions::QuotaLimitHeuristic::SingletonBucketMapper(); 2449 new extensions::QuotaLimitHeuristic::SingletonBucketMapper();
2451 ClearCacheQuotaHeuristic* heuristic = 2450 ClearCacheQuotaHeuristic* heuristic =
2452 new ClearCacheQuotaHeuristic(config, bucket_mapper); 2451 new ClearCacheQuotaHeuristic(config, bucket_mapper);
2453 heuristics->push_back(heuristic); 2452 heuristics->push_back(heuristic);
2454 } 2453 }
2455 2454
2456 void WebRequestHandlerBehaviorChangedFunction::OnQuotaExceeded( 2455 void WebRequestHandlerBehaviorChangedFunction::OnQuotaExceeded(
2457 const std::string& violation_error) { 2456 const std::string& violation_error) {
2458 // Post warning message. 2457 // Post warning message.
2459 ExtensionWarningSet warnings; 2458 WarningSet warnings;
2460 warnings.insert( 2459 warnings.insert(
2461 ExtensionWarning::CreateRepeatedCacheFlushesWarning(extension_id())); 2460 Warning::CreateRepeatedCacheFlushesWarning(extension_id()));
2462 BrowserThread::PostTask( 2461 BrowserThread::PostTask(
2463 BrowserThread::UI, 2462 BrowserThread::UI,
2464 FROM_HERE, 2463 FROM_HERE,
2465 base::Bind(&ExtensionWarningService::NotifyWarningsOnUI, 2464 base::Bind(&WarningService::NotifyWarningsOnUI, profile_id(), warnings));
2466 profile_id(), warnings));
2467 2465
2468 // Continue gracefully. 2466 // Continue gracefully.
2469 RunSync(); 2467 RunSync();
2470 } 2468 }
2471 2469
2472 bool WebRequestHandlerBehaviorChangedFunction::RunSync() { 2470 bool WebRequestHandlerBehaviorChangedFunction::RunSync() {
2473 helpers::ClearCacheOnNavigation(); 2471 helpers::ClearCacheOnNavigation();
2474 return true; 2472 return true;
2475 } 2473 }
2476 2474
2477 void SendExtensionWebRequestStatusToHost(content::RenderProcessHost* host) { 2475 void SendExtensionWebRequestStatusToHost(content::RenderProcessHost* host) {
2478 Profile* profile = Profile::FromBrowserContext(host->GetBrowserContext()); 2476 Profile* profile = Profile::FromBrowserContext(host->GetBrowserContext());
2479 if (!profile) 2477 if (!profile)
2480 return; 2478 return;
2481 2479
2482 bool webrequest_used = false; 2480 bool webrequest_used = false;
2483 const extensions::ExtensionSet& extensions = 2481 const extensions::ExtensionSet& extensions =
2484 extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); 2482 extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
2485 extensions::RuntimeData* runtime_data = 2483 extensions::RuntimeData* runtime_data =
2486 extensions::ExtensionSystem::Get(profile)->runtime_data(); 2484 extensions::ExtensionSystem::Get(profile)->runtime_data();
2487 for (extensions::ExtensionSet::const_iterator it = extensions.begin(); 2485 for (extensions::ExtensionSet::const_iterator it = extensions.begin();
2488 !webrequest_used && it != extensions.end(); 2486 !webrequest_used && it != extensions.end();
2489 ++it) { 2487 ++it) {
2490 webrequest_used |= runtime_data->HasUsedWebRequest(it->get()); 2488 webrequest_used |= runtime_data->HasUsedWebRequest(it->get());
2491 } 2489 }
2492 2490
2493 host->Send(new ExtensionMsg_UsingWebRequestAPI(webrequest_used)); 2491 host->Send(new ExtensionMsg_UsingWebRequestAPI(webrequest_used));
2494 } 2492 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698