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

Side by Side Diff: sky/shell/dart/dart_library_provider_network.cc

Issue 1237973004: Port more String and HashMap usages (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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 unified diff | Download patch
« no previous file with comments | « sky/shell/dart/dart_library_provider_network.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "sky/shell/dart/dart_library_provider_network.h" 5 #include "sky/shell/dart/dart_library_provider_network.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "sky/engine/tonic/dart_converter.h" 9 #include "sky/engine/tonic/dart_converter.h"
10 #include "url/gurl.h" 10 #include "url/gurl.h"
11 11
12 namespace sky { 12 namespace sky {
13 namespace shell { 13 namespace shell {
14 namespace { 14 namespace {
15 15
16 mojo::URLLoaderPtr Fetch(mojo::NetworkService* network_service, 16 mojo::URLLoaderPtr Fetch(mojo::NetworkService* network_service,
17 const String& url, 17 const std::string& url,
18 base::Callback<void(mojo::URLResponsePtr)> callback) { 18 base::Callback<void(mojo::URLResponsePtr)> callback) {
19 mojo::URLLoaderPtr loader; 19 mojo::URLLoaderPtr loader;
20 network_service->CreateURLLoader(GetProxy(&loader)); 20 network_service->CreateURLLoader(GetProxy(&loader));
21 21
22 mojo::URLRequestPtr request = mojo::URLRequest::New(); 22 mojo::URLRequestPtr request = mojo::URLRequest::New();
23 request->url = url.toUTF8(); 23 request->url = url;
24 request->auto_follow_redirects = true; 24 request->auto_follow_redirects = true;
25 loader->Start(request.Pass(), callback); 25 loader->Start(request.Pass(), callback);
26 26
27 return loader.Pass(); 27 return loader.Pass();
28 } 28 }
29 29
30 } // namespace 30 } // namespace
31 31
32 class DartLibraryProviderNetwork::Job { 32 class DartLibraryProviderNetwork::Job {
33 public: 33 public:
34 Job(DartLibraryProviderNetwork* provider, 34 Job(DartLibraryProviderNetwork* provider,
35 const String& name, 35 const std::string& name,
36 blink::DataPipeConsumerCallback callback) 36 blink::DataPipeConsumerCallback callback)
37 : provider_(provider), callback_(callback), weak_factory_(this) { 37 : provider_(provider), callback_(callback), weak_factory_(this) {
38 url_loader_ = 38 url_loader_ =
39 Fetch(provider_->network_service(), name, 39 Fetch(provider_->network_service(), name,
40 base::Bind(&Job::OnReceivedResponse, weak_factory_.GetWeakPtr())); 40 base::Bind(&Job::OnReceivedResponse, weak_factory_.GetWeakPtr()));
41 } 41 }
42 42
43 private: 43 private:
44 void OnReceivedResponse(mojo::URLResponsePtr response) { 44 void OnReceivedResponse(mojo::URLResponsePtr response) {
45 mojo::ScopedDataPipeConsumerHandle data; 45 mojo::ScopedDataPipeConsumerHandle data;
(...skipping 13 matching lines...) Expand all
59 59
60 DartLibraryProviderNetwork::DartLibraryProviderNetwork( 60 DartLibraryProviderNetwork::DartLibraryProviderNetwork(
61 mojo::NetworkService* network_service) 61 mojo::NetworkService* network_service)
62 : network_service_(network_service) { 62 : network_service_(network_service) {
63 } 63 }
64 64
65 DartLibraryProviderNetwork::~DartLibraryProviderNetwork() { 65 DartLibraryProviderNetwork::~DartLibraryProviderNetwork() {
66 } 66 }
67 67
68 void DartLibraryProviderNetwork::GetLibraryAsStream( 68 void DartLibraryProviderNetwork::GetLibraryAsStream(
69 const String& name, 69 const std::string& name,
70 blink::DataPipeConsumerCallback callback) { 70 blink::DataPipeConsumerCallback callback) {
71 jobs_.add(adoptPtr(new Job(this, name, callback))); 71 jobs_.add(adoptPtr(new Job(this, name, callback)));
72 } 72 }
73 73
74 Dart_Handle DartLibraryProviderNetwork::CanonicalizeURL(Dart_Handle library, 74 Dart_Handle DartLibraryProviderNetwork::CanonicalizeURL(Dart_Handle library,
75 Dart_Handle url) { 75 Dart_Handle url) {
76 std::string string = blink::StdStringFromDart(url); 76 std::string string = blink::StdStringFromDart(url);
77 if (StartsWithASCII(string, "dart:", true)) 77 if (StartsWithASCII(string, "dart:", true))
78 return url; 78 return url;
79 // TODO(abarth): The package root should be configurable. 79 // TODO(abarth): The package root should be configurable.
80 if (StartsWithASCII(string, "package:", true)) 80 if (StartsWithASCII(string, "package:", true))
81 ReplaceFirstSubstringAfterOffset(&string, 0, "package:", "/packages/"); 81 ReplaceFirstSubstringAfterOffset(&string, 0, "package:", "/packages/");
82 GURL library_url(blink::StdStringFromDart(Dart_LibraryUrl(library))); 82 GURL library_url(blink::StdStringFromDart(Dart_LibraryUrl(library)));
83 GURL resolved_url = library_url.Resolve(string); 83 GURL resolved_url = library_url.Resolve(string);
84 return blink::StdStringToDart(resolved_url.spec()); 84 return blink::StdStringToDart(resolved_url.spec());
85 } 85 }
86 86
87 } // namespace shell 87 } // namespace shell
88 } // namespace sky 88 } // namespace sky
OLDNEW
« no previous file with comments | « sky/shell/dart/dart_library_provider_network.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698