DescriptionRevert 177833 "WebGL: Refactor active context management."
New assertion is triggered in debug builds running conformance/context
WebGL conformance tests. See Issue 392274.
> WebGL: Refactor active context management.
>
> This CL makes WebGL lost&retore code more succinct.
>
> 1. Deactive a context in loseContextImpl(), instead of dispatchContextLostEvent().
> Because of
> a) Prevent inconsistent state. Currently, activeContext() vector can store a lost
> context due to this, so oldestContextIndex() needs to check if active context is
> lost. Now we don't need redundant lostContext check. In addition, it does not
> make sense that active context list can store a lost context.
> b) In the same sense, only maybeRestoreContext() actives a context like loseContextImpl()
> in this CL.
>
> 2. Don't call activeContexts().remove() adhoc.
> Only deactiveContext() calls activeContexts().remove() like only activeContext()
> calls activeContexts().append().
>
> 3. Change the logic of dispatchContextLostEvent().
> Currently, when m_contextLostMode != RealLostContext, a context is added to
> forcibly evicted list, in which the context will be restored when another
> context is destructed. However, we start the restore-timer when
> the context is lost due to AutoRecoverSyntheticLostContext also. It means
> AutoRecoverSyntheticLostContext can restore twice. So this CL changes a context
> to be added into forcibly evicted list only if SyntheticLostContext.
>
> BUG=392274
>
> Review URL: https://codereview.chromium.org/251373005
TBR=dongseong.hwang@intel.com
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=177871
Patch Set 1 #
Messages
Total messages: 2 (0 generated)
|