summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net/url_request_tracking.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/net/url_request_tracking.cc')
-rw-r--r--chrome/browser/net/url_request_tracking.cc47
1 files changed, 47 insertions, 0 deletions
diff --git a/chrome/browser/net/url_request_tracking.cc b/chrome/browser/net/url_request_tracking.cc
new file mode 100644
index 0000000..f877782
--- /dev/null
+++ b/chrome/browser/net/url_request_tracking.cc
@@ -0,0 +1,47 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/net/url_request_tracking.h"
+
+#include "base/basictypes.h"
+#include "net/url_request/url_request.h"
+
+namespace {
+
+// The value is not important, this address is used as the unique key for the
+// PID.
+const void* kOriginProcessUniqueIDKey = 0;
+
+class UniqueIDData : public URLRequest::UserData {
+ public:
+ UniqueIDData(int id) : id_(id) {}
+ virtual ~UniqueIDData() {}
+
+ int id() const { return id_; }
+ void set_id(int id) { id_ = id; }
+
+ private:
+ int id_;
+
+ DISALLOW_COPY_AND_ASSIGN(UniqueIDData);
+};
+
+} // namespace
+
+namespace chrome_browser_net {
+
+void SetOriginProcessUniqueIDForRequest(int id, URLRequest* request) {
+ // The request will take ownership.
+ request->SetUserData(&kOriginProcessUniqueIDKey, new UniqueIDData(id));
+}
+
+int GetOriginProcessUniqueIDForRequest(const URLRequest* request) {
+ const UniqueIDData* data = static_cast<const UniqueIDData*>(
+ request->GetUserData(&kOriginProcessUniqueIDKey));
+ if (!data)
+ return -1;
+ return data->id();
+}
+
+} // namespace chrome_browser_net