static PassRefPtr<FECustomFilter> createCustomFilterEffect(Filter* filter, Document* document, CustomFilterOperation* operation) { if (!isCSSCustomFilterEnabled(document)) return 0; RefPtr<CustomFilterProgram> program = operation->program(); if (!program->isLoaded()) return 0; CustomFilterGlobalContext* globalContext = document->renderView()->customFilterGlobalContext(); globalContext->prepareContextIfNeeded(document->view()->hostWindow()); RefPtr<CustomFilterValidatedProgram> validatedProgram = globalContext->getValidatedProgram(program->programInfo()); if (!validatedProgram->isInitialized()) return 0; return FECustomFilter::create(filter, globalContext, validatedProgram, operation->parameters(), operation->meshRows(), operation->meshColumns(), operation->meshBoxType(), operation->meshType()); }