Dactyloidae/mobile/ios/Client/Frontend/Browser/SessionRestoreHelper.swift
2026-06-26 21:04:09 -07:00

37 lines
1.2 KiB
Swift

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import Foundation
import WebKit
protocol SessionRestoreHelperDelegate: class {
func sessionRestoreHelper(_ helper: SessionRestoreHelper, didRestoreSessionForTab tab: Tab)
}
class SessionRestoreHelper: TabContentScript {
weak var delegate: SessionRestoreHelperDelegate?
fileprivate weak var tab: Tab?
required init(tab: Tab) {
self.tab = tab
}
func scriptMessageHandlerName() -> String? {
return "sessionRestoreHelper"
}
func userContentController(_ userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) {
if let tab = tab, let params = message.body as? [String: AnyObject] {
if params["name"] as! String == "didRestoreSession" {
DispatchQueue.main.async {
self.delegate?.sessionRestoreHelper(self, didRestoreSessionForTab: tab)
}
}
}
}
class func name() -> String {
return "SessionRestoreHelper"
}
}