15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/url_request/url_request_netlog_params.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_number_conversions.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h"
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)base::Value* NetLogURLRequestStartCallback(const GURL* url,
147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                                           const std::string* method,
157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                                           int load_flags,
167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                                           RequestPriority priority,
177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                                           int64 upload_id,
187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                                           NetLog::LogLevel /* log_level */) {
197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  base::DictionaryValue* dict = new base::DictionaryValue();
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  dict->SetString("url", url->possibly_invalid_spec());
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  dict->SetString("method", *method);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  dict->SetInteger("load_flags", load_flags);
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  dict->SetString("priority", RequestPriorityToString(priority));
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (upload_id > -1)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    dict->SetString("upload_id", base::Int64ToString(upload_id));
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return dict;
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool StartEventLoadFlagsFromEventParams(const base::Value* event_params,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                        int* load_flags) {
317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  const base::DictionaryValue* dict;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!event_params->GetAsDictionary(&dict) ||
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      !dict->GetInteger("load_flags", load_flags)) {
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *load_flags = 0;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return false;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace net
41