91³Ô¹ÏÍø

Watch CBS News

Philadelphia City Council gives preliminary approval to "ICE Out" legislation

The Philadelphia City Council on Monday gave preliminary approval to "ICE Out" legislation aimed at curtailing U.S. Immigration and Customs Enforcement operations in the city. The package of bills will now go to a final vote as soon as April 23.

The hearing went on for hours. Legislation before City Council would ban ICE agents from wearing face coverings, place city property off limits for ICE activity and block the Philadelphia Police Department from working with ICE agents.

"I think it's really important that they pass strong policies and that they enforce them," ICE protester Rachel Mann said. "I think that will be difficult, the enforcement part. But they need to try to do that."

City Council voted unanimously to advance the legislation. Sources say some parts of the proposed laws are on shaky legal grounds.

Councilmember Jim Harrity expects lawsuits.

"Oh, I imagine that happens," Harrity said, "but again somebody has to challenge, you know what I mean?"

Behind the scenes, police adopted a policy two weeks ago. A review of the document obtained by CBS News Philadelphia shows officers are already severely limited in interacting and cooperating with ICE agents.

Deputy Police Commissioner Fran Healy testified City Council's legislation mirrors parts of the department's existing policy.

"We support this legislation," Healy said. "The issue is, when it comes to enforcement and implementation, once this gets passed, we would actually have to consult with the law department."

City lawyers cited executive orders from 2009 and 2016, testifying they already prevent discrimination based on immigration status and the sharing of police records with ICE.

Despite potential redundancies and legal challenges, some council members say it's on them to do more.

"We can't take a cop-out and say there's nothing we can do and that we need attorneys and educators who need this training," Minority Leader Kendra Brooks of the Working Families Party said. "We are the ones going to protect us, and I think as a city we could have done better."

City Council is expected to have the first reading of the legislation later this week.

As for enforcement, if the legislation goes through as it stands right now, City Solicitor Renee Garcia said lawsuits are always possible.

In a statement, ICE said, in part, "When politicians bar local law enforcement from working with us, we must have a more visible presence so we can find and apprehend the criminals let out of jails and back into communities," and added, "The vilification of ICE must stop."

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });