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

Unified Diff: webkit/glue/resource_loader_bridge.h

Issue 20003004: reland crrev.com/212927 Move webkitplatformsupport_impl and related from glue to child (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase & allocator dep for components_unittests in shared_library2 Created 7 years, 5 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
« no previous file with comments | « webkit/glue/multipart_response_delegate_unittest.cc ('k') | webkit/glue/resource_loader_bridge.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/resource_loader_bridge.h
diff --git a/webkit/glue/resource_loader_bridge.h b/webkit/glue/resource_loader_bridge.h
deleted file mode 100644
index 3df3cc3fed83b0421a3e8d45d47e38bc5149d6da..0000000000000000000000000000000000000000
--- a/webkit/glue/resource_loader_bridge.h
+++ /dev/null
@@ -1,232 +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.
-//
-// The intent of this file is to provide a type-neutral abstraction between
-// Chrome and WebKit for resource loading. This pure-virtual interface is
-// implemented by the embedder.
-//
-// One of these objects will be created by WebKit for each request. WebKit
-// will own the pointer to the bridge, and will delete it when the request is
-// no longer needed.
-//
-// In turn, the bridge's owner on the WebKit end will implement the Peer
-// interface, which we will use to communicate notifications back.
-
-#ifndef WEBKIT_GLUE_RESOURCE_LOADER_BRIDGE_H_
-#define WEBKIT_GLUE_RESOURCE_LOADER_BRIDGE_H_
-
-#include <utility>
-
-#include "build/build_config.h"
-#if defined(OS_POSIX)
-#include "base/file_descriptor_posix.h"
-#endif
-#include "base/memory/ref_counted.h"
-#include "base/platform_file.h"
-#include "base/values.h"
-#include "net/base/request_priority.h"
-#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
-#include "third_party/WebKit/public/platform/WebURLRequest.h"
-#include "url/gurl.h"
-#include "webkit/common/resource_response_info.h"
-#include "webkit/glue/resource_type.h"
-#include "webkit/glue/webkit_glue_export.h"
-
-namespace webkit_glue {
-class ResourceRequestBody;
-
-class ResourceLoaderBridge {
- public:
- // Structure used when calling
- // WebKitPlatformSupportImpl::CreateResourceLoader().
- struct WEBKIT_GLUE_EXPORT RequestInfo {
- RequestInfo();
- ~RequestInfo();
-
- // HTTP-style method name (e.g., "GET" or "POST").
- std::string method;
-
- // Absolute URL encoded in ASCII per the rules of RFC-2396.
- GURL url;
-
- // URL of the document in the top-level window, which may be checked by the
- // third-party cookie blocking policy.
- GURL first_party_for_cookies;
-
- // Optional parameter, a URL with similar constraints in how it must be
- // encoded as the url member.
- GURL referrer;
-
- // The referrer policy that applies to the referrer.
- WebKit::WebReferrerPolicy referrer_policy;
-
- // For HTTP(S) requests, the headers parameter can be a \r\n-delimited and
- // \r\n-terminated list of MIME headers. They should be ASCII-encoded using
- // the standard MIME header encoding rules. The headers parameter can also
- // be null if no extra request headers need to be set.
- std::string headers;
-
- // Composed of the values defined in url_request_load_flags.h.
- int load_flags;
-
- // Process id of the process making the request.
- int requestor_pid;
-
- // Indicates if the current request is the main frame load, a sub-frame
- // load, or a sub objects load.
- ResourceType::Type request_type;
-
- // Indicates the priority of this request, as determined by WebKit.
- net::RequestPriority priority;
-
- // Used for plugin to browser requests.
- uint32 request_context;
-
- // Identifies what appcache host this request is associated with.
- int appcache_host_id;
-
- // Used to associated the bridge with a frame's network context.
- int routing_id;
-
- // If true, then the response body will be downloaded to a file and the
- // path to that file will be provided in ResponseInfo::download_file_path.
- bool download_to_file;
-
- // True if the request was user initiated.
- bool has_user_gesture;
-
- // Extra data associated with this request. We do not own this pointer.
- WebKit::WebURLRequest::ExtraData* extra_data;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(RequestInfo);
- };
-
- // See the SyncLoad method declared below. (The name of this struct is not
- // suffixed with "Info" because it also contains the response data.)
- struct SyncLoadResponse : ResourceResponseInfo {
- SyncLoadResponse();
- ~SyncLoadResponse();
-
- // The response error code.
- int error_code;
-
- // The final URL of the response. This may differ from the request URL in
- // the case of a server redirect.
- GURL url;
-
- // The response data.
- std::string data;
- };
-
- // Generated by the bridge. This is implemented by our custom resource loader
- // within webkit. The Peer and it's bridge should have identical lifetimes
- // as they represent each end of a communication channel.
- //
- // These callbacks mirror net::URLRequest::Delegate and the order and
- // conditions in which they will be called are identical. See url_request.h
- // for more information.
- class Peer {
- public:
- // Called as upload progress is made.
- // note: only for requests with LOAD_ENABLE_UPLOAD_PROGRESS set
- virtual void OnUploadProgress(uint64 position, uint64 size) = 0;
-
- // Called when a redirect occurs. The implementation may return false to
- // suppress the redirect. The given ResponseInfo provides complete
- // information about the redirect, and new_url is the URL that will be
- // loaded if this method returns true. If this method returns true, the
- // output parameter *has_new_first_party_for_cookies indicates whether the
- // output parameter *new_first_party_for_cookies contains the new URL that
- // should be consulted for the third-party cookie blocking policy.
- virtual bool OnReceivedRedirect(const GURL& new_url,
- const ResourceResponseInfo& info,
- bool* has_new_first_party_for_cookies,
- GURL* new_first_party_for_cookies) = 0;
-
- // Called when response headers are available (after all redirects have
- // been followed).
- virtual void OnReceivedResponse(const ResourceResponseInfo& info) = 0;
-
- // Called when a chunk of response data is downloaded. This method may be
- // called multiple times or not at all if an error occurs. This method is
- // only called if RequestInfo::download_to_file was set to true, and in
- // that case, OnReceivedData will not be called.
- virtual void OnDownloadedData(int len) = 0;
-
- // Called when a chunk of response data is available. This method may
- // be called multiple times or not at all if an error occurs.
- // The encoded_data_length is the length of the encoded data transferred
- // over the network, which could be different from data length (e.g. for
- // gzipped content), or -1 if if unknown.
- virtual void OnReceivedData(const char* data,
- int data_length,
- int encoded_data_length) = 0;
-
- // Called when metadata generated by the renderer is retrieved from the
- // cache. This method may be called zero or one times.
- virtual void OnReceivedCachedMetadata(const char* data, int len) { }
-
- // Called when the response is complete. This method signals completion of
- // the resource load.
- virtual void OnCompletedRequest(
- int error_code,
- bool was_ignored_by_handler,
- const std::string& security_info,
- const base::TimeTicks& completion_time) = 0;
-
- protected:
- virtual ~Peer() {}
- };
-
- // use WebKitPlatformSupportImpl::CreateResourceLoader() for construction, but
- // anybody can delete at any time, INCLUDING during processing of callbacks.
- WEBKIT_GLUE_EXPORT virtual ~ResourceLoaderBridge();
-
- // Call this method before calling Start() to set the request body.
- // May only be used with HTTP(S) POST requests.
- virtual void SetRequestBody(ResourceRequestBody* request_body) = 0;
-
- // Call this method to initiate the request. If this method succeeds, then
- // the peer's methods will be called asynchronously to report various events.
- virtual bool Start(Peer* peer) = 0;
-
- // Call this method to cancel a request that is in progress. This method
- // causes the request to immediately transition into the 'done' state. The
- // OnCompletedRequest method will be called asynchronously; this assumes
- // the peer is still valid.
- virtual void Cancel() = 0;
-
- // Call this method to suspend or resume a load that is in progress. This
- // method may only be called after a successful call to the Start method.
- virtual void SetDefersLoading(bool value) = 0;
-
- // Call this method when the priority of the requested resource changes after
- // Start() has been called. This method may only be called after a successful
- // call to the Start method.
- virtual void DidChangePriority(net::RequestPriority new_priority) = 0;
-
- // Call this method to load the resource synchronously (i.e., in one shot).
- // This is an alternative to the Start method. Be warned that this method
- // will block the calling thread until the resource is fully downloaded or an
- // error occurs. It could block the calling thread for a long time, so only
- // use this if you really need it! There is also no way for the caller to
- // interrupt this method. Errors are reported via the status field of the
- // response parameter.
- virtual void SyncLoad(SyncLoadResponse* response) = 0;
-
- protected:
- // Construction must go through
- // WebKitPlatformSupportImpl::CreateResourceLoader()
- // For HTTP(S) POST requests, the AppendDataToUpload and AppendFileToUpload
- // methods may be called to construct the body of the request.
- WEBKIT_GLUE_EXPORT ResourceLoaderBridge();
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ResourceLoaderBridge);
-};
-
-} // namespace webkit_glue
-
-#endif // WEBKIT_GLUE_RESOURCE_LOADER_BRIDGE_H_
« no previous file with comments | « webkit/glue/multipart_response_delegate_unittest.cc ('k') | webkit/glue/resource_loader_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698