{"payload":{"allShortcutsEnabled":false,"fileTree":{"src/main/java/com/github/adriancitu/burp/tabnabbing/parser":{"items":[{"name":"AbstractObserver.java","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser/AbstractObserver.java","contentType":"file"},{"name":"HTMLAnchorReaderObserver.java","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser/HTMLAnchorReaderObserver.java","contentType":"file"},{"name":"HTMLResponseReader.java","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser/HTMLResponseReader.java","contentType":"file"},{"name":"IByteReader.java","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser/IByteReader.java","contentType":"file"},{"name":"IByteReaderObserver.java","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser/IByteReaderObserver.java","contentType":"file"},{"name":"JSWindowsOpenReaderObserver.java","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser/JSWindowsOpenReaderObserver.java","contentType":"file"},{"name":"TabNabbingProblem.java","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser/TabNabbingProblem.java","contentType":"file"}],"totalCount":7},"src/main/java/com/github/adriancitu/burp/tabnabbing":{"items":[{"name":"parser","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser","contentType":"directory"},{"name":"scanner","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/scanner","contentType":"directory"},{"name":"util","path":"src/main/java/com/github/adriancitu/burp/tabnabbing/util","contentType":"directory"}],"totalCount":3},"src/main/java/com/github/adriancitu/burp":{"items":[{"name":"tabnabbing","path":"src/main/java/com/github/adriancitu/burp/tabnabbing","contentType":"directory"}],"totalCount":1},"src/main/java/com/github/adriancitu":{"items":[{"name":"burp","path":"src/main/java/com/github/adriancitu/burp","contentType":"directory"}],"totalCount":1},"src/main/java/com/github":{"items":[{"name":"adriancitu","path":"src/main/java/com/github/adriancitu","contentType":"directory"}],"totalCount":1},"src/main/java/com":{"items":[{"name":"github","path":"src/main/java/com/github","contentType":"directory"}],"totalCount":1},"src/main/java":{"items":[{"name":"burp","path":"src/main/java/burp","contentType":"directory"},{"name":"com","path":"src/main/java/com","contentType":"directory"}],"totalCount":2},"src/main":{"items":[{"name":"java","path":"src/main/java","contentType":"directory"},{"name":"resources","path":"src/main/resources","contentType":"directory"}],"totalCount":2},"src":{"items":[{"name":"main","path":"src/main","contentType":"directory"},{"name":"test","path":"src/test","contentType":"directory"}],"totalCount":2},"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"burp-tabnabbing-extension.iml","path":"burp-tabnabbing-extension.iml","contentType":"file"},{"name":"pom.xml","path":"pom.xml","contentType":"file"},{"name":"tabnabbing-1.0-SNAPSHOT.jar","path":"tabnabbing-1.0-SNAPSHOT.jar","contentType":"file"}],"totalCount":9}},"fileTreeProcessingTime":40.226423999999994,"foldersToFetch":[],"repo":{"id":130120466,"defaultBranch":"master","name":"burp-tabnabbing-extension","ownerLogin":"AdrianCitu","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-04-18T20:50:35.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5496045?v=4","public":true,"private":false,"isOrgOwned":false},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1525814498.0","canEdit":false,"refType":"branch","currentOid":"224c0d7c2f989f810fe7c6d9da6449c7f024e887"},"path":"src/main/java/com/github/adriancitu/burp/tabnabbing/parser/IByteReader.java","currentUser":null,"blob":{"rawLines":["package com.github.adriancitu.burp.tabnabbing.parser;","","import java.io.Closeable;","import java.util.List;","","/**"," * Interface representing the observable/subject from the observer pattern."," * The implementations of this interface will have attach observers (a list of"," * {@link IByteReaderObserver}) and it will have to feed the observers"," * with the bytes, byte by byte by calling the"," * {@link IByteReaderObserver#handleByte(IByteReader, byte)}."," *
"," * In some cases the {@link IByteReaderObserver} will ask for more bytes from"," * the observable by calling {@link IByteReader#fetchMoreBytes(int)}."," */","public interface IByteReader extends Closeable {",""," /**"," * Called by the observers if wanted more bytes to parse."," *"," * @param howManyBytes how many more bytes the {@link IByteReader} should"," * return."," * @return the number of bytes asked or all the remaining bytes if"," * the asked bytes are more that remaining ones."," */"," public byte[] fetchMoreBytes(int howManyBytes);",""," /**"," * @param observers the observers to attach to this observable/subject"," */"," public void attachObservers(List