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

Unified Diff: chrome/browser/extensions/api/web_request/web_request_api_helpers.h

Issue 566823003: Move declarative_webrequest: action, rules_registry (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing another weird re-base error. 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/web_request/web_request_api_helpers.h
diff --git a/chrome/browser/extensions/api/web_request/web_request_api_helpers.h b/chrome/browser/extensions/api/web_request/web_request_api_helpers.h
deleted file mode 100644
index b5a25771f6e01d66fef932e4a931b0f516838de0..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/web_request/web_request_api_helpers.h
+++ /dev/null
@@ -1,317 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Helper classes and functions used for the WebRequest API.
-
-#ifndef CHROME_BROWSER_EXTENSIONS_API_WEB_REQUEST_WEB_REQUEST_API_HELPERS_H_
-#define CHROME_BROWSER_EXTENSIONS_API_WEB_REQUEST_WEB_REQUEST_API_HELPERS_H_
-
-#include <list>
-#include <set>
-#include <string>
-
-#include "base/memory/linked_ptr.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/time/time.h"
-#include "extensions/browser/warning_set.h"
-#include "net/base/auth.h"
-#include "net/http/http_request_headers.h"
-#include "net/http/http_response_headers.h"
-#include "url/gurl.h"
-
-namespace base {
-class ListValue;
-class Value;
-}
-
-namespace extensions {
-class Extension;
-}
-
-namespace net {
-class BoundNetLog;
-class URLRequest;
-}
-
-namespace extension_web_request_api_helpers {
-
-typedef std::pair<std::string, std::string> ResponseHeader;
-typedef std::vector<ResponseHeader> ResponseHeaders;
-
-// Data container for RequestCookies as defined in the declarative WebRequest
-// API definition.
-struct RequestCookie {
- RequestCookie();
- ~RequestCookie();
- scoped_ptr<std::string> name;
- scoped_ptr<std::string> value;
- private:
- DISALLOW_COPY_AND_ASSIGN(RequestCookie);
-};
-
-bool NullableEquals(const RequestCookie* a, const RequestCookie* b);
-
-// Data container for ResponseCookies as defined in the declarative WebRequest
-// API definition.
-struct ResponseCookie {
- ResponseCookie();
- ~ResponseCookie();
- scoped_ptr<std::string> name;
- scoped_ptr<std::string> value;
- scoped_ptr<std::string> expires;
- scoped_ptr<int> max_age;
- scoped_ptr<std::string> domain;
- scoped_ptr<std::string> path;
- scoped_ptr<bool> secure;
- scoped_ptr<bool> http_only;
- private:
- DISALLOW_COPY_AND_ASSIGN(ResponseCookie);
-};
-
-bool NullableEquals(const ResponseCookie* a, const ResponseCookie* b);
-
-// Data container for FilterResponseCookies as defined in the declarative
-// WebRequest API definition.
-struct FilterResponseCookie : ResponseCookie {
- FilterResponseCookie();
- ~FilterResponseCookie();
- scoped_ptr<int> age_lower_bound;
- scoped_ptr<int> age_upper_bound;
- scoped_ptr<bool> session_cookie;
- private:
- DISALLOW_COPY_AND_ASSIGN(FilterResponseCookie);
-};
-
-bool NullableEquals(const FilterResponseCookie* a,
- const FilterResponseCookie* b);
-
-enum CookieModificationType {
- ADD,
- EDIT,
- REMOVE,
-};
-
-struct RequestCookieModification {
- RequestCookieModification();
- ~RequestCookieModification();
- CookieModificationType type;
- // Used for EDIT and REMOVE. NULL for ADD.
- scoped_ptr<RequestCookie> filter;
- // Used for ADD and EDIT. NULL for REMOVE.
- scoped_ptr<RequestCookie> modification;
- private:
- DISALLOW_COPY_AND_ASSIGN(RequestCookieModification);
-};
-
-bool NullableEquals(const RequestCookieModification* a,
- const RequestCookieModification* b);
-
-struct ResponseCookieModification {
- ResponseCookieModification();
- ~ResponseCookieModification();
- CookieModificationType type;
- // Used for EDIT and REMOVE.
- scoped_ptr<FilterResponseCookie> filter;
- // Used for ADD and EDIT.
- scoped_ptr<ResponseCookie> modification;
- private:
- DISALLOW_COPY_AND_ASSIGN(ResponseCookieModification);
-};
-
-bool NullableEquals(const ResponseCookieModification* a,
- const ResponseCookieModification* b);
-
-typedef std::vector<linked_ptr<RequestCookieModification> >
- RequestCookieModifications;
-typedef std::vector<linked_ptr<ResponseCookieModification> >
- ResponseCookieModifications;
-
-// Contains the modification an extension wants to perform on an event.
-struct EventResponseDelta {
- // ID of the extension that sent this response.
- std::string extension_id;
-
- // The time that the extension was installed. Used for deciding order of
- // precedence in case multiple extensions respond with conflicting
- // decisions.
- base::Time extension_install_time;
-
- // Response values. These are mutually exclusive.
- bool cancel;
- GURL new_url;
-
- // Newly introduced or overridden request headers.
- net::HttpRequestHeaders modified_request_headers;
-
- // Keys of request headers to be deleted.
- std::vector<std::string> deleted_request_headers;
-
- // Headers that were added to the response. A modification of a header
- // corresponds to a deletion and subsequent addition of the new header.
- ResponseHeaders added_response_headers;
-
- // Headers that were deleted from the response.
- ResponseHeaders deleted_response_headers;
-
- // Authentication Credentials to use.
- scoped_ptr<net::AuthCredentials> auth_credentials;
-
- // Modifications to cookies in request headers.
- RequestCookieModifications request_cookie_modifications;
-
- // Modifications to cookies in response headers.
- ResponseCookieModifications response_cookie_modifications;
-
- // Messages that shall be sent to the background/event/... pages of the
- // extension.
- std::set<std::string> messages_to_extension;
-
- EventResponseDelta(const std::string& extension_id,
- const base::Time& extension_install_time);
- ~EventResponseDelta();
-
- DISALLOW_COPY_AND_ASSIGN(EventResponseDelta);
-};
-
-typedef std::list<linked_ptr<EventResponseDelta> > EventResponseDeltas;
-
-// Comparison operator that returns true if the extension that caused
-// |a| was installed after the extension that caused |b|.
-bool InDecreasingExtensionInstallationTimeOrder(
- const linked_ptr<EventResponseDelta>& a,
- const linked_ptr<EventResponseDelta>& b);
-
-// Converts a string to a list of integers, each in 0..255. Ownership
-// of the created list is passed to the caller.
-base::ListValue* StringToCharList(const std::string& s);
-
-// Converts a list of integer values between 0 and 255 into a string |*out|.
-// Returns true if the conversion was successful.
-bool CharListToString(const base::ListValue* list, std::string* out);
-
-// The following functions calculate and return the modifications to requests
-// commanded by extension handlers. All functions take the id of the extension
-// that commanded a modification, the installation time of this extension (used
-// for defining a precedence in conflicting modifications) and whether the
-// extension requested to |cancel| the request. Other parameters depend on a
-// the signal handler. Ownership of the returned object is passed to the caller.
-
-EventResponseDelta* CalculateOnBeforeRequestDelta(
- const std::string& extension_id,
- const base::Time& extension_install_time,
- bool cancel,
- const GURL& new_url);
-EventResponseDelta* CalculateOnBeforeSendHeadersDelta(
- const std::string& extension_id,
- const base::Time& extension_install_time,
- bool cancel,
- net::HttpRequestHeaders* old_headers,
- net::HttpRequestHeaders* new_headers);
-EventResponseDelta* CalculateOnHeadersReceivedDelta(
- const std::string& extension_id,
- const base::Time& extension_install_time,
- bool cancel,
- const GURL& new_url,
- const net::HttpResponseHeaders* old_response_headers,
- ResponseHeaders* new_response_headers);
-// Destructively moves the auth credentials from |auth_credentials| to the
-// returned EventResponseDelta.
-EventResponseDelta* CalculateOnAuthRequiredDelta(
- const std::string& extension_id,
- const base::Time& extension_install_time,
- bool cancel,
- scoped_ptr<net::AuthCredentials>* auth_credentials);
-
-// These functions merge the responses (the |deltas|) of request handlers.
-// The |deltas| need to be sorted in decreasing order of precedence of
-// extensions. In case extensions had |deltas| that could not be honored, their
-// IDs are reported in |conflicting_extensions|. NetLog events that shall be
-// reported will be stored in |event_log_entries|.
-
-// Stores in |canceled| whether any extension wanted to cancel the request.
-void MergeCancelOfResponses(
- const EventResponseDeltas& deltas,
- bool* canceled,
- const net::BoundNetLog* net_log);
-// Stores in |*new_url| the redirect request of the extension with highest
-// precedence. Extensions that did not command to redirect the request are
-// ignored in this logic.
-void MergeRedirectUrlOfResponses(
- const EventResponseDeltas& deltas,
- GURL* new_url,
- extensions::WarningSet* conflicting_extensions,
- const net::BoundNetLog* net_log);
-// Stores in |*new_url| the redirect request of the extension with highest
-// precedence. Extensions that did not command to redirect the request are
-// ignored in this logic.
-void MergeOnBeforeRequestResponses(
- const EventResponseDeltas& deltas,
- GURL* new_url,
- extensions::WarningSet* conflicting_extensions,
- const net::BoundNetLog* net_log);
-// Modifies the "Cookie" header in |request_headers| according to
-// |deltas.request_cookie_modifications|. Conflicts are currently ignored
-// silently.
-void MergeCookiesInOnBeforeSendHeadersResponses(
- const EventResponseDeltas& deltas,
- net::HttpRequestHeaders* request_headers,
- extensions::WarningSet* conflicting_extensions,
- const net::BoundNetLog* net_log);
-// Modifies the headers in |request_headers| according to |deltas|. Conflicts
-// are tried to be resolved.
-void MergeOnBeforeSendHeadersResponses(
- const EventResponseDeltas& deltas,
- net::HttpRequestHeaders* request_headers,
- extensions::WarningSet* conflicting_extensions,
- const net::BoundNetLog* net_log);
-// Modifies the "Set-Cookie" headers in |override_response_headers| according to
-// |deltas.response_cookie_modifications|. If |override_response_headers| is
-// NULL, a copy of |original_response_headers| is created. Conflicts are
-// currently ignored silently.
-void MergeCookiesInOnHeadersReceivedResponses(
- const EventResponseDeltas& deltas,
- const net::HttpResponseHeaders* original_response_headers,
- scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
- extensions::WarningSet* conflicting_extensions,
- const net::BoundNetLog* net_log);
-// Stores a copy of |original_response_header| into |override_response_headers|
-// that is modified according to |deltas|. If |deltas| does not instruct to
-// modify the response headers, |override_response_headers| remains empty.
-// Extension-initiated redirects are written to |override_response_headers|
-// (to request redirection) and |*allowed_unsafe_redirect_url| (to make sure
-// that the request is not cancelled with net::ERR_UNSAFE_REDIRECT).
-void MergeOnHeadersReceivedResponses(
- const EventResponseDeltas& deltas,
- const net::HttpResponseHeaders* original_response_headers,
- scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url,
- extensions::WarningSet* conflicting_extensions,
- const net::BoundNetLog* net_log);
-// Merge the responses of blocked onAuthRequired handlers. The first
-// registered listener that supplies authentication credentials in a response,
-// if any, will have its authentication credentials used. |request| must be
-// non-NULL, and contain |deltas| that are sorted in decreasing order of
-// precedence.
-// Returns whether authentication credentials are set.
-bool MergeOnAuthRequiredResponses(
- const EventResponseDeltas& deltas,
- net::AuthCredentials* auth_credentials,
- extensions::WarningSet* conflicting_extensions,
- const net::BoundNetLog* net_log);
-
-// Triggers clearing each renderer's in-memory cache the next time it navigates.
-void ClearCacheOnNavigation();
-
-// Tells renderer processes that the web request or declarative web request
-// API has been used by |extension| in browser_context |browser_context_id| to
-// collect UMA statistics on Page Load Times. Needs to be called on the UI
-// thread.
-void NotifyWebRequestAPIUsed(
- void* browser_context_id,
- scoped_refptr<const extensions::Extension> extension);
-
-} // namespace extension_web_request_api_helpers
-
-#endif // CHROME_BROWSER_EXTENSIONS_API_WEB_REQUEST_WEB_REQUEST_API_HELPERS_H_

Powered by Google App Engine
This is Rietveld 408576698