✨ Jawaban Terbaik ✨
by the time~と未来完了形「~してしまっているだろう」の組み合わせはパターンなので、問題を解くだけなら覚えておけばいいと思うんですが、以下であえて理屈っぽく説明します。
問題文と選択肢見て「でっかいポップコーン食べおわるまでに映画終わる」みたいな意味だとわかります。
この文で書かれてる行動の順序を表すと ①映画終わる → ②ポップコーン食べ終わる という風に時間差があります。
時間差がある場合には、時制に差を設けて表現しなくてはなりません。
「②ポップコーンべ終わる」は現在形で書かれていますが、
by the time~の部分は「時を表す副詞節」なので、実際は未来のことなのです。
(時と条件を表す副詞節は未来のことも現在形で表す)
②の部分が未来の場合、①の部分は未来完了を使います。なので、will have endedが正解です。