The extension doesn't actually reads, writes or changes any of your data, but it needs that permission because:

  • One of the extension's features is displaying a tooltip when manually re-sizing the window. The UI for this is created by adding some HTML, CSS & JavaScript code to all the pages a user visits. In order to do that, the extension needs access to modify a page's DOM (if you're not a developer, just know that the DOM represents the internals of a page), but, if it can access everything in the DOM (the data a page contains, the forms you submit or your browsing history on that tab) it doesn't mean it actually does read it or does anything with it. It just needs to access the body of a page and append a new element to it.

  • Another reason those permissions are required is because people sometimes need to re-size the window so that the viewport is a specific size. (The viewport is the area where the page is rendered, without the borders and any other browser UI). There is no way to tell the browser to make the viewport a certain size so the extension needs to tell it to make the window the size you want the viewport to be plus the size of its borders. However, there is also no straightforward way to determine the size of the borders so the extension reads the size of the current window, then takes a screenshot of the page (it is possible to capture an screenshot of the viewport) and finally, it subtracts the size of the generated image from the size of the window and that represents the borders' size. It then adds that size to the desired size of the viewport and tells the browser to re-size the window at the resulting width & height. :) It's pretty convoluted, but until recently it was the only way to reliably read the viewport's size. So, what's that got to do with your browser's history? Well, the (internal) permission an extension has to request to be able to take a screenshot of a page is the same as before: it needs to be able to access everything related to the current tab / page and, even though it reads none of that personal info and it destroys the screenshot right after it was taken and measured, those permissions come as a package.