Class: ChromeDebugger::Document
- Inherits:
-
Object
- Object
- ChromeDebugger::Document
- Defined in:
- lib/chrome_debugger/document.rb
Instance Attribute Summary collapse
-
#events ⇒ Object
readonly
Returns the value of attribute events.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
-
#bytes(resource_type) ⇒ Object
The number of bytes downloaded for a particular resource type.
-
#dom_content_event ⇒ Object
The number of seconds after start_time the the DomReady event fired.
-
#encoded_bytes(resource_type) ⇒ Object
The number of bytes downloaded for a particular resource type.
-
#initialize(url) ⇒ Document
constructor
A new instance of Document.
-
#onload_event ⇒ Object
The number of seconds after start_time that the OnLoad event fired.
-
#request_count ⇒ Object
The number of network requests required to load this document.
-
#request_count_by_resource(resource_type) ⇒ Object
the number of network requests of a particular resource type that were required to load this document.
-
#start_time ⇒ Object
The seconds since epoch that the request for this document started.
Constructor Details
#initialize(url) ⇒ Document
Returns a new instance of Document.
12 13 14 15 16 |
# File 'lib/chrome_debugger/document.rb', line 12 def initialize(url) @url = url @timestamp = 0 @events = [] end |
Instance Attribute Details
#events ⇒ Object (readonly)
Returns the value of attribute events.
10 11 12 |
# File 'lib/chrome_debugger/document.rb', line 10 def events @events end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
10 11 12 |
# File 'lib/chrome_debugger/document.rb', line 10 def url @url end |
Instance Method Details
#bytes(resource_type) ⇒ Object
The number of bytes downloaded for a particular resource type. If the resource was gzipped during transfer then the uncompressed size is reported.
The HTTP headers for the response are NOT included in the byte count.
Possible resource types: ‘Document’,‘Script’, ‘Image’, ‘Stylesheet’, ‘Other’.
79 80 81 82 83 84 85 86 87 |
# File 'lib/chrome_debugger/document.rb', line 79 def bytes(resource_type) @events.select {|e| e.is_a?(ResponseReceived) && e.resource_type == resource_type }.map { |e| e.request_id }.map { |request_id| data_received_for_request(request_id) }.flatten.inject(0) { |bytes_sum, n| bytes_sum + n.data_length } end |
#dom_content_event ⇒ Object
The number of seconds after start_time the the DomReady event fired
43 44 45 46 47 48 49 50 |
# File 'lib/chrome_debugger/document.rb', line 43 def dom_content_event @dom_content_event ||= begin ts = @events.select { |event| event.is_a?(DomContentEventFired) }.slice(0,1).map(&:timestamp).first ts ? (ts - start_time).round(3) : nil end end |
#encoded_bytes(resource_type) ⇒ Object
The number of bytes downloaded for a particular resource type. If the resource was gzipped during transfer then the gzipped size is reported.
The HTTP headers for the response are included in the byte count.
Possible resource types: ‘Document’,‘Script’, ‘Image’, ‘Stylesheet’, ‘Other’.
60 61 62 63 64 65 66 67 68 |
# File 'lib/chrome_debugger/document.rb', line 60 def encoded_bytes(resource_type) @events.select {|e| e.is_a?(ResponseReceived) && e.resource_type == resource_type }.map { |e| e.request_id }.map { |request_id| data_received_for_request(request_id) }.flatten.inject(0) { |bytes_sum, n| bytes_sum + n.encoded_data_length } end |
#onload_event ⇒ Object
The number of seconds after start_time that the OnLoad event fired
32 33 34 35 36 37 38 39 |
# File 'lib/chrome_debugger/document.rb', line 32 def onload_event @onload_event ||= begin ts = @events.select { |event| event.is_a?(LoadEventFired) }.slice(0,1).map(&:timestamp).first ts ? (ts - start_time).round(3) : nil end end |
#request_count ⇒ Object
The number of network requests required to load this document
91 92 93 94 95 |
# File 'lib/chrome_debugger/document.rb', line 91 def request_count @events.select {|n| n.is_a?(ResponseReceived) }.size end |
#request_count_by_resource(resource_type) ⇒ Object
the number of network requests of a particular resource type that were required to load this document
Possible resource types: ‘Document’, ‘Script’, ‘Image’, ‘Stylesheet’, ‘Other’.
103 104 105 106 107 |
# File 'lib/chrome_debugger/document.rb', line 103 def request_count_by_resource(resource_type) @events.select {|n| n.is_a?(ResponseReceived) && n.resource_type == resource_type }.size end |
#start_time ⇒ Object
The seconds since epoch that the request for this document started
20 21 22 23 24 25 26 27 28 |
# File 'lib/chrome_debugger/document.rb', line 20 def start_time @start_time ||= @events.select { |event| event.is_a?(RequestWillBeSent) }.select { |event| event.request['url'] == @url }.map { |event| event. }.first end |