@@ -691,6 +691,44 @@ cls.RequestContextPrototype = function()
691691 }
692692 } ;
693693
694+ this . get_resource = function ( entry )
695+ {
696+ if ( ! entry )
697+ return ;
698+ entry . called_get_body = true ;
699+ if ( entry . current_response )
700+ entry . current_response . logger_entry_called_get_body = true ;
701+ var content_mode = cls . ResourceUtil . mime_to_content_mode ( entry . mime ) ;
702+ var transport_type = { "text" : 1 , "datauri" : 3 } [ content_mode ] ;
703+ var tag = window . tag_manager . set_callback ( this , this . _handle_get_resource , [ entry ] ) ;
704+ var CONTENT_MODE_STRING = 1 ;
705+ window . services [ "resource-manager" ] . requestGetResource ( tag , [ entry . resource_id ,
706+ [ transport_type , CONTENT_MODE_STRING ] ] ) ;
707+ }
708+
709+ this . _handle_get_resource = function ( status , msg , entry )
710+ {
711+ if ( ! entry . current_response )
712+ {
713+ // This means there wasn't a request, we add a "response" though because that's where that data lives.
714+ // todo: illegal access..
715+ entry . current_response = new cls . NetworkLoggerResponse ( this ) ;
716+ entry . requests_responses . push ( entry . current_response ) ;
717+ }
718+
719+ var SUCCESS = 0 ;
720+ if ( status == SUCCESS )
721+ {
722+ var data = new cls . ResourceManager [ "1.2" ] . ResourceData ( msg ) ;
723+ entry . responsebody = data ;
724+ entry . current_response . update_responsebody ( data ) ;
725+ }
726+ else
727+ {
728+ entry . get_body_unsuccessful = entry . current_response . logger_entry_get_body_unsuccessful = true ;
729+ }
730+ this . post_on_context_or_logger ( "resource-update" , { id : entry . id , is_paused : this . is_paused } ) ;
731+ } ;
694732} ;
695733
696734cls . RequestContext . prototype = new cls . RequestContextPrototype ( ) ;
@@ -722,8 +760,8 @@ cls.NetworkLoggerEntry = function(id, resource_id, document_id, window_id, conte
722760 this . error_in_current_response = false ;
723761 this . called_get_body = false ;
724762 this . get_body_unsuccessful = false ;
725- this . _current_request = null ;
726- this . _current_response = null ;
763+ this . current_request = null ;
764+ this . current_response = null ;
727765 this . _set_is_finished_on_responsefinished = false ;
728766 this . crafter_request_id = null ;
729767} ;
@@ -933,39 +971,39 @@ cls.NetworkLoggerEntryPrototype = function()
933971 this . size = event . contentLength ;
934972 this . is_finished = true ;
935973 // Responses keep duplicates of the finished state. It's only relevant on the last one.
936- if ( this . _current_response )
937- this . _current_response . logger_entry_is_finished = true ;
974+ if ( this . current_response )
975+ this . current_response . logger_entry_is_finished = true ;
938976 this . _guess_response_type ( ) ;
939977 this . _humanize_url ( ) ;
940978 } ;
941979
942980 this . _update_event_request = function ( event )
943981 {
944- this . _current_request = new cls . NetworkLoggerRequest ( this ) ;
945- this . requests_responses . push ( this . _current_request ) ;
946- this . _current_request . _update_event_request ( event ) ;
982+ this . current_request = new cls . NetworkLoggerRequest ( this ) ;
983+ this . requests_responses . push ( this . current_request ) ;
984+ this . current_request . _update_event_request ( event ) ;
947985 } ;
948986
949987 this . _update_event_requestheader = function ( event )
950988 {
951- if ( ! this . _current_request )
989+ if ( ! this . current_request )
952990 {
953991 // This means we didn't see a request before that, CORE-47076
954- this . _current_request = new cls . NetworkLoggerRequest ( this ) ;
955- this . requests_responses . push ( this . _current_request ) ;
992+ this . current_request = new cls . NetworkLoggerRequest ( this ) ;
993+ this . requests_responses . push ( this . current_request ) ;
956994 }
957- this . _current_request . _update_event_requestheader ( event ) ;
995+ this . current_request . _update_event_requestheader ( event ) ;
958996 } ;
959997
960998 this . _update_event_requestfinished = function ( event )
961999 {
962- if ( ! this . _current_request )
1000+ if ( ! this . current_request )
9631001 {
9641002 // There should always be a request by now, but keep the data anyway.
965- this . _current_request = new cls . NetworkLoggerRequest ( this ) ;
966- this . requests_responses . push ( this . _current_request ) ;
1003+ this . current_request = new cls . NetworkLoggerRequest ( this ) ;
1004+ this . requests_responses . push ( this . current_request ) ;
9671005 }
968- this . _current_request . _update_event_requestfinished ( event ) ;
1006+ this . current_request . _update_event_requestfinished ( event ) ;
9691007 } ;
9701008
9711009 this . _update_event_requestretry = function ( event )
@@ -974,37 +1012,37 @@ cls.NetworkLoggerEntryPrototype = function()
9741012
9751013 this . _update_event_response = function ( event )
9761014 {
977- if ( this . _current_request )
1015+ if ( this . current_request )
9781016 {
979- this . _current_request . was_responded_to = true ;
1017+ this . current_request . was_responded_to = true ;
9801018 }
9811019 this . current_responsecode = event . responseCode ;
9821020 this . error_in_current_response = / ^ [ 4 5 ] / . test ( this . current_responsecode ) ;
983- this . _current_response = new cls . NetworkLoggerResponse ( this ) ;
984- this . requests_responses . push ( this . _current_response ) ;
985- this . _current_response . update_event_response ( event ) ;
1021+ this . current_response = new cls . NetworkLoggerResponse ( this ) ;
1022+ this . requests_responses . push ( this . current_response ) ;
1023+ this . current_response . update_event_response ( event ) ;
9861024 } ;
9871025
9881026 this . _update_event_responseheader = function ( event )
9891027 {
9901028 // Sometimes we see no "response" event before we see responseheader,
9911029 // therefore have to init NetworkLoggerResponse here. See CORE-43935.
992- if ( ! this . _current_response )
1030+ if ( ! this . current_response )
9931031 {
994- if ( this . _current_request )
1032+ if ( this . current_request )
9951033 {
996- this . _current_request . was_responded_to = true ;
1034+ this . current_request . was_responded_to = true ;
9971035 }
998- this . _current_response = new cls . NetworkLoggerResponse ( this ) ;
999- this . requests_responses . push ( this . _current_response ) ;
1036+ this . current_response = new cls . NetworkLoggerResponse ( this ) ;
1037+ this . requests_responses . push ( this . current_response ) ;
10001038 }
1001- this . _current_response . update_event_responseheader ( event ) ;
1039+ this . current_response . update_event_responseheader ( event ) ;
10021040 } ;
10031041
10041042 this . _update_event_responsefinished = function ( event )
10051043 {
1006- if ( this . _current_response )
1007- this . _current_response . update_event_responsefinished ( event ) ;
1044+ if ( this . current_response )
1045+ this . current_response . update_event_responsefinished ( event ) ;
10081046
10091047 if ( event . data && event . data . mimeType )
10101048 this . mime = event . data && event . data . mimeType ;
@@ -1035,12 +1073,12 @@ cls.NetworkLoggerEntryPrototype = function()
10351073 else
10361074 this . type = cls . ResourceUtil . mime_to_type ( this . mime ) ;
10371075
1038- if ( this . _current_response )
1076+ if ( this . current_response )
10391077 {
10401078 // This could be only on the response. But as only the last response has body
10411079 // that would complicate it for nothing.
1042- this . _current_response . logger_entry_mime = this . mime ;
1043- this . _current_response . logger_entry_type = this . type ;
1080+ this . current_response . logger_entry_mime = this . mime ;
1081+ this . current_response . logger_entry_type = this . type ;
10441082 }
10451083 } ;
10461084
@@ -1099,58 +1137,17 @@ cls.NetworkLoggerEntryPrototype = function()
10991137 this . events . push ( evt ) ;
11001138 } ;
11011139
1102- this . check_to_get_body = function ( )
1140+ this . should_get_body = function ( )
11031141 {
1104- var should_get_body =
1142+ return (
11051143 this . is_finished &&
11061144 ! this . called_get_body &&
1107- ( ! this . _current_response || ! this . _current_response . responsebody ) &&
11081145 // When we have a response, but didn't see responsefinished, there really is no
11091146 // responsebody. Don't attempt to fetch it.
1110- ( ! this . _current_response || this . _current_response . saw_responsefinished ) ;
1111-
1112- // Todo: The exception for !saw_responsefinished is AFAIR so we don't fetch a wrong result like a
1113- // placeholder from Opera, but thee's currently no testcase for that.
1114- // We could also avoid it when this.is_unloaded, but seems there it will
1115- // just be unsuccessful and we handle that.
1116-
1117- if ( should_get_body )
1118- {
1119- // Decide if body should be fetched, for when content-tracking is off or it's a cached request.
1120- this . called_get_body = true ;
1121- if ( this . _current_response )
1122- this . _current_response . logger_entry_called_get_body = true ;
1123- var content_mode = cls . ResourceUtil . mime_to_content_mode ( this . mime ) ;
1124- var transport_type = { "text" : 1 , "datauri" : 3 } [ content_mode ] ;
1125- var tag = window . tag_manager . set_callback ( this , this . _handle_get_resource ) ;
1126- var CONTENT_MODE_STRING = 1 ;
1127- window . services [ "resource-manager" ] . requestGetResource ( tag , [ this . resource_id ,
1128- [ transport_type , CONTENT_MODE_STRING ] ] ) ;
1129- }
1130- } ;
1131-
1132- this . _handle_get_resource = function ( status , msg )
1133- {
1134- if ( ! this . _current_response )
1135- {
1136- // This means there wasn't a request, we add a "response" though because that's where that data lives.
1137- this . _current_response = new cls . NetworkLoggerResponse ( this ) ;
1138- this . requests_responses . push ( this . _current_response ) ;
1139- }
1140-
1141- var SUCCESS = 0 ;
1142- if ( status == SUCCESS )
1143- {
1144- var data = new cls . ResourceManager [ "1.2" ] . ResourceData ( msg ) ;
1145- this . responsebody = data ;
1146- this . _current_response . update_responsebody ( data ) ;
1147- }
1148- else
1149- {
1150- this . get_body_unsuccessful = this . _current_response . logger_entry_get_body_unsuccessful = true ;
1151- }
1152- // todo: The entry doesn't know the context here. Maybe handle this entirely on the context?
1153- // ctx.post_on_context_or_logger("resource-update", {id: this.id, is_paused: this.is_paused});
1147+ ( ! this . current_response || ! this . current_response . responsebody ) &&
1148+ // Don't fetch a placeholder from Opera
1149+ ( ! this . current_response || this . current_response . saw_responsefinished )
1150+ ) ;
11541151 } ;
11551152
11561153 this . __defineGetter__ ( "duration" , function ( )
@@ -1170,21 +1167,9 @@ cls.NetworkLoggerEntryPrototype = function()
11701167
11711168 this . __defineGetter__ ( "touched_network" , function ( )
11721169 {
1173- return Boolean ( this . _current_request ) ;
1170+ return Boolean ( this . current_request ) ;
11741171 } ) ;
11751172 this . __defineSetter__ ( "touched_network" , function ( ) { } ) ;
1176-
1177- this . __defineGetter__ ( "current_response" , function ( )
1178- {
1179- return this . _current_response ;
1180- } ) ;
1181- this . __defineSetter__ ( "current_response" , function ( ) { } ) ;
1182-
1183- this . __defineGetter__ ( "current_request" , function ( )
1184- {
1185- return this . _current_request ;
1186- } ) ;
1187- this . __defineSetter__ ( "current_request" , function ( ) { } ) ;
11881173} ;
11891174
11901175cls . NetworkLoggerEntryPrototype . prototype = new URIPrototype ( "url" ) ;
0 commit comments