Loading code is tightly coupled with Frame code, including the architecture for notifications / callbacks to outside Blink (via Frame -> FrameLoaderClientImpl -> WebFrameClient, or WebFrame -> WebFrameClient)
(More clarification: bunch of navigation related code is expected to go away after PlzNavigate, but we also have some plumbing for regular resource loading, which is not necessarily tied up to a frame)
These should be separated outĀ from Frame as this architecture is making various Loading, Worker related optimization (e.g. off-MT loading) and refactoring very hard, as well as making Frame refactoring hard.
Related uber bug for Frame-side cleanup: issue 691794
Comment 1 by kinuko@chromium.org
, Feb 23 2017