Files
sousa-gecko/widget/uikit/IOSBridge.mm
T

35 lines
1.1 KiB
Plaintext

/* 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/. */
#include "IOSBridge.h"
#import "mozilla/widget/GeckoViewSupport.h"
#include "mozilla/widget/EventDispatcher.h"
using namespace mozilla::widget;
/* Implementation file */
NS_IMPL_ISUPPORTS(nsIOSBridge, nsIGeckoViewEventDispatcher, nsIGeckoViewBridge)
nsIOSBridge::nsIOSBridge() {
auto dispatcher = mozilla::MakeRefPtr<mozilla::widget::EventDispatcher>();
dispatcher->Attach([GetSwiftRuntime() runtimeDispatcher]);
dispatcher->Activate();
mEventDispatcher = dispatcher;
}
NS_IMETHODIMP
nsIOSBridge::GetDispatcherByName(const char* aName,
nsIGeckoViewEventDispatcher** aResult) {
mozilla::AssertIsOnMainThread();
auto dispatcher = mozilla::MakeRefPtr<mozilla::widget::EventDispatcher>();
dispatcher->Attach([GetSwiftRuntime() dispatcherByName:aName]);
dispatcher->Activate();
dispatcher.forget(aResult);
return NS_OK;
}
nsIOSBridge::~nsIOSBridge() = default;