New issue
Advanced search Search tips

Issue 707715 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task

Blocking:
issue 671545



Sign in to add a comment

WebFrameLoadType should not contain multiple concepts that should be orthogonal

Project Member Reported by toyoshim@chromium.org, Apr 3 2017

Issue description

Currently 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.
 
Labels: Reload Yukari
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.
Blocking: 671545
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.

Comment 4 by kouhei@chromium.org, Apr 11 2017

Status: Assigned (was: Untriaged)

Sign in to add a comment