void SpellCheckerClientImpl::requestCheckingOfString(PassRefPtrWillBeRawPtr<TextCheckingRequest> request) { if (m_webView->spellCheckClient()) { const String& text = request->data().text(); const Vector<uint32_t>& markers = request->data().markers(); const Vector<unsigned>& markerOffsets = request->data().offsets(); m_webView->spellCheckClient()->requestCheckingOfText(text, markers, markerOffsets, new WebTextCheckingCompletionImpl(request)); } }
void SpellCheckRequester::requestCheckingFor(PassRefPtrWillBeRawPtr<SpellCheckRequest> request) { if (!request || !canCheckAsynchronously(request->paragraphRange().get())) return; ASSERT(request->data().sequence() == unrequestedTextCheckingSequence); int sequence = ++m_lastRequestSequence; if (sequence == unrequestedTextCheckingSequence) sequence = ++m_lastRequestSequence; request->setCheckerAndSequence(this, sequence); if (m_timerToProcessQueuedRequest.isActive() || m_processingRequest) { enqueueRequest(request); return; } invokeRequest(request); }
void HTMLFormElement::scheduleFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission> submission) { ASSERT(submission->method() == FormSubmission::PostMethod || submission->method() == FormSubmission::GetMethod); ASSERT(submission->data()); ASSERT(submission->form()); if (submission->action().isEmpty()) return; if (document().isSandboxed(SandboxForms)) { // FIXME: This message should be moved off the console once a solution to https://bugs.webkit.org/show_bug.cgi?id=103274 exists. document().addConsoleMessage(ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel, "Blocked form submission to '" + submission->action().elidedString() + "' because the form's frame is sandboxed and the 'allow-forms' permission is not set.")); return; } if (protocolIsJavaScript(submission->action())) { if (!document().contentSecurityPolicy()->allowFormAction(submission->action())) return; document().frame()->script().executeScriptIfJavaScriptURL(submission->action()); return; } Frame* targetFrame = document().frame()->findFrameForNavigation(submission->target(), *document().frame()); if (!targetFrame) { if (!LocalDOMWindow::allowPopUp(*document().frame()) && !UserGestureIndicator::processingUserGesture()) return; targetFrame = document().frame(); } else { submission->clearTarget(); } if (!targetFrame->host()) return; UseCounter::count(document(), UseCounter::FormsSubmitted); if (MixedContentChecker::isMixedFormAction(document().frame(), submission->action())) UseCounter::count(document().frame(), UseCounter::MixedContentFormsSubmitted); // FIXME: Plumb form submission for remote frames. if (targetFrame->isLocalFrame()) toLocalFrame(targetFrame)->navigationScheduler().scheduleFormSubmission(&document(), submission); }