Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / content / child / web_url_loader_impl.h
blob9d85d06a152442ba8dc600968f190d8c49ec7560
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_CHILD_WEB_URL_LOADER_IMPL_H_
6 #define CONTENT_CHILD_WEB_URL_LOADER_IMPL_H_
8 #include "base/macros.h"
9 #include "base/memory/ref_counted.h"
10 #include "content/common/content_export.h"
11 #include "content/public/common/resource_response.h"
12 #include "third_party/WebKit/public/platform/WebURLLoader.h"
13 #include "url/gurl.h"
15 namespace base {
17 class SingleThreadTaskRunner;
19 } // namespace base
21 namespace content {
23 class ResourceDispatcher;
24 struct ResourceResponseInfo;
26 // PlzNavigate: Used to override parameters of the navigation request.
27 struct StreamOverrideParameters {
28 public:
29 // TODO(clamy): The browser should be made aware on destruction of this struct
30 // that it can release its associated stream handle.
31 GURL stream_url;
32 ResourceResponseHead response;
35 class CONTENT_EXPORT WebURLLoaderImpl
36 : public NON_EXPORTED_BASE(blink::WebURLLoader) {
37 public:
38 explicit WebURLLoaderImpl(
39 ResourceDispatcher* resource_dispatcher,
40 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
41 ~WebURLLoaderImpl() override;
43 static void PopulateURLResponse(
44 const GURL& url,
45 const ResourceResponseInfo& info,
46 blink::WebURLResponse* response);
48 // WebURLLoader methods:
49 void loadSynchronously(
50 const blink::WebURLRequest& request,
51 blink::WebURLResponse& response,
52 blink::WebURLError& error,
53 blink::WebData& data) override;
54 void loadAsynchronously(
55 const blink::WebURLRequest& request,
56 blink::WebURLLoaderClient* client) override;
57 void cancel() override;
58 void setDefersLoading(bool value) override;
59 void didChangePriority(blink::WebURLRequest::Priority new_priority,
60 int intra_priority_value) override;
61 bool attachThreadedDataReceiver(
62 blink::WebThreadedDataReceiver* threaded_data_receiver) override;
64 private:
65 class Context;
66 scoped_refptr<Context> context_;
68 DISALLOW_COPY_AND_ASSIGN(WebURLLoaderImpl);
71 } // namespace content
73 #endif // CONTENT_CHILD_WEB_URL_LOADER_IMPL_H_