@Override protected void onFirstPeerRegistered() { AsyncPrettyPrinterExecutorHolder.ensureInitialized(); if (mAsyncPrettyPrinterRegistry == null && mPrettyPrinterInitializer != null) { mAsyncPrettyPrinterRegistry = new AsyncPrettyPrinterRegistry(); mPrettyPrinterInitializer.populatePrettyPrinters(mAsyncPrettyPrinterRegistry); } mResponseBodyFileManager.cleanupFiles(); }
private static Page.ResourceType determineResourceType( AsyncPrettyPrinter asyncPrettyPrinter, String contentType, ResourceTypeHelper resourceTypeHelper) { if (asyncPrettyPrinter != null) { return asyncPrettyPrinter.getPrettifiedType().getResourceType(); } else { return contentType != null ? resourceTypeHelper.determineResourceType(contentType) : Page.ResourceType.OTHER; } }
private void reportDecodedSizeIfApplicable() { if (mDecompressedCounter != null) { long currentCount = mDecompressedCounter.getCount(); int delta = (int)(currentCount - mLastDecompressedCount); mResponseHandler.onReadDecoded(delta); mLastDecompressedCount = currentCount; } }
public StethoReporter() { mReporter = NetworkEventReporterImpl.get(); mRequestId = mReporter.nextRequestId(); }
@Nullable private static AsyncPrettyPrinter initAsyncPrettyPrinterForResponse( InspectorResponse response, NetworkPeerManager peerManager) { AsyncPrettyPrinterRegistry registry = peerManager.getAsyncPrettyPrinterRegistry(); AsyncPrettyPrinter asyncPrettyPrinter = createPrettyPrinterForResponse(response, registry); if (asyncPrettyPrinter != null) { peerManager.getResponseBodyFileManager().associateAsyncPrettyPrinterWithId( response.requestId(), asyncPrettyPrinter); } return asyncPrettyPrinter; }
@Override public void webSocketFrameReceived(InspectorWebSocketFrame frame) { NetworkPeerManager peerManager = getPeerManagerIfEnabled(); if (peerManager != null) { Network.WebSocketFrameReceivedParams params = new Network.WebSocketFrameReceivedParams(); params.requestId = frame.requestId(); params.timestamp = stethoNow() / 1000.0; params.response = convertFrame(frame); peerManager.sendNotificationToPeers("Network.webSocketFrameReceived", params); } }
public void reportDataSent() { throwIfNoBody(); mEventReporter.dataSent( mRequestId, mDeflatedOutput.size(), (int)mDeflatingOutput.getCount()); }
public void onEOF() { reportDataReceived(); mEventReporter.responseReadFinished(mRequestId); }
private void reportDataReceived() { mEventReporter.dataReceived( mRequestId, mBytesRead, mDecodedBytesRead >= 0 ? mDecodedBytesRead : mBytesRead); } }
@Override protected void onLastPeerUnregistered() { mResponseBodyFileManager.cleanupFiles(); AsyncPrettyPrinterExecutorHolder.shutdown(); } };
private synchronized int checkEOF(int n) { if (n == -1) { closeOutputStreamQuietly(); mResponseHandler.onEOF(); mEofSeen = true; } return n; }
public void onReceive(String message) { mReporter.webSocketFrameReceived(new SimpleTextInspectorWebSocketFrame(mRequestId, message)); } }
public Page.ResourceType determineResourceType(String contentType) { String mimeType = stripContentExtras(contentType); return mMimeMatcher.match(mimeType); }
public void onSend(String message) { mReporter.webSocketFrameSent(new SimpleTextInspectorWebSocketFrame(mRequestId, message)); }
/** * Handles reporting an {@link IOException}. We do this so we can centralize the logic while still * maintaining the ability of the catch clause to throw. * @param ex * @return */ private IOException handleIOException(IOException ex) { mResponseHandler.onError(ex); return ex; }
@Override public boolean isEnabled() { NetworkPeerManager peerManager = getPeerManagerIfEnabled(); return peerManager != null; }
/** * Static accessor allowing callers to easily hook into the WebKit Inspector system without * creating dependencies on the main Stetho initialization code path. */ public static synchronized NetworkEventReporter get() { if (sInstance == null) { sInstance = new NetworkEventReporterImpl(); } return sInstance; }
@Override public void dataSent( String requestId, int dataLength, int encodedDataLength) { // The inspector protocol only gives us the dataReceived event, but we can happily combine // upstream and downstream data into this to visualize the real size of the request, not // strictly the size of the "content" as reported in the UI. dataReceived(requestId, dataLength, encodedDataLength); }
public NetworkPeerManager( ResponseBodyFileManager responseBodyFileManager) { mResponseBodyFileManager = responseBodyFileManager; setListener(mTempFileCleanup); }
@Override public void webSocketFrameSent(InspectorWebSocketFrame frame) { NetworkPeerManager peerManager = getPeerManagerIfEnabled(); if (peerManager != null) { Network.WebSocketFrameSentParams params = new Network.WebSocketFrameSentParams(); params.requestId = frame.requestId(); params.timestamp = stethoNow() / 1000.0; params.response = convertFrame(frame); peerManager.sendNotificationToPeers("Network.webSocketFrameSent", params); } }