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

Side by Side Diff: shell/application_manager/network_fetcher.cc

Issue 1024723002: Add some trace points to mojo_shell for app lifetime (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 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 "shell/application_manager/network_fetcher.h" 5 #include "shell/application_manager/network_fetcher.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file.h" 8 #include "base/files/file.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/process/process.h" 12 #include "base/process/process.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
15 #include "base/strings/string_util.h" 15 #include "base/strings/string_util.h"
16 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
17 #include "base/trace_event/trace_event.h"
17 #include "crypto/secure_hash.h" 18 #include "crypto/secure_hash.h"
18 #include "crypto/sha2.h" 19 #include "crypto/sha2.h"
19 #include "mojo/common/common_type_converters.h" 20 #include "mojo/common/common_type_converters.h"
20 #include "mojo/common/data_pipe_utils.h" 21 #include "mojo/common/data_pipe_utils.h"
21 #include "mojo/services/network/public/interfaces/network_service.mojom.h" 22 #include "mojo/services/network/public/interfaces/network_service.mojom.h"
22 #include "shell/application_manager/data_pipe_peek.h" 23 #include "shell/application_manager/data_pipe_peek.h"
23 24
24 namespace mojo { 25 namespace mojo {
25 namespace shell { 26 namespace shell {
26 27
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 magic == kMojoMagic; 176 magic == kMojoMagic;
176 } 177 }
177 178
178 bool NetworkFetcher::PeekFirstLine(std::string* line) { 179 bool NetworkFetcher::PeekFirstLine(std::string* line) {
179 return BlockingPeekLine(response_->body.get(), line, kMaxShebangLength, 180 return BlockingPeekLine(response_->body.get(), line, kMaxShebangLength,
180 kPeekTimeout); 181 kPeekTimeout);
181 } 182 }
182 183
183 void NetworkFetcher::StartNetworkRequest(const GURL& url, 184 void NetworkFetcher::StartNetworkRequest(const GURL& url,
184 NetworkService* network_service) { 185 NetworkService* network_service) {
186 TRACE_EVENT_ASYNC_BEGIN0("mojo_shell", "NetworkFetcher::NetworkRequest",
viettrungluu 2015/03/24 20:04:34 Maybe also record the url here?
jamesr 2015/03/27 20:42:21 Done.
187 this);
185 URLRequestPtr request(URLRequest::New()); 188 URLRequestPtr request(URLRequest::New());
186 request->url = String::From(url); 189 request->url = String::From(url);
187 request->auto_follow_redirects = false; 190 request->auto_follow_redirects = false;
188 request->bypass_cache = disable_cache_; 191 request->bypass_cache = disable_cache_;
189 192
190 network_service->CreateURLLoader(GetProxy(&url_loader_)); 193 network_service->CreateURLLoader(GetProxy(&url_loader_));
191 url_loader_->Start(request.Pass(), 194 url_loader_->Start(request.Pass(),
192 base::Bind(&NetworkFetcher::OnLoadComplete, 195 base::Bind(&NetworkFetcher::OnLoadComplete,
193 weak_ptr_factory_.GetWeakPtr())); 196 weak_ptr_factory_.GetWeakPtr()));
194 } 197 }
195 198
196 void NetworkFetcher::OnLoadComplete(URLResponsePtr response) { 199 void NetworkFetcher::OnLoadComplete(URLResponsePtr response) {
200 TRACE_EVENT_ASYNC_END0("mojo_shell", "NetworkFetcher::NetworkRequest", this);
197 if (response->error) { 201 if (response->error) {
198 LOG(ERROR) << "Error (" << response->error->code << ": " 202 LOG(ERROR) << "Error (" << response->error->code << ": "
199 << response->error->description << ") while fetching " 203 << response->error->description << ") while fetching "
200 << response->url; 204 << response->url;
201 loader_callback_.Run(make_scoped_ptr<Fetcher>(NULL)); 205 loader_callback_.Run(make_scoped_ptr<Fetcher>(NULL));
202 return; 206 return;
203 } 207 }
204 208
205 if (response->status_code >= 400 && response->status_code < 600) { 209 if (response->status_code >= 400 && response->status_code < 600) {
206 LOG(ERROR) << "Error (" << response->status_code << ": " 210 LOG(ERROR) << "Error (" << response->status_code << ": "
207 << response->status_line << "): " 211 << response->status_line << "): "
208 << "while fetching " << response->url; 212 << "while fetching " << response->url;
209 loader_callback_.Run(make_scoped_ptr<Fetcher>(NULL)); 213 loader_callback_.Run(make_scoped_ptr<Fetcher>(NULL));
210 return; 214 return;
211 } 215 }
212 216
213 response_ = response.Pass(); 217 response_ = response.Pass();
214 loader_callback_.Run(make_scoped_ptr(this)); 218 loader_callback_.Run(make_scoped_ptr(this));
215 } 219 }
216 220
217 } // namespace shell 221 } // namespace shell
218 } // namespace mojo 222 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698