void NavigatorContentUtils::unregisterProtocolHandler(Navigator& navigator, const String& scheme, const String& url, ExceptionCode& ec) { if (!navigator.frame()) return; URL baseURL = navigator.frame()->document()->baseURL(); if (!verifyCustomHandlerURL(baseURL, url, ec)) return; if (!verifyProtocolHandlerScheme(scheme, ec)) return; NavigatorContentUtils::from(navigator.frame()->page())->client()->unregisterProtocolHandler(scheme, baseURL, URL(ParsedURLString, url)); }
void NavigatorContentUtils::unregisterProtocolHandler(Navigator* navigator, const String& scheme, const String& url, ExceptionCode& ec) { if (!navigator->frame()) return; Document* document = navigator->frame()->document(); String baseURL = document->baseURL().baseAsString(); if (!verifyCustomHandlerURL(baseURL, url, ec)) return; if (!verifyProtocolHandlerScheme(scheme, ec)) return; NavigatorContentUtils::from(navigator->frame()->page())->client()->unregisterProtocolHandler(scheme, baseURL, url); }
ExceptionOr<void> NavigatorContentUtils::registerProtocolHandler(Navigator& navigator, const String& scheme, const String& url, const String& title) { if (!navigator.frame()) return { }; URL baseURL = navigator.frame()->document()->baseURL(); if (!verifyCustomHandlerURL(baseURL, url)) return Exception { SyntaxError }; if (!verifyProtocolHandlerScheme(scheme)) return Exception { SecurityError }; NavigatorContentUtils::from(navigator.frame()->page())->client()->registerProtocolHandler(scheme, baseURL, URL({ }, url), navigator.frame()->displayStringModifiedByEncoding(title)); return { }; }
void NavigatorContentUtils::unregisterProtocolHandler(Navigator* navigator, const String& scheme, const String& url, ExceptionState& exceptionState) { if (!navigator->frame()) return; Document* document = navigator->frame()->document(); KURL baseURL = document->baseURL(); if (!verifyCustomHandlerURL(baseURL, url, exceptionState)) return; if (!verifyProtocolHandlerScheme(scheme, "unregisterProtocolHandler", exceptionState)) return; NavigatorContentUtils::from(navigator->frame()->page())->client()->unregisterProtocolHandler(scheme, baseURL, KURL(ParsedURLString, url)); }
String NavigatorContentUtils::isProtocolHandlerRegistered(Navigator& navigator, const String& scheme, const String& url, ExceptionCode& ec) { static NeverDestroyed<String> declined(ASCIILiteral("declined")); if (!navigator.frame()) return declined; URL baseURL = navigator.frame()->document()->baseURL(); if (!verifyCustomHandlerURL(baseURL, url, ec)) return declined; if (!verifyProtocolHandlerScheme(scheme, ec)) return declined; return customHandlersStateString(NavigatorContentUtils::from(navigator.frame()->page())->client()->isProtocolHandlerRegistered(scheme, baseURL, URL(ParsedURLString, url))); }
ExceptionOr<String> NavigatorContentUtils::isProtocolHandlerRegistered(Navigator& navigator, const String& scheme, const String& url) { static NeverDestroyed<String> declined(MAKE_STATIC_STRING_IMPL("declined")); if (!navigator.frame()) return String { declined }; URL baseURL = navigator.frame()->document()->baseURL(); if (!verifyCustomHandlerURL(baseURL, url)) return Exception { SyntaxError }; if (!verifyProtocolHandlerScheme(scheme)) return Exception { SecurityError }; return customHandlersStateString(NavigatorContentUtils::from(navigator.frame()->page())->client()->isProtocolHandlerRegistered(scheme, baseURL, URL({ }, url))); }
String NavigatorContentUtils::isProtocolHandlerRegistered(Navigator* navigator, const String& scheme, const String& url, ExceptionCode& ec) { DEFINE_STATIC_LOCAL(const String, declined, ("declined")); if (!navigator->frame()) return declined; Document* document = navigator->frame()->document(); String baseURL = document->baseURL().baseAsString(); if (!verifyCustomHandlerURL(baseURL, url, ec)) return declined; if (!verifyProtocolHandlerScheme(scheme, ec)) return declined; return customHandlersStateString(NavigatorContentUtils::from(navigator->frame()->page())->client()->isProtocolHandlerRegistered(scheme, baseURL, url)); }
void NavigatorContentUtils::registerProtocolHandler(Navigator* navigator, const String& scheme, const String& url, const String& title, ExceptionCode& ec) { if (!navigator->frame()) return; Document* document = navigator->frame()->document(); if (!document) return; String baseURL = document->baseURL().baseAsString(); if (!verifyCustomHandlerURL(baseURL, url, ec)) return; if (!verifyProtocolHandlerScheme(scheme, ec)) return; NavigatorContentUtils::from(navigator->frame()->page())->client()->registerProtocolHandler(scheme, baseURL, url, navigator->frame()->displayStringModifiedByEncoding(title)); }
void Navigator::registerContentHandler(const String& mimeType, const String& url, const String& title, ExceptionCode& ec) { if (!verifyProtocolHandlerMimeType(mimeType, ec)) return; if (!m_frame) return; Document* document = m_frame->document(); if (!document) return; String baseURL = document->baseURL().baseAsString(); if (!verifyCustomHandlerURL(baseURL, url, ec)) return; if (Page* page = m_frame->page()) page->chrome()->registerContentHandler(mimeType, baseURL, url, m_frame->displayStringModifiedByEncoding(title)); }