blob: c8d663629760b142097a51ca861ada7a815523c2 [file] [log] [blame]
import {EyeDropperChooser, EyeDropperChooserReceiver} from '/gen/third_party/blink/public/mojom/choosers/color_chooser.mojom.m.js';
class MockEyeDropperChooser {
constructor() {
this.receiver_ = new EyeDropperChooserReceiver(this);
this.interceptor_ =
new MojoInterfaceInterceptor(EyeDropperChooser.$interfaceName);
this.interceptor_.oninterfacerequest =
e => this.receiver_.$.bindHandle(e.handle);
this.interceptor_.start();
this.receiver_.onConnectionError.addListener(() => {
this.count_--;
});
this.count_ = 0;
this.shownResolvers_ = [];
}
choose() {
this.count_++;
if (this.count_ == 1) {
this.shownResolvers_.forEach(r => r());
}
return new Promise((resolve, reject) => {
// TODO(crbug.com/992297): handle value chosen.
});
}
async waitUntilShown() {
if (this.count_ > 0) {
return;
}
return new Promise(resolve => {
this.shownResolvers_.push(resolve);
});
}
}
let mockEyeDropperChooser = new MockEyeDropperChooser();
export async function waitUntilEyeDropperShown() {
return mockEyeDropperChooser.waitUntilShown();
}