[uBlock Origin 1.45.0] ! Title: Facebook Zuckestion Killer - Base ! Version: 202309071322 ! Expires: 2 days ! Author: kowith337 ! Homepage: https://github.com/kowith337/PersonalFilterListCollection/blob/master/filterlist/facebook ! Mirror: https://gitlab.com/kowith337/PersonalFilterListCollection/raw/master/filterlist/facebook/FacebookZuckestionKiller.txt ! Description: These rules below are pulled from "Thai Paranoid Block" that have some rules that I've created for hide and remove ! zuckestions, ads, related contents, also remove ability to link back to related application from Facebook, such as ! Instagram, MESSenger, even Facebook Lite. ! For anyone who noticed if this list now appear with `Base` text behind original name that never have it before, ! please see additional reason and/or descriptions in the other inclusive filters. ! Note 1: Some rules below are too long due to use an xpath, or multiple procedural chaining to make sure it won't accidentally ! remove something that really need. ! Note 2: Inspired from report on https://github.com/collinbarrett/FilterLists/issues/282 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! ! Proactive outbound tracking prevention, to prevent Facebook tracking you outside with unwanted subdomain connections and ! parameters (see #19) ! Remark: If you're seeing yellow warning page, try click the magnifier icon to expand all parameters for getting real URL! ||*&fbclid=$important,removeparam=fbclid ||*?fbclid=$important,removeparam=fbclid ||facebook.com/flx/*&h=$important,removeparam=h ||facebook.com/flx/*?h=$important,removeparam=h ||facebook.com/l.php$doc,xhr,important,domain=~TRACKING-OUTGOING_URL_REDIRECT_PHP ||l.facebook.com$doc,xhr,important,domain=~TRACKING-OUTGOING_URL_REDIRECT_DOMAIN ||l.messenger.com$doc,xhr,important,domain=~TRACKING-OUTGOING_URL_REDIRECT_DOMAIN ||lm.facebook.com$doc,xhr,important,domain=~TRACKING-OUTGOING_URL_REDIRECT_DOMAIN ||lm.messenger.com$doc,xhr,important,domain=~TRACKING-OUTGOING_URL_REDIRECT_DOMAIN ||messenger.com/l.php$doc,xhr,important,domain=~TRACKING-OUTGOING_URL_REDIRECT_PHP ! ! Page blocking ||facebook.com/gaming/browse/games/?s=SUGGESTED$important ||facebook.com/gaming/browse/games/?*&s=SUGGESTED$important ||facebook.com/gaming/browse/games/?s=SUGGESTED$doc,important,domain=~ZUCKESTED-GAMES_BROWSE_LISTS_SORTING ||facebook.com/gaming/browse/games/?*&s=SUGGESTED$doc,important,domain=~ZUCKESTED-GAMES_BROWSE_LISTS_SORTING ||facebook.com/*?_ft_=encrypted_tracking_data.*$doc,important,domain=~BLOCK-PARAMETER-ENCRYPTED-TRACKING-DATA ||facebook.com/*&_ft_=encrypted_tracking_data.*$doc,important,domain=~BLOCK-PARAMETER-ENCRYPTED-TRACKING-DATA ! ! Neutralise unwanted parameters ||facebook.com/*?_ft_=encrypted_tracking_data.*$doc,xhr ||facebook.com/*&_ft_=encrypted_tracking_data.*$doc,xhr ! Network Blocking ! to prevent sending requests to show related contents, determine user action about how users use Facebook, nasty redirect, etc. /PagesTimelineChainingPagelet$important,domain=facebook.com ||facebook.com/*/promotion_trigger_info$all,important ||facebook.com/ad_campaign/landing.php$important ||facebook.com/adnw_logging/$important ||facebook.com/ads/$all ||facebook.com/ads/ad_choices$important ||facebook.com/ads/growth$important ||facebook.com/ads/manager/ajax/check_tip_qe$important ||facebook.com/ads/manager/ajax/list_tips$important ||facebook.com/ads/manager/ajax/megaphone_story$important ||facebook.com/ads/preferences/mobile_log/$important ||facebook.com/ads/qe/$important ||facebook.com/ai.php$frame,important ||facebook.com/ajax/$beacon,important ||facebook.com/ajax/ads/$important ||facebook.com/ajax/browse/null_state.php$important ||facebook.com/ajax/haste-response/?modules=*LinkshimLogController$important ||facebook.com/ajax/haste-response/?modules=ChatImpressionLogger$important ||facebook.com/ajax/haste-response/?modules=ItunesDetector$important ||facebook.com/ajax/haste-response/?modules=PhotoSnowliftViewableWithContextMenuLogging$important ||facebook.com/ajax/haste-response/?modules=PubcontentFeedChainingController$important ||facebook.com/ajax/haste-response/?modules=ReactComposerFeedSurvey$important ||facebook.com/ajax/haste-response/?modules=ReactComposerMagicTagSurvey$important ||facebook.com/ajax/haste-response/?modules=ShareDialogMessageAudience$important ||facebook.com/ajax/haste-response/?modules=TypeaheadMetricReporter$important ||facebook.com/ajax/haste-response/?modules=UFIOrderingModeSelectorContainer$important ||facebook.com/ajax/haste-response/?modules=VideoAutoplayController$important ||facebook.com/ajax/ibl/$important ||facebook.com/ajax/mtouch_perf_page_load_timings/$important ||facebook.com/ajax/pagelet/generic.php/PagesTimelineChainingPagelet$important ||facebook.com/ajax/pagelet/generic.php/WebEgoPane$important ||facebook.com/ajax/photos/logging$important ||facebook.com/ajax/react_composer/survey?$important ||facebook.com/ajax/typeahead/record_basic_metrics.php$important ||facebook.com/ascend_mr_no$important ||facebook.com/async/social_good/$important,~xmlhttprequest ||facebook.com/async/social_good/$xmlhttprequest ||facebook.com/audience_network/$important ||facebook.com/common/referer_frame.php$important ||facebook.com/dlite/skywalker_topic$important ||facebook.com/ds/$all,~frame,inline-script ||facebook.com/ds/ad_choices$important ||facebook.com/ds/growth$important ||facebook.com/ds/manager/ajax/check_tip_qe$important ||facebook.com/ds/manager/ajax/list_tips$important ||facebook.com/ds/manager/ajax/megaphone_story$important ||facebook.com/ds/preferences/mobile_log/$important ||facebook.com/ds/qe/$important ||facebook.com/ego/$important,~xmlhttprequest ||facebook.com/ego/$xmlhttprequest ||facebook.com/ego/feed$important,~xmlhttprequest ||facebook.com/ego/feed$xmlhttprequest ||facebook.com/ego/feed/$important,~xmlhttprequest ||facebook.com/ego/feed/$xmlhttprequest ||facebook.com/feed/pivot/$important,~xmlhttprequest ||facebook.com/feed/pivot/$xmlhttprequest ||facebook.com/feed/pivot/chaining$important ||facebook.com/feed/pivot/related_articles$important ||facebook.com/feedtracking/$important ||facebook.com/friends/center/suggestions$all,important,~xmlhttprequest ||facebook.com/friends/center/suggestions$xmlhttprequest ||facebook.com/friends/center/suggestions/?ppk=*&tid=*$important ||facebook.com/goodwill/$all,important ||facebook.com/groups/*suggested*$important,~xmlhttprequest ||facebook.com/groups/*suggested*$xmlhttprequest ||facebook.com/groups/discover/logging/$important ||facebook.com/groups/membersuggestion$important,~xmlhttprequest ||facebook.com/groups/membersuggestion$xmlhttprequest ||facebook.com/impression.php$important ||facebook.com/network_ads_common$important ||facebook.com/pages/launchpoint/discover/$document ||facebook.com/pages/qe/$important ||facebook.com/perf/device$important ||facebook.com/plugins/likebox.php$important ||facebook.com/privacy/reminders/log_imp$important,~xmlhttprequest ||facebook.com/privacy/reminders/log_imp$xmlhttprequest ||facebook.com/pubcontent/$important,~xmlhttprequest ||facebook.com/pubcontent/$xmlhttprequest ||facebook.com/pubcontent/comment_chaining$important ||facebook.com/pubcontent/feed_chaining$important ||facebook.com/pubcontent/group_related_stories$important ||facebook.com/pubcontent/local_news_chaining$important ||facebook.com/pubcontent/related_share$important ||facebook.com/pubcontent/related_video$important ||facebook.com/pubcontent/suggestions$important,~xmlhttprequest ||facebook.com/pubcontent/suggestions$xmlhttprequest ||facebook.com/pymk/$important,~xmlhttprequest ||facebook.com/pymk/$~xmlhttprequest ||facebook.com/pymk/funnel_logging$important ||facebook.com/qp/action$doc,important ||facebook.com/qp/action/redirect$important ||facebook.com/related-application/$important ||facebook.com/relay/bootload/?component=AdsCMChromeRenderer$important ||facebook.com/requests/interaction_history_logging$important ||facebook.com/sem_campaigns$important ||facebook.com/sem_mpixel$important ||facebook.com/sem_pixel$important ||facebook.com/sketch_results$important ||facebook.com/suggestions$important ||facebook.com/tr?$important ||facebook.com/typeahead/search/facebar/nullstate/$important ||facebook.com/ufi/reaction/?*is_sponsored=1$important ||facebook.com/video/autoplay$important ||facebook.com/video/instream_video/rapid_feedback$important ||facebook.com/video/quality_survey$important ||facebook.com/video/tahoe/upnext/$important ||facebook.com/watch/msite/more/?*last_ad_index$important ||facebook.com/xsemc/$important ||facebook.com/xti.php$important ||facebook.net/*/xfbml.ad.js$script,important ||fbcdn.net/*?*facebook.com%2Fads%2F$important ||fbcdn.net/*?*facebook.com%2Fajax%2Fads%2F$important ||fbcdn.net/*?*facebook.com%2Fajax%2Fds%2F$important ||fbcdn.net/*?*facebook.com%2Fds%2F$important ||fbcdn.net/hads-ak-*$important ||fbcdn.net/rsrc.php/*/-PAXP-*.gif$important ! ! Unbreak some functional, e.g. If you want to manage advert prefs, you need to allow some requests to let Facebook retrieve ! information about advert prefs, and let you properly manage them without getting error or auto refresh due to cannot sent xhr ! to perform delete preference out of your account. @@||facebook.com/ads/advertiser_guidance/server_msg/$1p,xhr @@||facebook.com/ads/ajax/account_close/$xhr,1p @@||facebook.com/ads/ajax/close_account_dialog.php?$xhr,1p @@||facebook.com/ads/can_change_business_country_reason/$1p @@||facebook.com/ads/can_change_currency_timezone_reason/$1p @@||facebook.com/ads/library$all,1p @@||facebook.com/ads/library/$all,1p @@||facebook.com/ads/manage/$1p @@||facebook.com/ads/manager/$1p @@||facebook.com/ads/preferences/$1p,popup @@||facebook.com/ads/preferences/*&__m_async_page__$1p,xhr @@||facebook.com/ads/preferences/*?__m_async_page__$1p,xhr @@||facebook.com/ads/preferences/ad_report/$1p,xhr @@||facebook.com/ads/preferences/advertiser_hideall$1p @@||facebook.com/ads/preferences/edit_interests/?*action=del$1p @@||facebook.com/ads/preferences/edit_sensitive_topics$1p,xhr @@||facebook.com/ads/preferences/report$1p,xhr @@||facebook.com/ads/preferences?__m_async_page__$1p,xhr @@||facebook.com/ads/profile/advertisers$1p,xhr @@||facebook.com/ads/profile/interests$1p,xhr @@||facebook.com/ads/tax_id_collection_config/$1p @@||facebook.com/ads/viewer_permissions/$1p @@||facebook.com/ajax/groups/mall/mall_post_menu.php$1p,xhr @@||facebook.com/ajax/settings/account/advertising_email.php?$1p,xhr @@||facebook.com/ds/advertiser_guidance/server_msg/$1p,xhr @@||facebook.com/ds/ajax/account_close/$xhr,1p @@||facebook.com/ds/ajax/close_account_dialog.php?$xhr,1p @@||facebook.com/ds/can_change_business_country_reason/$1p @@||facebook.com/ds/can_change_currency_timezone_reason/$1p @@||facebook.com/ds/library$all,1p @@||facebook.com/ds/library/$all,1p @@||facebook.com/ds/manage/$1p @@||facebook.com/ds/manager/$1p @@||facebook.com/ds/preferences/$1p,popup @@||facebook.com/ds/preferences/*&__m_async_page__$1p,xhr @@||facebook.com/ds/preferences/*?__m_async_page__$1p,xhr @@||facebook.com/ds/preferences/ad_report/$1p,xhr @@||facebook.com/ds/preferences/advertiser_hideall$1p @@||facebook.com/ds/preferences/edit_interests/?*action=del$1p @@||facebook.com/ds/preferences/edit_sensitive_topics$1p,xhr @@||facebook.com/ds/preferences/report$1p,xhr @@||facebook.com/ds/preferences?__m_async_page__$1p,xhr @@||facebook.com/ds/profile/advertisers$1p,xhr @@||facebook.com/ds/profile/interests$1p,xhr @@||facebook.com/ds/tax_id_collection_config/$1p @@||facebook.com/ds/viewer_permissions/$1p @@||facebook.com/ego/feed/logging/xout/$1p,xhr @@||facebook.com/feed/options_menu$1p,xhr @@||facebook.com/friends/center/suggestions/?ppk=$1p,xhr @@||facebook.com/groups/membersuggestion/xout/$1p,xhr @@||facebook.com/groups/xout_suggested_group_followup/$1p,xhr @@||facebook.com/pubcontent/suggestions/interaction_logging/?dpr=1$1p,xhr @@||facebook.com/settings/advertising_email/$1p,xhr @@||facebook.com/share/dialog/submit/$1p,xhr ! ! [Counter] Prevent accidentally (re-)add advert prefs while you're deleting them. ! Check your advert prefs here [FB Login needed] > https://www.facebook.com/ads/preferences/edit ||facebook.com/ads/preferences/advertiser_hideall/?*undo=true$important ||facebook.com/ads/preferences/edit_interests/?action=add$important ||facebook.com/ads/preferences/edit_sensitive_topics*duration_in_days=0$important ||facebook.com/ds/preferences/advertiser_hideall/?*undo=true$important ||facebook.com/ds/preferences/edit_interests/?action=add$important ||facebook.com/ds/preferences/edit_sensitive_topics*duration_in_days=0$important ! ! Facebook Messaging Privacy Aware (is typing, seen message) ||facebook.com/*/change_read_status.php$important ||facebook.com/*/delivery_receipts.php$important ||facebook.com/*/mark_seen.php$important ||facebook.com/*/typ.php$important ||messenger.com/*/change_read_status.php$important ||messenger.com/*/delivery_receipts.php$important ||messenger.com/*/mark_seen.php$important ||messenger.com/*/typ.php$important ! ! [Super lightweight Facebook enhancement] ! It's no need to load anything that not matter to use, because `mbasic.facebook.com` can work fine without external JavaScript, ! iframe and third party resources. ! ||$inline-script,domain=mbasic.facebook.com ||$script,domain=mbasic.facebook.com ||$frame,domain=mbasic.facebook.com ||$websocket,domain=mbasic.facebook.com ! ! SOUND annoyances ! This may break sounds in messages, but I have no choice about this, because Facebook Touch site is now play some sounds when ! pick reactions (Like, Love, Haha, etc.), and found AdGuard base are whitelist `rsrc.php` from `fbcdn.net`, so I've use some ! wildcard to make sure it will not block something that not related to "M4A audio" ||fbcdn.net/rsrc.php/*.m4a$media,important,domain=m.facebook.com|mtouch.facebook.com|touch.facebook.com ! ! [Resources Replace] Instead of just blocking, then redirect to neutered resources ! Experimental for Facebook security pixels, this may break their functionality and security check. ||facebook.com/*/delivery_receipts.php$xhr,important,redirect=nooptext ||facebook.com/ads/boosted_components/fetch_ad_account_data/$xhr,important,redirect=nooptext ||facebook.com/ads/coupon/read/offer_data/$xhr,important,redirect=nooptext ||facebook.com/ads/preferences/mobile_log/$xhr,important,redirect=nooptext ||facebook.com/ascend_mr_no$xhr,important,redirect=nooptext ||facebook.com/common/referer_frame.php$frame,important,redirect=noopframe ||facebook.com/dlite/skywalker_topic$xhr,important,redirect=nooptext ||facebook.com/feed/badge/$xhr,important,redirect=nooptext ||facebook.com/feedtracking/$xhr,important,redirect=nooptext ||facebook.com/friends/center/suggestions/?ppk=*&tid=*$xhr,redirect=nooptext ||facebook.com/privacy/reminders/log_imp$xhr,important,redirect=nooptext ||facebook.com/pubcontent/suggestions/impression_logging$xhr,important,redirect=nooptext ||facebook.com/related-application/$xhr,important,redirect=nooptext ||facebook.com/security/hsts-pixel.gif$image,important,redirect=1x1.gif ||facebook.com/sem_mpixel/*$frame,important,redirect=noopframe ||facebook.com/sem_pixel/*$frame,important,redirect=noopframe ||facebook.com/sketch_results$xhr,important,redirect=nooptext ||facebook.com/ufi/typing/*/start/$xhr,important,redirect=nooptext ||facebook.com/ufi/typing/*/stop/$xhr,important,redirect=nooptext ||facebook.com/video/instream_video/rapid_feedback$xhr,important,redirect=nooptext ||facebook.com/xsemc/$xhr,important,redirect=nooptext ||facebook.com/xti.php$frame,important,redirect=noopframe ||facebook.com/xti.php$image,important,redirect=1x1.gif ||facebook.net/security/hsts-pixel.gif$image,important,redirect=1x1.gif ||fbcdn.net/hads-ak-*/*.png$image,important,redirect=2x2.png ||fbcdn.net/rsrc.php/*/-PAXP-*.gif$image,important,redirect=1x1.gif ||fbcdn.net/security/hsts-pixel.gif$image,important,redirect=1x1.gif ||fbsbx.com/security/hsts-pixel.gif$image,important,redirect=1x1.gif ||messenger.com/*/delivery_receipts.php$xhr,important,redirect=nooptext ||messenger.com/security/hsts-pixel.gif$image,important,redirect=1x1.gif ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! ! DOM Hiding - Level 1: Known DOM id and class, some wildcard of element name m.facebook.com,mbasic.facebook.com#?##bookmarkmenu table td a[href*="freebasics.com"] m.facebook.com,mbasic.facebook.com#?##m_loginbar_login_button m.facebook.com,mbasic.facebook.com#?##m_loginbar_reg_button m.facebook.com,mbasic.facebook.com#?##m_newsfeed_stream div > div[data-ft*="saved_for_later"] m.facebook.com,mbasic.facebook.com#?##root div[data-ft][data-xt*="sponsored"] m.facebook.com,mbasic.facebook.com#?##root section article[data-ft*="quick_promotion_id"] m.facebook.com,mbasic.facebook.com#?##root table > div table > a[href*="freebasics.com"] m.facebook.com,mbasic.facebook.com#?#div[id*="u_0_"][data-ft*="ego_id"] m.facebook.com,mbasic.facebook.com#?#div[role="article"] table td a[href*="/messenger-destination/cta/?"] m.facebook.com,mbasic.facebook.com#?#div[id*="unit_id"] div[class] > a[href*="/send_page_invite/"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##MNewsFeed section article[data-store*="originated_from_recommendation"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##MNewsFeed section div[data-store*="originated_from_recommendation"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##header #MBackNavBar m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##header div[data-sigil="upsell_curtain"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##mobile_video_feed_pagelet m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page_suggestions_on_liking m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root #MRoot span[data-top-of-feed-unit-type*="megaphone"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root .scrollArea[data-sigil*="friends-center-nav"] a[data-ajaxify-href*="/friends/center/suggestions/"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > a[href*="/friends/center/suggestions"][href*="empty_feed"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > div[data-store*="actor_id"] div[data-sigil*="m-promo"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div a.sub[href*="?sk=h_nor"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root[data-sigil*="context-layer-root"] article div a[href*="/ads/preferences/interest_suggestions/"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##viewport #header #mJewelNav #feed_jewel.hasCount a div span[data-sigil="count"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads #root article div[class] > [id][data-autoid] img[data-sigil="redirect_to_interest"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads .accelerate div[class] > div[class][style] div[class] > a[data-sigil="add"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads .accelerate div[class] > div[class][style] div[class] > a[href*="/ads/interest/?"][data-sigil="redirect_to_interest"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads .accelerate div[class] > div[class][style] div[class] > div[class][data-sigil="add_removed"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads .accelerate div[class] div[class][style] div[class] > a[data-sigil="redirect_to_advertiser"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads .accelerate div[class] div[class][style] div[class] > div a[href][data-sigil="add"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="0.facebook.com"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="/appcenter/165907476854626"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="/groups/"][href*="?ref=category_discover_landing"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="/lite/?"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="/people/home/"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="fb://offer"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="fb://search_voyager"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="free.facebook.com"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="freebasics.com"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="instagram.com"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="o.facebook.com"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="zero.facebook.com"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href*="/groups/"][href*="?ref=category_discover_landing"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href*="fb://offer"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href*="fb://search"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href="/appcenter/165907476854626"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href="/pages/"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.appCenterSimilarApps m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.story_body_container header > div a[href*="package=com.facebook.lite"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article._mFeedEgoSuggestionsBoatload__list m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article[data-ft*="mhpp_ego_service_type"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article[data-ft][data-xt*="sponsored"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article[data-store*="is_sponsored.1"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article[data-store*="quick_promotion_id"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article[data-xt*="is_sponsored.1"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[class*="-hardstate-groups"] #root[role="main"] div > div a[href*="discover_category_id=103418383389257"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[class*="-hardstate-groups"] #root[role="main"] div > div a[href*="discover_category_id=212609529249058"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[class*="-hardstate-groups"] #root[role="main"] div > div a[href*="discover_category_id=234383826903707"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[class*="-hardstate-groups"] #root[role="main"] div > div a[href*="discover_category_id=470739743275782"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[class*="-hardstate-groups"] #root[role="main"] div > div a[href*="discover_category_id=1801122086782345"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[data-sigil="comment"] div[class] > div[data-sigil*="m-inline-reply-compose"] div[data-sigil="m-conversation-guide"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[data-store*="mobile_page_contextual_recommendations"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[id*="composer"] div[data-sigil="m-conversation-guide"] www.facebook.com#?#div[data-pagelet="CometMarketplaceHomeContentContainer"] [data-pagelet="StreamingBrowseFeed"] [data-pagelet="BrowseFeedUpsell_0"] www.facebook.com#?#div[data-pagelet="page"] [role="navigation"] div[data-visualcompletion] a[href*="/pages/?category=top"] ! ! DOM Hiding - Level 2: contains has(-text)/upward/xpath parameter ! This need at least uBO 1.8.0+, but 1.10.0+ for multiple chaining... m.facebook.com,mbasic.facebook.com#?##friends_center_main div:has(table tr:has(td a[href*="pymk_funnel_data"])) m.facebook.com,mbasic.facebook.com#?##m_group_stories_container article:has(footer a[href*="/groups/?ref=category_discover_landing"]) m.facebook.com,mbasic.facebook.com#?##m_group_stories_container div:has(div a[href*="/findgroups/"]) m.facebook.com,mbasic.facebook.com#?##m_newsfeed_stream div div[data-ft]:has(div:has(a[href*="/qp/action/"])) m.facebook.com,mbasic.facebook.com#?##m_newsfeed_stream div[data-ft] > div a[href*="/mobile/friends/add_friend.php?"] m.facebook.com,mbasic.facebook.com#?##mobile_video_feed_pagelet div div[class]:has-text(/^Top videos/i):upward(1) m.facebook.com,mbasic.facebook.com#?##objects_container #root table td div > div:has(a[href*="/zero/toggle/enable/"]) m.facebook.com,mbasic.facebook.com#?##objects_container #root table td div > div:has(a[href*="free.facebook.com/"]) m.facebook.com,mbasic.facebook.com#?##objects_container #root table td div > div:has(a[href*="freebasics.com"]) m.facebook.com,mbasic.facebook.com#?##root #bookmarkmenu table:has(a[href*="/findfriends/browser/"]) m.facebook.com,mbasic.facebook.com#?##root div div:has(div[id*="more_item_"]:has(a[href*="/findfriends/browser/?"])) m.facebook.com,mbasic.facebook.com#?##root div table td a[href*="/collapse/"]:upward(table) m.facebook.com,mbasic.facebook.com#?##root div table[role]:has(td a[href*="%2Ffriends%2Fcenter%2Frequests%2F"]):matches-path(home.php):upward(4) m.facebook.com,mbasic.facebook.com#?##root div[data-ft]:has(a[href*="netego_suggestion"]) m.facebook.com,mbasic.facebook.com#?##root table div:has(div[id*="page_suggestion"]:has(div a[href*="&origin=mobile_page_browser&"])) m.facebook.com,mbasic.facebook.com#?##root table td > div:has-text(/^Suggested/i):has(ul li:has(table)) m.facebook.com,mbasic.facebook.com#?##sub_profile_pic_content div > div:has(table a[href*="/search/"]) m.facebook.com,mbasic.facebook.com#?##sub_profile_pic_content div > div:has(table[role]:has(td div:has-text(/^People also/i))) m.facebook.com,mbasic.facebook.com#?##sub_profile_pic_content div div[class] > :has(div[id][class] table[role="presentation"] div:has-text(/^Related/i)) m.facebook.com,mbasic.facebook.com#?##sub_profile_pic_content div[class]:has-text(/Related\s/i) m.facebook.com,mbasic.facebook.com#?##viewport #root div:has(h3):has(span a[href*="/dd/greeting/mbasic/more/tapped"]) m.facebook.com,mbasic.facebook.com#?##viewport #root div[data-ft]:has(h3:has-text(/Facebook/i)):has(a[href*="/netego/redirect/"]) m.facebook.com,mbasic.facebook.com#?##viewport #root table td div div:has(a[href*="/lite/?"]) m.facebook.com,mbasic.facebook.com#?##viewport div > div:has(a[href*="/download.php"]) m.facebook.com,mbasic.facebook.com#?##viewport div table[role="presentation"]:has(td a[href*="/qp/action/"]):upward(table) m.facebook.com,mbasic.facebook.com#?##viewport div[class] > table[role]:has(td a[href*="/a/language.php?"][href*="ref_component=mbasic_footer"]) m.facebook.com,mbasic.facebook.com#?#div[data-ft] > div > div:has(span a[href*="/boosted_post/"]) m.facebook.com,mbasic.facebook.com#?#div[data-ft] div:has(table a[href*="mbasic_feed_post_like_chaining"]) m.facebook.com,mbasic.facebook.com#?#div[data-ft] div:has(table a[href*="mbasic_feed_share_like_chaining"]) m.facebook.com,mbasic.facebook.com#?#div[data-ft]:has(a[href*="[is_sponsored]=1"]) m.facebook.com,mbasic.facebook.com#?#div[data-ft]:has(a[href*="is_sponsored=1"]) m.facebook.com,mbasic.facebook.com#?#div[data-ft]:has(div a[href*="/friends/center/"]) m.facebook.com,mbasic.facebook.com#?#div[data-ft]:has(div a[href*="/groups/?ref=category_discover_landing"]) m.facebook.com,mbasic.facebook.com#?#div[data-ft]:has(span:has-text(/Sponsored/i)) m.facebook.com,mbasic.facebook.com#?#div[data-ft]:has(table td div:has(a[href*="origin=feed_pyml"])) m.facebook.com,mbasic.facebook.com#?#div[id*="u_0_"] table:has(td a[href*="/profilepicframes/"]) m.facebook.com,mbasic.facebook.com#?#div[role="article"] div:has(table a[href*="mbasic_feed_post_like_chaining"]) m.facebook.com,mbasic.facebook.com#?#div[role="article"] div:has(table a[href*="mbasic_feed_share_like_chaining"]) m.facebook.com,mbasic.facebook.com#?#div[role="article"] table[role="presentation"]:has(td a[href*="/profilepicframes"]) m.facebook.com,mbasic.facebook.com#?#div[role="article"]:has(div a[href*="/friends/center/"]) m.facebook.com,mbasic.facebook.com#?#div[role="article"]:has(iframe[src*="/xti.php?"]) m.facebook.com,mbasic.facebook.com#?#div[role="article"]:has(span:has-text(/Sponsored/i)) m.facebook.com,mbasic.facebook.com#?#table td#mEventsDashboard #events_dashboard_activity_feed:has(a[href*="suggestion_feed_unit"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##MNewsFeed section article .story_body_container div[data-ft] div div[data-store*="share_id"] .story_body_container div[data-ft] div:has(.scrollArea:has(a[href*="/services?"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##MNewsFeed section article .story_body_container div[data-ft] div:has(.scrollArea:has(a[href*="/commerce/products/"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##MNewsFeed section article .story_body_container div[data-ft] div[data-store*="share_id"] .story_body_container div div:has(.scrollArea:has(a[href*="/commerce/products/"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##MNewsFeed section article:has(.scrollArea:has(a#pyml_infinite_scroll_loading)) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##events_dashboard_activity_feed section article:has(.scrollArea:has(.fbEventsEgoScroller)) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##group-discover-lading-column div:has(div[id*="group-discover-card-"] a[href*="/groups/?"][href*="discover_category_id=103418383389257"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##group-discover-lading-column div:has(div[id*="group-discover-card-"] a[href*="/groups/?"][href*="discover_category_id=212609529249058"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##group-discover-lading-column div:has(div[id*="group-discover-card-"] a[href*="/groups/?"][href*="discover_category_id=234383826903707"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##group-discover-lading-column div:has(div[id*="group-discover-card-"] a[href*="/groups/?"][href*="discover_category_id=470739743275782"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##group-discover-lading-column div:has(div[id*="group-discover-card-"] a[href*="/groups/?"][href*="discover_category_id=1801122086782345"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##mEventsDashboard div > div[data-store-id] > div[data-store-id]:has(div[data-nt*="NT:BOX"]):has(.scrollArea) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##mJewelRequestsFlyoutBody div div:has(div[class] div[class]:has(div[data-pymk-id])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##m_group_stories_container section article:has(.scrollArea .scrollAreaColumn[data-sigil="m-groups-pymi-item"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##m_group_stories_container section article:has(div[id*="scrollarea"] div[id*="GroupMallGYSJSuggestionCard"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##m_group_stories_container section article:has(div[id*="scrollarea"] div[id*="GroupMallPYMISuggestionCard"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##m_group_stories_container section article:has(div[id*="scrollarea"] div[id*="Suggestion"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##m_newsfeed_stream section article:has(a[href*="source=promotion_feed_story"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##messages_jewel #messages_flyout div ol[data-sigil="contents"] li:has(div.ext a[href*="no_fw=1"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##msite-pages-header-contents div[style*="transparent none repeat scroll"]:has(#popup_xout) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page #root div > div[data-store-id] > div[id*="unit_id"]:has-text(/^Related/i):has(.scrollArea) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page #root div > div[style*="bottom:"]:has(div[data-sigil="footer-launchpad-more-button"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page #root header > div > div > div:has(a[href*="/pages/launchpoint/discover/"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page article[data-sigil="pma-upsell"]:has(a[href*="com.facebook.pages.app"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page div[id*="unit_id_"]:has(.scrollArea:has(.scrollAreaColumn div[data-autoid])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page.-hardstate-local_surface #root[role="main"] > div[data-store-id] div > div[style*="flex-grow"][data-nt]:has(div[style*="flex-grow"][data-nt] > div[data-nt]:has-text(/^Popular\s/i)) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page.-hardstate-local_surface #root[role="main"] > div[data-store-id] div > div[style*="flex-grow"][data-nt]:has(div[style*="flex-grow"][data-nt] > div[data-nt]:has-text(/^Suggested\s/i)) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page[class*="-hardstate"] #pages_msite_body_contents > div[data-store-id] > div[data-store-id]:has(#page_suggestions_on_liking) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents div > div[style*="flex"][data-nt]:has(div[style*="flex"][data-nt*="CHILD"]):has(button[data-nt][data-sigil="touchable"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents div[data-store-id] > div[data-store-id] :has(div[data-store-id] > div[style*="flex-grow"] .scrollArea) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents div[data-store-id] > div[data-store-id] > div[data-nt] > div[data-nt]:has(.scrollArea):has(.scrollAreaBody[data-ad-preview]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents div[data-store-id] div[class][data-nt] > [data-nt*="FB:TEXT"]:has-text(/Friends who like/i):upward(4) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents div[data-store-id] div[data-nt] > div[aria-label="Create Page" i]:upward(7) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents:has(#page_suggestions_on_liking) div[class][data-nt] > div[data-nt*="NT:BUTTON"][aria-label="Invite Friends" i]:upward(2) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > div[class] a[href*="category_id=103418383389257"]:upward(5) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > div[class] a[href*="category_id=212609529249058"]:upward(5) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > div[class] a[href*="category_id=234383826903707"]:upward(5) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > div[class] a[href*="category_id=470739743275782"]:upward(5) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > div[class] a[href*="category_id=1801122086782345"]:upward(5) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > div[class] a[href*="groups_browse/interests"]:upward(5) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div > div[data-sigil*="m_login_upsell"]:has(.grouped a[href*="facebook.com/click.php?redir_url"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root[role="main"] div[class] div[style="text-align: center"]:has(a[data-sigil*="AppGrowthCtaButton"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root[role="main"] div[style][data-store-id] > div[style*="flex"][data-nt] div[style*="flex"][data-nt] > :has(div[aria-label="Suggested Streamers" i]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##timelineProfileTiles div > div[data-autoid]:has(a[href*="?v=fun_facts&"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads #root div[class] > div[class][id*="u_0_"] div[class]:has(div[class][data-sigil*="ad-prefs-survey"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads #root div[class] > div[class][id*="u_0_"] div[class]:has(div[class][data-sigil*="adprefssurvey"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads #root div[class] article div[id][class] div[class]:has(div[class][data-sigil*="ad-prefs-survey"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-ads #root div[class] article div[id][class] div[class]:has(div[class][data-sigil*="adprefssurvey"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-bookmarks #root[role="main"] div > a[href*="/pages/"]:has(div:has-text(/^Suggested/i)) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-gaming #root div[class][data-store-id] > div[class] > :has(a[href*="fb://gaming/"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-gaming #root div[class][data-store-id] > section:has(div[data-store-id] div[class][style*="flex-grow"] .scrollArea) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-groups #root div[class] > div div[class] > a[class][href="/groups_browse/"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-onthisday #root div[class][data-store-id] > div[class] > div a[href*="/onthisday/subscribe/?"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-pages #root .async_fan:has(.like_thumb_container) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.-hardstate-watch #root div[class] > div[id][class]:has(.story_body_container header div[class] a[href*="tracking_source.video_home"][href*="originated_from_recommendation"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a span:has-text(/Instagram/i))) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="0.freebasics.com/?ref"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="/ads/create/"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="/appcenter/165907476854626?"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="/friends/center/suggestions/"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="/lite/?"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="/marketplace/?ref=bookmarks"] div span[data-sigil="marketplace_bookmark"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=124024574287414"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=146931289068721"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=275254692598279"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=343553122467255"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=399711043500146"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=456900714360021"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=526732794016279"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=645191315628772"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=762992637108088"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=1728807357362356"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="app_id=2805739562851096"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="fb://search_voyager"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="free.facebook.com/home.php?ref"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.mSideMenu li:has(.touchable:has(a[href*="instagram.com"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.storyStream section article:has(footer:has(a[data-ajaxify-href*="/qp/action/"])) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > :has(a[href*="/groups_browse/"][href*="103418383389257"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > :has(a[href*="/groups_browse/"][href*="212609529249058"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > :has(a[href*="/groups_browse/"][href*="234383826903707"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > :has(a[href*="/groups_browse/"][href*="470739743275782"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > :has(a[href*="/groups_browse/"][href*="1801122086782345"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > :has(a[href*="/groups_browse/interests/"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > div[class]:has(div[class] a[href*="103418383389257"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > div[class]:has(div[class] a[href*="212609529249058"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > div[class]:has(div[class] a[href*="234383826903707"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > div[class]:has(div[class] a[href*="470739743275782"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#[class*="-hardstate-groups"] #root div[class] > div div[class] > div[class]:has(div[class] a[href*="1801122086782345"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article div > div[data-autoid] a[href*="/ads/interest/?"]:has(img[data-sigil="redirect_to_interest"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(.scrollArea .async_fan) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(.scrollArea div[data-sigil="ego-auto-pager"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(.scrollArea):has(.scrollAreaBody div[data-ft*="ego_id"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(a[data-uri*="[is_sponsored]=1"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(a[data-uri*="is_sponsored=1"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(a[href*="[is_sponsored]=1"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(a[href*="is_sponsored=1"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(div[data-sigil="egoScroller"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(footer a[href*="/friends/center/"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(footer a[href*="/saved/"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(footer a[href*="www.instagram.com"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article:has(span[data-sigil="pixelContainer"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[class*="-hardstate-"] #root section article:has(.story_body_container div h3 a[href*="originated_from_recommendation"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[data-sigil*="story-div"] > div[class] > div[class]:has(#popup_xout) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[data-sigil="comment"] section.touchable:has(div header h3) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#section article .story_body_container .story_body_container > div > div:has(.scrollArea .scrollAreaColumn) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#section article:has(.scrollArea):has(a[href*="instagram.com"]) www.facebook.com#?##watch_feed div[data-pagelet="MainFeed"] div[class] h2:has(span:has-text(/Top videos/i)):upward(4) www.facebook.com#?#div[aria-label="Gaming" i][role="main"] div[class] > h2[dir]:has(span[dir]>:has-text(/New for you/i)):upward(8) www.facebook.com#?#div[aria-label="Gaming" i][role="main"] div[class] > h2[dir]:has(span[dir]>:has-text(/Suggested/i)):upward(8) www.facebook.com#?#div[aria-label="Gaming" i][role="navigation"] div[class]> h2[dir]:has(span div[class]> a[href*="SUGGESTED" i]):upward(8) www.facebook.com#?#div[data-pagelet="ChatTab"] [data-testid="Keycommand_wrapper_ModalLayer"] [role="tablist"] [aria-selected][role="tab"] span[dir]:has-text(/Suggested/i):upward(1) www.facebook.com#?#div[data-pagelet="GroupFeed"] div[class] > div[aria-label="Create Room"]:has(span[dir]):upward(6) www.facebook.com#?#div[data-pagelet="RightRail"] div[class] h3[dir]:has(span[dir]:has-text(/Sponsored/i)):upward(7) www.facebook.com#?#div[data-pagelet="TahoeVideo"] div[data-instancekey] div[role="presentation"] div[class] > span[dir]:has-text(/Top videos/i):upward(3) www.facebook.com#?#div[data-pagelet="page"] div[role="main"] div[class] > [style] span[dir]:has-text(/Friends and /i):upward(3) www.facebook.com#?#div[data-pagelet="page"] div[role="main"] div[class] > [style] span[dir]:has-text(/Top fans/i):upward(3) www.facebook.com#?#div[data-pagelet="page"] div[role="main"] div[class] > a[href*="/events/"][role]:has(div[class] > div[aria-label="Interested" i]):upward(2) www.facebook.com#?#div[data-pagelet="page"] div[role="main"] div[class] > div[data-visualcompletion] div[aria-label="Invite" i]:upward(10) www.facebook.com#?#div[role="complementary"] div[data-pagelet="TahoeRightRail"] div[class] span[dir]:has-text(/Up next/i):upward(2) ! ! DOM Hiding - Level 3: Same as level 2, but include :not ! Note: some rules still results false positive, e.g. remove panel that zuckest to download 'Facebook Lite', but it also ! accidentally hide everything when viewing photo at first time of session. m.facebook.com,mbasic.facebook.com#?##viewport #root div:not([id*="MPhoto"]) > table[role] tbody:has(a[href*="/qp/action/"][href*="facebook.com%2Flite%2F"]) m.facebook.com,mbasic.facebook.com#?##viewport div:not(#objects_container) > div:has(table[role] a[href*="/qp/action/"][href*="facebook.com%2Flite%2F"]) m.facebook.com,mbasic.facebook.com#?##viewport div:not(#objects_container) > table[class] td a[href*="facebook.com/l.php?"]:has(span) m.facebook.com,mbasic.facebook.com#?##viewport div:not([id]) > table:has(td a[href*="/a/language.php?"][href*="ref_component=mbasic_footer"]) ! ! DOM Hiding - Level 4: Remove it instead! ! Note: These rules designed for modern uBO, start from 1.28.0 and onward, sorry for XUL legacy users. m.facebook.com,mbasic.facebook.com#?##friends_center_main div:has(table tr:has(td a[href*="pymk_funnel_data"])):remove() m.facebook.com,mbasic.facebook.com#?##root section article[data-ft*="quick_promotion_id"]:remove() m.facebook.com,mbasic.facebook.com#?##root table div:has(div[id*="page_suggestion"]:has(div a[href*="&origin=mobile_page_browser&"])):remove() m.facebook.com,mbasic.facebook.com#?##root table td > div:has-text(/^Suggested/i):has(ul li:has(table)):remove() m.facebook.com,mbasic.facebook.com#?##sub_profile_pic_content div[class]:has-text(/Related /i):remove() m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##header #MBackNavBar:remove() m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##header div[data-sigil="upsell_curtain"]:remove() m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##mobile_video_feed_pagelet:remove() m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##page_suggestions_on_liking:remove() m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents div[data-store-id] div[class][data-nt] > [data-nt*="FB:TEXT"]:has-text(/Friends who like/i):upward(4):remove() m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents div[data-store-id] div[data-nt] > div[aria-label="Create Page" i]:upward(7):remove() m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents:has(#page_suggestions_on_liking) div[class][data-nt] > div[data-nt*="NT:BUTTON"][aria-label="Invite Friends" i]:upward(2):remove() m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div[class][data-sigil="loggedout_mobile_cta_footer"]:upward(1):remove() www.facebook.com#?##watch_feed div[data-pagelet="MainFeed"] div[class] h2:has(span:has-text(/Top videos/i)):upward(4):remove() www.facebook.com#?#div[aria-label="Gaming" i][role="main"] div[class] > h2[dir]:has(span[dir]>:has-text(/New for you/i)):upward(8):remove() www.facebook.com#?#div[aria-label="Gaming" i][role="main"] div[class] > h2[dir]:has(span[dir]>:has-text(/Suggested/i)):upward(8):remove() www.facebook.com#?#div[aria-label="Gaming" i][role="navigation"] div[class]> h2[dir]:has(span div[class]> a[href*="SUGGESTED"]):upward(8):remove() www.facebook.com#?#div[data-pagelet="ChatTab"] [data-testid="Keycommand_wrapper_ModalLayer"] [role="tablist"] [aria-selected][role="tab"] span[dir]:has-text(/Suggested/i):upward(1):remove() www.facebook.com#?#div[data-pagelet="CometMarketplaceHomeContentContainer"] [data-pagelet="StreamingBrowseFeed"] [data-pagelet="BrowseFeedUpsell_0"]:remove() www.facebook.com#?#div[data-pagelet="RightRail"] div[class] h3[dir]:has(span[dir]:has-text(/Sponsored/i)):upward(7):remove() www.facebook.com#?#div[data-pagelet="page"] [role="navigation"] div[data-visualcompletion] a[href*="/pages/?category=top"]:remove() ! ! CSS Modification ! This may modify some element instead of hiding m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##MNewsFeed section article .story_body_container header a[href*="/mobile/android/upsell_link/"]:style(background: none whitesmoke !important; color: darkblue !important; pointer-events: none !important) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root[role="main"] div[class] a[data-sigil="AppGrowthCtaButton"]:style(pointer-events: none !important) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article #advertiserhidden div[data-sigil="ad-prefs-advertiser-section"] .scrollArea .scrollAreaBody a[data-sigil="ad-prefs-advertiser-preview-link"]:style(pointer-events: none !important) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article .story_body_container div > div a[href*="/mobile/"][href*="/upsell_link/?"]:style(background: none whitesmoke !important; color: darkblue !important; pointer-events: none !important) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article div > div[data-autoid] a[data-sigil="redirect_to_advertiser"]:style(color: red !important; text-decoration: none !important; pointer-events: none !important) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#article div > div[data-autoid] a[href*="/ads/interest/?"]:style(color: red !important; text-decoration: none !important; pointer-events: none !important) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#div[data-sigil="m-feed-voice-subtitle"] a[href*="/mobile/"][href*="/upsell_link/?"]:style(background: none whitesmoke !important; color: darkblue !important; pointer-events: none !important) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#section article .story_body_container header div > div a[href*="facebook.com/lite/?"]:style(background: none whitesmoke !important; color: darkblue !important; pointer-events: none !important) ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! ! Experimental ! This work only for specific platform, or for testing out! ! ! [Apply as root, no matter what!] ! Hide form dialog to add phone numbers (confirmed affect to any mobile site layout, no idea for desktop site breakage?) facebook.com#?##root form[action*="/phoneacqwrite"] ! ! Try apply DOM rules that share the `article` role, Facebook start to add the role name for every post items in every versions, ! even basic site. facebook.com#?#div[role="article"] div:has(div > span a[href*="/zero/optin/legal/"]) facebook.com#?#div[role="article"] div:has(table a[href*="chaining"]) facebook.com#?#div[role="article"] table td a[href*="/messenger-destination/cta/?"] facebook.com#?#div[role="article"] table[role="presentation"]:has(td a[href*="/profilepicframes"]) facebook.com#?#div[role="article"]:has(.fbEventsSuggestionItem) facebook.com#?#div[role="article"]:has(.userContentWrapper div[class] a[target][data-hovercard*="directed_target_id"]) facebook.com#?#div[role="article"]:has(div a[href*="/friends/center/"]) facebook.com#?#div[role="article"]:has(div[class] > div[style] a[href*="facebook.com/help/"]) facebook.com#?#div[role="article"]:has(div[data-ft*="ego_id"]:has(a[href*="?ref=psym_feed"])) facebook.com#?#div[role="article"]:has(iframe[src*="/xti.php?"]) facebook.com#?#div[role="article"]:has(span:has-text(/Sponsored/i)) ! ! Hide zuckestions items pane to enforce Facebook fill up their zuckestions, but in fact you see none of any zuckestions at all! m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##friends_center_main div[data-pymk-id] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?#.async_fan:has(div div a.darkTouch[href*="pages_nav_discover"]) ! ! Once you've redirect to "Free Basics" prompt page (for example https://m.facebook.com/zero/policy/optin) these rules below ! will remove the details of "Free Basics" service (description, legal link) and "Accept" button, only leave "Cancel" button to ! make sure you didn't accidentally accept the terms and apply their "Free Basics" service at all! m.facebook.com,mbasic.facebook.com#?#div[role="article"] div:has(div > span a[href*="/zero/optin/legal/"]) m.facebook.com,mbasic.facebook.com#?#form[action*="/zero/optin/write/"] input[type="submit"] m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div article div:has(span a[href*="/zero/optin/legal/"]) m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##root div article form[action*="/zero/optin/write/"] button[type="submit"] ! !#if env_mobile ! Hide some page admin pane to invite, get tips, etc. m.facebook.com,mtouch.facebook.com,touch.facebook.com#?##pages_msite_body_contents div > div[data-store*="logging_data"][data-sigil="reaction-unit-logging"]:has(div[data-nt][data-ntid] img[data-nt="NT:IMAGE"]) !#endif ! ! Backup area for backward compatibility (Only XUL Firefox + uBO Legacy), newer version (aka. Quantum) will be read as invalid! ! Also, any rules that have `$all` tag may won't read (treated as invalid) for legacy version, too! !#if env_legacy ||facebook.com/*/promotion_trigger_info/$important,~document ||facebook.com/ads/$~document ||facebook.com/ascend_mr_no$important,~document ||facebook.com/ds/$~document ||facebook.com/friends/center/suggestions$important,~doc,~xhr ||facebook.com/goodwill/$important,~document ||facebook.com/sketch_results$important,~document !#endif