WebFrameLoadType should not contain multiple concepts that should be orthogonal |
|||
Issue descriptionCurrently WebFrameLoadType contains multiple concepts. Navigation type: Standard BackFoward Reload ReloadBypassingCache These types are grouped into a navigation type and are used to determine cache revalidation policy. History type: Standard ReplaceCurrentItem These two types are used to determine if current navigation need to replace current history item. Here it assumes other navigation types do not replace current history item that seems to be true. Another history type: (for commit?) Standard InitialInChildFrame InitialHistoryLoad These three types are used to determine if the current navigation is the first commit in a child frame. Here it assumes other navigation types can not be the first commit in a child frame. Probably, InitialBypassingReload is needed to complete. But can we split these three concepts into two or three set of enum classes? Now I do not have much background to decide if we could merge two history related types into one. Also, this direction would conflict with clamy's TODO in WebFrameLoadType.h. It says clamy want to use WebFrameLoadType instead of WebHistoryCommitType more widely.
,
Apr 3 2017
One clear problem is that most existing code handle only navigation related types, and doe not care for ReplaceCurrentItem, InitialInChildFrame, and InitialHistoryLoad, and it goes to fallback path, i.e. default in switch.
,
Apr 3 2017
To fix the issue crbug.com/671545 in an ideal approach, probably we need to add InitialBypassingReload or split Initial* concept to another enum class. Let me set blocking mark just in case though we would have another solution without fixing this task.
,
Apr 11 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by toyoshim@chromium.org
, Apr 3 2017