1// Copyright (c) 2012 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.
4
5#include "net/url_request/url_request_netlog_params.h"
6
7#include "base/strings/string_number_conversions.h"
8#include "base/values.h"
9#include "url/gurl.h"
10
11namespace net {
12
13base::Value* NetLogURLRequestStartCallback(const GURL* url,
14                                           const std::string* method,
15                                           int load_flags,
16                                           RequestPriority priority,
17                                           int64 upload_id,
18                                           NetLog::LogLevel /* log_level */) {
19  base::DictionaryValue* dict = new base::DictionaryValue();
20  dict->SetString("url", url->possibly_invalid_spec());
21  dict->SetString("method", *method);
22  dict->SetInteger("load_flags", load_flags);
23  dict->SetString("priority", RequestPriorityToString(priority));
24  if (upload_id > -1)
25    dict->SetString("upload_id", base::Int64ToString(upload_id));
26  return dict;
27}
28
29bool StartEventLoadFlagsFromEventParams(const base::Value* event_params,
30                                        int* load_flags) {
31  const base::DictionaryValue* dict;
32  if (!event_params->GetAsDictionary(&dict) ||
33      !dict->GetInteger("load_flags", load_flags)) {
34    *load_flags = 0;
35    return false;
36  }
37  return true;
38}
39
40}  // namespace net
41