OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/renderer/loadtimes_extension_bindings.h" | 5 #include "chrome/renderer/loadtimes_extension_bindings.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 | 8 |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 #include "content/public/renderer/document_state.h" | 10 #include "content/public/renderer/document_state.h" |
11 #include "net/http/http_response_info.h" | 11 #include "net/http/http_response_info.h" |
12 #include "third_party/WebKit/public/web/WebFrame.h" | 12 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
13 #include "v8/include/v8.h" | 13 #include "v8/include/v8.h" |
14 | 14 |
15 using blink::WebDataSource; | 15 using blink::WebDataSource; |
16 using blink::WebFrame; | 16 using blink::WebLocalFrame; |
17 using blink::WebNavigationType; | 17 using blink::WebNavigationType; |
18 using content::DocumentState; | 18 using content::DocumentState; |
19 | 19 |
20 // Values for CSI "tran" property | 20 // Values for CSI "tran" property |
21 const int kTransitionLink = 0; | 21 const int kTransitionLink = 0; |
22 const int kTransitionForwardBack = 6; | 22 const int kTransitionForwardBack = 6; |
23 const int kTransitionOther = 15; | 23 const int kTransitionOther = 15; |
24 const int kTransitionReload = 16; | 24 const int kTransitionReload = 16; |
25 | 25 |
26 namespace extensions_v8 { | 26 namespace extensions_v8 { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 return kTransitionForwardBack; | 91 return kTransitionForwardBack; |
92 case blink::WebNavigationTypeReload: | 92 case blink::WebNavigationTypeReload: |
93 return kTransitionReload; | 93 return kTransitionReload; |
94 case blink::WebNavigationTypeOther: | 94 case blink::WebNavigationTypeOther: |
95 return kTransitionOther; | 95 return kTransitionOther; |
96 } | 96 } |
97 return kTransitionOther; | 97 return kTransitionOther; |
98 } | 98 } |
99 | 99 |
100 static void GetLoadTimes(const v8::FunctionCallbackInfo<v8::Value>& args) { | 100 static void GetLoadTimes(const v8::FunctionCallbackInfo<v8::Value>& args) { |
101 WebFrame* frame = WebFrame::frameForCurrentContext(); | 101 WebLocalFrame* frame = WebLocalFrame::frameForCurrentContext(); |
102 if (frame) { | 102 if (frame) { |
103 WebDataSource* data_source = frame->dataSource(); | 103 WebDataSource* data_source = frame->dataSource(); |
104 if (data_source) { | 104 if (data_source) { |
105 DocumentState* document_state = | 105 DocumentState* document_state = |
106 DocumentState::FromDataSource(data_source); | 106 DocumentState::FromDataSource(data_source); |
107 v8::Isolate* isolate = args.GetIsolate(); | 107 v8::Isolate* isolate = args.GetIsolate(); |
108 v8::Local<v8::Object> load_times = v8::Object::New(isolate); | 108 v8::Local<v8::Object> load_times = v8::Object::New(isolate); |
109 load_times->Set( | 109 load_times->Set( |
110 v8::String::NewFromUtf8(isolate, "requestTime"), | 110 v8::String::NewFromUtf8(isolate, "requestTime"), |
111 v8::Number::New(isolate, | 111 v8::Number::New(isolate, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 net::HttpResponseInfo::ConnectionInfoToString( | 160 net::HttpResponseInfo::ConnectionInfoToString( |
161 document_state->connection_info()).c_str())); | 161 document_state->connection_info()).c_str())); |
162 args.GetReturnValue().Set(load_times); | 162 args.GetReturnValue().Set(load_times); |
163 return; | 163 return; |
164 } | 164 } |
165 } | 165 } |
166 args.GetReturnValue().SetNull(); | 166 args.GetReturnValue().SetNull(); |
167 } | 167 } |
168 | 168 |
169 static void GetCSI(const v8::FunctionCallbackInfo<v8::Value>& args) { | 169 static void GetCSI(const v8::FunctionCallbackInfo<v8::Value>& args) { |
170 WebFrame* frame = WebFrame::frameForCurrentContext(); | 170 WebLocalFrame* frame = WebLocalFrame::frameForCurrentContext(); |
171 if (frame) { | 171 if (frame) { |
172 WebDataSource* data_source = frame->dataSource(); | 172 WebDataSource* data_source = frame->dataSource(); |
173 if (data_source) { | 173 if (data_source) { |
174 DocumentState* document_state = | 174 DocumentState* document_state = |
175 DocumentState::FromDataSource(data_source); | 175 DocumentState::FromDataSource(data_source); |
176 v8::Isolate* isolate = args.GetIsolate(); | 176 v8::Isolate* isolate = args.GetIsolate(); |
177 v8::Local<v8::Object> csi = v8::Object::New(isolate); | 177 v8::Local<v8::Object> csi = v8::Object::New(isolate); |
178 base::Time now = base::Time::Now(); | 178 base::Time now = base::Time::Now(); |
179 base::Time start = document_state->request_time().is_null() ? | 179 base::Time start = document_state->request_time().is_null() ? |
180 document_state->start_load_time() : | 180 document_state->start_load_time() : |
(...skipping 18 matching lines...) Expand all Loading... |
199 args.GetReturnValue().SetNull(); | 199 args.GetReturnValue().SetNull(); |
200 return; | 200 return; |
201 } | 201 } |
202 }; | 202 }; |
203 | 203 |
204 v8::Extension* LoadTimesExtension::Get() { | 204 v8::Extension* LoadTimesExtension::Get() { |
205 return new LoadTimesExtensionWrapper(); | 205 return new LoadTimesExtensionWrapper(); |
206 } | 206 } |
207 | 207 |
208 } // namespace extensions_v8 | 208 } // namespace extensions_v8 |
OLD | NEW |