vuquangnguyen2018 / DataCenter

https://vuquangnguyen2018.github.io/DataCenter/
Other
2 stars 0 forks source link

uBlock #1

Open vuquangnguyen2018 opened 5 years ago

vuquangnguyen2018 commented 5 years ago
youtube.com##.ytp-ce-element
www.youtube.com##.ytp-cards-teaser
facebook.com##.userContentWrapper :has([id^="feed_subtitle_"]:has-text(Sp))
facebook.com###substream_1:has([id^="feed_subtitle_"]:has-text(Sp))
facebook.com##body:xpath(//i[text()[contains(.,'Sponsored')]]/ancestor::div[11])
www.facebook.com##.userContentWrapper._5pcr > div:has(.r_zjlob1xpb)
www.facebook.com##.userContentWrapper._5pcr > div:has(.s_v8i43c603)
facebook.com##[id^=hyperfeed_story_id_]:has(a[href*="client_token"])
facebook.com##[id^=hyperfeed_story_id_]:has(a[href*="utm_campaign"])
facebook.com##[id^=hyperfeed_story_id_]:has([id^=u_fetchstream_2_1]:has-text(SpSonSsoSredS))
facebook.com###substream_1:has([id^="feed_subtitle_"]:has-text(Sp))
vuquangnguyen2018 commented 5 years ago
[uBlock Origin 1.17.5.7]
! Title: Facebook Zuckestion Killer
! Version: 201902280909
! Author: kowith337
! Homepage: https://github.com/kowith337/PersonalFilterListCollection/blob/master/filterlist/facebook
! Expires: 2 days
! Mirror: https://gitlab.com/kowith337/PersonalFilterListCollection/raw/master/filterlist/facebook/FacebookZuckestionKiller.txt
! Note  : 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.
! Note 2: 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 3: Inspired from report on https://github.com/collinbarrett/FilterLists/issues/282

! Proactive outbound tracking, added to prevent Facebook tracking you outside while click and open shared URL (see #19)
! Remark: If you're using uBlock0 or Nano, try click the magnifier icon to expand all parameters for getting real URL
||*&fbclid=$document,popunder,popup,xmlhttprequest,important
||*?fbclid=$document,popunder,popup,xmlhttprequest,important
||l.facebook.com$document,popunder,popup,xmlhttprequest,important
||lm.facebook.com$document,popunder,popup,xmlhttprequest,important

! Network Blocking
! to prevent sending requests to show related contents, determine user action about how users use Facebook, nasty redirect,...
/PagesTimelineChainingPagelet$important,domain=facebook.com
/qp/action/redirect$important,domain=facebook.com
||facebook.com/*/promotion_trigger_info/$important,~document
||facebook.com/adnw_logging/$important
||facebook.com/ads/$~document
||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$subdocument,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/async/social_good/$xmlhttprequest
||facebook.com/audience_network/$important
||facebook.com/common/referer_frame.php$frame
||facebook.com/common/referer_frame.php$inline-script
||facebook.com/common/referer_frame.php$subdocument
||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$important,~document,~xmlhttprequest
||facebook.com/friends/center/suggestions$xmlhttprequest
||facebook.com/goodwill/^$important,~document
||facebook.com/groups/*suggested*$important,~xmlhttprequest
||facebook.com/groups/*suggested*$xmlhttprequest
||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/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/funnel_logging$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_pixel$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/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/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/$first-party,xmlhttprequest
@@||facebook.com/ads/ajax/account_close/?$xmlhttprequest,first-party
@@||facebook.com/ads/ajax/close_account_dialog.php?$xmlhttprequest,first-party
@@||facebook.com/ads/can_change_business_country_reason/?$first-party
@@||facebook.com/ads/can_change_currency_timezone_reason/?$first-party
@@||facebook.com/ads/manage/$first-party
@@||facebook.com/ads/manager/$first-party
@@||facebook.com/ads/preferences/*/*&__m_async_page__$first-party,xmlhttprequest
@@||facebook.com/ads/preferences/*/?__m_async_page__$first-party,xmlhttprequest
@@||facebook.com/ads/preferences/ad_report/$first-party,xmlhttprequest
@@||facebook.com/ads/preferences/advertiser_hideall$first-party
@@||facebook.com/ads/preferences/edit_interests/?*action=del$first-party
@@||facebook.com/ads/preferences/edit_sensitive_topics$first-party,xmlhttprequest
@@||facebook.com/ads/preferences/report$first-party,xmlhttprequest
@@||facebook.com/ads/preferences?__m_async_page__$first-party,xmlhttprequest
@@||facebook.com/ads/profile/advertisers$first-party,xmlhttprequest
@@||facebook.com/ads/profile/interests$first-party,xmlhttprequest
@@||facebook.com/ads/tax_id_collection_config/?$first-party
@@||facebook.com/ads/viewer_permissions/?$first-party
@@||facebook.com/ajax/groups/mall/mall_post_menu.php$first-party,xmlhttprequest
@@||facebook.com/ajax/settings/account/advertising_email.php?$first-party,xmlhttprequest
@@||facebook.com/ego/feed/logging/xout/?$first-party,xmlhttprequest
@@||facebook.com/feed/options_menu$first-party,xmlhttprequest
@@||facebook.com/friends/center/suggestions/?ppk$first-party,xmlhttprequest
@@||facebook.com/groups/membersuggestion/xout/$first-party,xmlhttprequest
@@||facebook.com/groups/xout_suggested_group_followup/?$first-party,xmlhttprequest
@@||facebook.com/pubcontent/suggestions/interaction_logging/?dpr=1$first-party,xmlhttprequest
@@||facebook.com/settings/advertising_email/$first-party,xmlhttprequest
@@||facebook.com/share/dialog/submit/$first-party,xmlhttprequest

! [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 Messaging Privacy Aware (is typing, seen message)
||facebook.com/*/change_read_status.php$important
||facebook.com/*/mark_seen.php$important
||facebook.com/*/typ.php$important
||messenger.com/*/change_read_status.php$important
||messenger.com/*/mark_seen.php$important
||messenger.com/*/typ.php$important

! Give the warning if you're using Facebook on some cellular data provider that can redirect to smartphone-focused site,
! not an actual version of it!
! e.g. when you want to go 'mbasic.faecbook.com' for super lightweight Facebook mobile version, but you get redirected to
! 'm.facebook.com' or 'mobile.facebook.com' then show the suggestion page to use Facebook under "Free Basics" campaign,
! Note: I don't know why it redirected to "h.facebook.com" under non-HTTPS? first before bouncing back to "m.facebook.com"
! or "mobile.facebook.com" ? so, I will blocking it!
! Update: I will keep blocking this, no matter what, when and why...
! Note: Sometime you're able to still use 'm.facebook.com' or 'touch.facebook.com' on mobile data,
!       but it still make xhr to 'mobile.facebook.com', so it's good to block that!
! Furthermore: I HATE FreakBasics by Facebook, internet.org also...
||0.facebook.com$important
||edge-z-*.facebook.com$important
||edge-z-*.facebook.net$important
||edge-z-*.fbcdn.net$important
||facebook.com/zero/policy$document,important
||free.facebook.com$important
||freebasics.com$important
||h.facebook.com$important
||internet.org$important
||mobile.facebook.com$important
||o.facebook.com$important
||web.facebook.com$document,important
||z-m-*.facebook.com$important
||z-m-*.facebook.net$important
||z-m-*.fbcdn.net$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 JavaScript,
! Inline script, iframe and third party resources.
||$inline-script,domain=mbasic.facebook.com
||$script,domain=mbasic.facebook.com
||$subdocument,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|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/ads/boosted_components/fetch_ad_account_data/?$xmlhttprequest,important,redirect=nooptext
||facebook.com/ads/coupon/read/offer_data/?$xmlhttprequest,important,redirect=nooptext
||facebook.com/ads/preferences/mobile_log/?$xmlhttprequest,important,redirect=nooptext
||facebook.com/common/referer_frame.php$subdocument,important,redirect=noopframe
||facebook.com/feed/badge/$xmlhttprequest,important,redirect=nooptext
||facebook.com/feedtracking/$xmlhttprequest,important,redirect=nooptext
||facebook.com/related-application/?$xmlhttprequest,important,redirect=nooptext
||facebook.com/security/hsts-pixel.gif$image,important,redirect=1x1-transparent.gif
||facebook.com/sem_pixel/1/control/0/$subdocument,important,redirect=noopframe
||facebook.com/sem_pixel/1/control/1/$subdocument,important,redirect=noopframe
||facebook.com/sem_pixel/1/test/0/$subdocument,important,redirect=noopframe
||facebook.com/sem_pixel/1/test/1/$subdocument,important,redirect=noopframe
||facebook.com/ufi/typing/*/start/?$xmlhttprequest,important,redirect=nooptext
||facebook.com/ufi/typing/*/stop/?$xmlhttprequest,important,redirect=nooptext
||facebook.com/video/instream_video/rapid_feedback$xmlhttprequest,important,redirect=nooptext
||facebook.com/xti.php$image,important,redirect=1x1-transparent.gif
||facebook.com/xti.php$subdocument,important,redirect=noopframe
||facebook.net/security/hsts-pixel.gif$image,important,redirect=1x1-transparent.gif
||fbcdn.net/hads-ak-*/*.png$image,important,redirect=2x2-transparent.png
||fbcdn.net/rsrc.php/*/-PAXP-*.gif$image,important,redirect=1x1-transparent.gif
||fbcdn.net/security/hsts-pixel.gif$image,important,redirect=1x1-transparent.gif
||fbsbx.com/security/hsts-pixel.gif$image,important,redirect=1x1-transparent.gif
||messenger.com/security/hsts-pixel.gif$image,important,redirect=1x1-transparent.gif

! DOM Hiding - Level 1: Known DOM id and class, some wildcard of element name
! facebook.com###GroupDiscoverCard_more_suggestions
! facebook.com###GroupDiscoverCard_top_suggestions
facebook.com###GroupDiscoverCard_Local
facebook.com###GroupsRHCSuggestionSection
facebook.com###fbpage_invite_audience_action
facebook.com###fbpage_invite_audience_action_finch
facebook.com###feed_optimistic_video
facebook.com###friend_invites_section
facebook.com###home_sponsor_nile
facebook.com###left_nav_section_nodes ul li[id="navItem_124024574287414"]
facebook.com###left_nav_section_nodes ul li[id="navItem_275254692598279"]
facebook.com###left_nav_section_nodes ul li[id="navItem_343553122467255"]
facebook.com###left_nav_section_nodes ul li[id="navItem_399711043500146"]
facebook.com###left_nav_section_nodes ul li[id="navItem_456900714360021"]
facebook.com###left_nav_section_nodes ul li[id="navItem_526732794016279"]
facebook.com###left_nav_section_nodes ul li[id="navItem_645191315628772"]
facebook.com###left_nav_section_nodes ul li[id="navItem_762992637108088"]
facebook.com###left_nav_section_nodes ul li[id="navItem_1728807357362356"]
facebook.com###marketplace_bsg_explore_div #sale_groups_landing_page_recommended_groups div[id^="group_browse"] div[id^="GroupSuggestionCard"]
facebook.com###mobile_login_bar
facebook.com###pageInviteNoticeCard
facebook.com###page_recommendations #recommendations_create_entrypoint_container
facebook.com###page_suggestions_on_liking
facebook.com###pagelet_ads_when_no_friend_list_suggestion
facebook.com###pagelet_advertiser_panel
facebook.com###pagelet_ego_pane
facebook.com###pagelet_explore_feed div[role="article"] .fbUserStory span.uiLikePageButton
facebook.com###pagelet_games_rhc
facebook.com###pagelet_group_mall div[id^="group_mall"] div[id^="mall_post"][id*="SUGGESTED_IN_MALL"]
facebook.com###pagelet_main_column_personal #fbSuggestionsPlaceHolder
facebook.com###pagesTimelineChainingUnit
facebook.com###pages_may_like_section
facebook.com###pages_side_column div > div[id^="PageRelatedPagesSecondaryPagelet"]
facebook.com###pages_side_column div a[href*="/friend_inviter_v2/"]
facebook.com###permalink_related_videos_logged_out
facebook.com###video_permalink_related_pagelet
facebook.com##.fbAdUnit
facebook.com##.fbEmu
facebook.com##.fbEmuBlock
facebook.com##.fbEmuComboList
facebook.com##.fbEmuEgo
facebook.com##.fbEmuEgoUnit
facebook.com##.fbEmuLink
facebook.com##.fbEmuTracking
facebook.com##.fbPhotoAdsCol
facebook.com##.fbTimelineSideAds
facebook.com##.fb_content[role=main] div > div[seealluri^="/gaming/?section_id"][seealluri*="view=streamer"]
facebook.com##.home_right_column .pagelet[id^="pagelet_marketplace"]
facebook.com##div[id^="GroupDiscoverCard"] li[id^="GroupDiscoverCard_"] div > a[id^="joinButton"]
facebook.com##div[id^="GroupDiscoverCard_Local"]
facebook.com##div[id^="GroupDiscoverCard_Recent"]
facebook.com##div[id^="GroupDiscoverCard_Suggested"]
facebook.com##div[id^="pagelet_group"] form[action*="nux_type=create_page"]
facebook.com##div[id^="pagelet_group"] form[action*="nux_type=member_suggesting_tags"]
facebook.com##div[id^="pagelet_recommendation"]
facebook.com##div[id^="sponsoredTickerStory"]
facebook.com##div[role="feed"] .fbUserContent .FriendButton
facebook.com##div[role="feed"] .fbUserContent .mtm .FriendButton
facebook.com##div[role="feed"] .fbUserContent .mtm span a[ajaxify^="/ajax/follow/"]
facebook.com##div[role="feed"] .fbUserContent .mtm span[class*="uiLikePageButton"]
facebook.com##div[role="feed"] .fbUserContent .mtm span[class*="uiPageLikeButton"]
facebook.com##div[role="feed"] .fbUserContent a[ajaxify^="/ajax/follow/"]
facebook.com##div[role="feed"] .fbUserContent span a[ajaxify^="/ajax/follow/"]
facebook.com##div[role="feed"] .fbUserContent span[class*="uiLikePageButton"]
facebook.com##div[role="feed"] .fbUserContent span[class*="uiPageLikeButton"]
facebook.com##div[role="feed"] div[id^="hyperfeed_story_id"] .mtm .FriendButton
facebook.com##div[role="feed"] div[id^="hyperfeed_story_id"] .mtm span a[ajaxify^="/ajax/follow/"]
facebook.com##div[role="feed"] div[id^="hyperfeed_story_id"] .mtm span[class*="uiLikePageButton"]
facebook.com##div[role="feed"] div[id^="hyperfeed_story_id"] .mtm span[class*="uiPageLikeButton"]
facebook.com##div[role="navigation"] > div a[href^="/groups/?"][href*="discover_category_id=212609529249058"]
facebook.com##div[role="navigation"] > div a[href^="/groups/?"][href*="discover_category_id=234383826903707"]
facebook.com##div[role="navigation"] > div a[href^="/groups/?"][href*="discover_category_id=470739743275782"]
facebook.com##div[role="navigation"] > div a[href^="/groups/?"][href*="discover_category_id=1801122086782345"]
facebook.com##iframe[id^="fbsbx-sig-iframe-"]
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 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##root div[data-ft][data-xt*="sponsored"]
m.facebook.com,touch.facebook.com###header #MBackNavBar
m.facebook.com,touch.facebook.com###root .scrollArea[data-sigil*="friends-center-nav"] a[data-ajaxify-href*="/friends/center/suggestions/"]
m.facebook.com,touch.facebook.com###root div > div[data-store*="actor_id"] div[data-sigil^="m-promo"]
m.facebook.com,touch.facebook.com###root[data-sigil*="context-layer-root"] article div a[href*="/ads/preferences/interest_suggestions/"]
m.facebook.com,touch.facebook.com###viewport #header #mJewelNav #feed_jewel.hasCount a div span[data-sigil="count"]
m.facebook.com,touch.facebook.com##.-hardstate-ads .accelerate div[class] > div[class][style] div[class] > a[data-sigil="add"]
m.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,touch.facebook.com##.-hardstate-ads .accelerate div[class] > div[class][style] div[class] > div[class][data-sigil="add_removed"]
m.facebook.com,touch.facebook.com##.-hardstate-ads .accelerate div[class] div[class][style] div[class] > a[data-sigil="redirect_to_advertiser"]
m.facebook.com,touch.facebook.com##.-hardstate-ads .accelerate div[class] div[class][style] div[class] > div a[href][data-sigil="add"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href*="0.facebook.com"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href*="free.facebook.com"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href*="freebasics.com"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href*="instagram.com"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href*="o.facebook.com"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href*="zero.facebook.com"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href^="/appcenter/165907476854626"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href^="/lite/?"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href^="/people/home/"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href^="fb://offer"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href^="fb://search_voyager"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href="/appcenter/165907476854626"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href="/pages/"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href^="fb://offer"]
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #rootcontainer #root[role="main"] div[class] ul > li a[href^="fb://search"]
m.facebook.com,touch.facebook.com##.-hardstate-groups #root[role="main"] div > div a[href^="/groups/?"][href*="discover_category_id=212609529249058"]
m.facebook.com,touch.facebook.com##.-hardstate-groups #root[role="main"] div > div a[href^="/groups/?"][href*="discover_category_id=234383826903707"]
m.facebook.com,touch.facebook.com##.-hardstate-groups #root[role="main"] div > div a[href^="/groups/?"][href*="discover_category_id=470739743275782"]
m.facebook.com,touch.facebook.com##.-hardstate-groups #root[role="main"] div > div a[href^="/groups/?"][href*="discover_category_id=1801122086782345"]
m.facebook.com,touch.facebook.com##.appCenterSimilarApps
m.facebook.com,touch.facebook.com##.story_body_container header > div a[href*="package=com.facebook.lite"]
m.facebook.com,touch.facebook.com##article._mFeedEgoSuggestionsBoatload__list
m.facebook.com,touch.facebook.com##article[data-ft*="mhpp_ego_service_type"]
m.facebook.com,touch.facebook.com##article[data-ft][data-xt*="sponsored"]
m.facebook.com,touch.facebook.com##article[data-store*="is_sponsored.1"]
m.facebook.com,touch.facebook.com##article[data-store*="quick_promotion_id"]
m.facebook.com,touch.facebook.com##article[data-xt*="is_sponsored.1"]
m.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,touch.facebook.com##div[data-store*="mobile_page_contextual_recommendations"]
m.facebook.com,touch.facebook.com##div[id^="composer"] div[data-sigil="m-conversation-guide"]

! DOM Hiding - Level 2: contains has(-text)/xpath parameter
! This need at least uBO 1.8.0+, but 1.10.0+ for multiple chaining...
facebook.com##div[id^="hyperfeed_story_id"][role="article"]:has(div[class] > div[style] a[href^="https://web.facebook.com/help/"])
facebook.com##div[id^="hyperfeed_story_id"][role="article"]:has(div[class] > div[style] a[href^="https://www.facebook.com/help/"])
facebook.com##div[id^="hyperfeed_story_id"][role="article"]:has(.userContentWrapper div[class] a[target][data-hovercard*="directed_target_id"])
facebook.com###ads_preferences_desktop_root div[tabindex][role="button"] button[data-hover][data-tooltip-content="Add"]:has(span:has-text(Add))
facebook.com###contentArea div:if-not(.clearfix):has(a[href*="/login/?"])
facebook.com###content[role="main"] .clearfix div[data-referrer] > div .stat_elem:has(button.PageLikeButton i[class*="sx_"])
facebook.com###content[role=main] > div .clearfix .stat_elem:has(div a[class^="_fbPageBrowserSubscriptionCardItem"])
facebook.com###content_container div > div[id^="u_fetchstream"] div :has(div[id^="u_fetchstream"] .uiTypeahead div input[aria-controls^="typeahead_list_u_fetchstream"][aria-label^="Invite"])
facebook.com###event_tabs #event_guest_list div[class] div[class] ul[class]:has(div span:has-text(Suggested Friends))
facebook.com###event_tabs #event_guest_list div[class] div[class] ul[class]:has(li div > button div[data-hover="tooltip"][data-tooltip-display="overflow"])
facebook.com###events_dashboard_activity_feed div[role="article"]:has(.fbEventsSuggestionItem)
facebook.com###fbSearchResultsBox:has(form.friendBrowserForm div:has(li a[href*="?fref=pymk"]))
facebook.com###games_hub_root_content div > span div:has(a[href*="/gyml-similar/?"])
facebook.com###globalContainer .uiLayer[data-testid="undefined"] .uiContextualLayer div ul[role="menu"] li:has(a span div:has-text(/^Undo hiding ads/))
facebook.com###groupsNewMembersLink div:has(li[id^="suggested_member_"])
facebook.com###headerArea div:if-not(.clearfix):has(a[href*="/login/?"])
facebook.com###page_browser_invite_friends .clearfix .stat_elem:has(div > a[ajaxify*="/friend_inviter_v2/"])
facebook.com###page_browser_subscriptions .clearfix div:has(span button.PageLikeButton)
facebook.com###pagelet_group_rhc .groupSkyAux div:has(div a[ajaxify^="/ajax/groups/create_get/?"])
facebook.com###pagelet_group_rhc .groupSkyAux div[class] > div[id][class]:has(.uiList:has(li[id^="suggested_member"]))
facebook.com###pagelet_group_rhc .groupSkyAux div[class] > div[id][class]:has(div[class]:has(a[id^="group_rhc_see_more"]))
facebook.com###pagelet_growth_expanding_cta:has(a[id^="expanding_cta_"])
facebook.com###profile_page_insights_hubble div > table td div:has-text(Suggested Pages to Watch)
facebook.com###stream_pagelet div.mvm:has(div:has(a[href*="?sk=h_nor"]))
facebook.com##._4-u8:has(a[data-testid="back_to_top_link"])
facebook.com##.jewelWithEgoUnits .uiScrollableAreaContent div:has(form.friendBrowserForm:has(input[value="people_you_may_know"]))
facebook.com##.loggedout_menubar div[data-testid="royal_login_form"] div:has(form[id="login_form"])
facebook.com##.mtm div[id^="u_0_"] div[id^="u_0_"]:has(span button.PageLikeButton)
facebook.com##.pagelet.groupSkyAux div:has(a[ajaxify*="/ajax/groups/create_get.php?"])
facebook.com##.uiLayer:has(div[role="dialog"]:has(div[data-testid="instant-games-list"]))
facebook.com##:xpath(//div//form[@rel="async"]//div[.//div/text()="Up next"])
facebook.com##:xpath(//div[@id="pagelet_timeline_main_column"]//div[starts-with(@data-referrer,"id")]//div[starts-with(@id,"u_")]//div//div[.//span/text()="Featured for you"])
facebook.com##:xpath(//div[@id="stream_pagelet"]//div[starts-with(@data-ownerid,"u_jsonp_")][//div//span/text()="Featured for you"])
facebook.com##:xpath(//div[@id="stream_pagelet"]//div[starts-with(@data-ownerid,"u_jsonp_")][//div/text()="Related"])
facebook.com##:xpath(//div[@id="timeline-medley"]//div//span[.//button/text()="Tag Suggestions"])
facebook.com##[id^=hyperfeed_story_id_]:has(a[href*="client_token"])
facebook.com##[id^=hyperfeed_story_id_]:has(a[href*="utm_campaign"])
facebook.com##div ul[role="menu"] li:has(a[href*="campaign/landing.php?"])
facebook.com##div[data-referrer="pagelet_side_ads"]
facebook.com##div[data-referrer="timeline_collections_section_title"] > div:has(div[id^="pagelet_recommendation"])
facebook.com##div[id^="dialog_"]:has(.dialog_buttons input[name="login"])
facebook.com##div[id^="hyperfeed_story_id"] .mtm div[id^="u_jsonp"] div[id^="u_jsonp"]:has(a[href*="type=article_author_in_shared_link"])
facebook.com##div[id^="hyperfeed_story_id"] div[data-gt*="click2canvas"] div[data-ft] .mts .mtm:has(.uiList:has(li a[rel][target="_blank"]))
facebook.com##div[id^="hyperfeed_story_id"] div[id^="u_fetchstream"]:has(div[role="article"] div[data-ft*="ego_id"]:has(a[href*="?ref=psym_feed"]))
facebook.com##div[id^="hyperfeed_story_id"]:has(.fbInternPreview)
facebook.com##div[id^="hyperfeed_story_id"]:has(a[href*="/friends/requests/"])
facebook.com##div[id^="hyperfeed_story_id"]:has(a[href*="[is_sponsored]=1"])
facebook.com##div[id^="hyperfeed_story_id"]:has(a[href*="facebook.com/zuck"])
facebook.com##div[id^="hyperfeed_story_id"]:has(a[href*="is_sponsored=1"])
facebook.com##div[id^="hyperfeed_story_id"]:has(div > a[href*="ref=fbtips"])
facebook.com##div[id^="hyperfeed_story_id"]:has(div[class][id] div[aria-label="Message from Facebook"])
facebook.com##div[id^="hyperfeed_story_id"]:has(div[data-ft*="ego_id"]:has(a[href*="ref=group_top_stories_feed"]))
facebook.com##div[id^="hyperfeed_story_id"]:has(div[data-ft*="ego_id"]:has(a[href*="ref=psym_feed"]))
facebook.com##div[id^="hyperfeed_story_id"]:has(span a:has-text(/Sponsored/))
facebook.com##div[id^="hyperfeed_story_id"]:has(span a[href*="[is_sponsored]=1"])
facebook.com##div[id^="hyperfeed_story_id"]:has(span a[href*="is_sponsored=1"])
facebook.com##div[itemscope] #content_container div.clearfix div[class][id][style] div[class]:has(div.uiTypeahead div input[placeholder][aria-controls][aria-label^="Invite"])
facebook.com##div[itemscope] div > #content_container div > div[style]:has(#pagelet_growth_expanding_cta)
facebook.com##div[role="article"] div:has(span a[href^="/groups/?"][href*="discover_category_id=212609529249058"])
facebook.com##div[role="article"] div:has(span a[href^="/groups/?"][href*="discover_category_id=234383826903707"])
facebook.com##div[role="article"] div:has(span a[href^="/groups/?"][href*="discover_category_id=470739743275782"])
facebook.com##div[role="article"] div:has(span a[href^="/groups/?"][href*="discover_category_id=1801122086782345"])
facebook.com##div[role="feed"] div[id^="hyperfeed_story_id"] .mtm:has(div .uiList:has(li a[href^="/commerce/products/"]))
facebook.com##div[role="feed"] div[id^="hyperfeed_story_id"] .userContentWrapper .mtm .mtm:has(ul.uiList:has(a[href*="/services"]))
facebook.com##div[role="feed"] div[id^="hyperfeed_story_id"]:has(div ul.uiList:has(li[data-ft*="ego_id"]))
facebook.com##div[role="feed"] div[id^="mall_post"][id*="SUGGESTED_IN_MALL"]
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 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/redirect/"]))
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###objects_container #root table td div > div:has(a[href*="freebasics.com"])
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^="http://0.freebasics.com/?ref"])
m.facebook.com,mbasic.facebook.com###objects_container #root table td div > div:has(a[href^="http://free.facebook.com/"])
m.facebook.com,mbasic.facebook.com###objects_container #root table td div > div:has(a[href^="https://0.freebasics.com/?ref"])
m.facebook.com,mbasic.facebook.com###objects_container #root table td div > div:has(a[href^="https://free.facebook.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:has(table td a[href*="/collapse/"])
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/):has(ul li:has(table))
m.facebook.com,mbasic.facebook.com###root table[role] div > div:has(a[href*="facebook.com/click.php?redir_url"])
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 like/)))
m.facebook.com,mbasic.facebook.com###sub_profile_pic_content div div[class] > :has(div[id][class] table[role="presentation"] div:has-text(/^Related/))
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)):has(a[href^="/netego/redirect/"])
m.facebook.com,mbasic.facebook.com###viewport #root table td div div:has(a[href^="/lite/?loc_ref=menu"])
m.facebook.com,mbasic.facebook.com###viewport div > div:has(a[href^="/download.php"])
m.facebook.com,mbasic.facebook.com###viewport div:has(table[role="presentation"]:has(td a[href^="/qp/action/redirect/?"]))
m.facebook.com,mbasic.facebook.com###viewport div:not([id]) > div table: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/))
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/))
m.facebook.com,mbasic.facebook.com##table td#mEventsDashboard #events_dashboard_activity_feed:has(a[href*="suggestion_feed_unit"])
m.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,touch.facebook.com###MNewsFeed section article .story_body_container div[data-ft] div:has(.scrollArea:has(a[href^="/commerce/products/"]))
m.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,touch.facebook.com###MNewsFeed section article:has(.scrollArea:has(a#pyml_infinite_scroll_loading))
m.facebook.com,touch.facebook.com###events_dashboard_activity_feed section article:has(.scrollArea:has(.fbEventsEgoScroller))
m.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,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,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,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,touch.facebook.com###mEventsDashboard div > div[data-store-id] > div[data-store-id]:has(div[data-nt^="NT:BOX"]):has(.scrollArea)
m.facebook.com,touch.facebook.com###mJewelRequestsFlyoutBody div div:has(div[class] div[class]:has(div[data-pymk-id]))
m.facebook.com,touch.facebook.com###m_group_stories_container section article:has(.scrollArea .scrollAreaColumn[data-sigil="m-groups-pymi-item"])
m.facebook.com,touch.facebook.com###m_group_stories_container section article:has(div[id^="scrollarea"] div[id*="Suggestion"])
m.facebook.com,touch.facebook.com###m_group_stories_container section article:has(div[id^="scrollarea"] div[id^="GroupMallGYSJSuggestionCard"])
m.facebook.com,touch.facebook.com###m_group_stories_container section article:has(div[id^="scrollarea"] div[id^="GroupMallPYMISuggestionCard"])
m.facebook.com,touch.facebook.com###m_newsfeed_stream section article:has(a[href*="source=promotion_feed_story"])
m.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,touch.facebook.com###msite-pages-header-contents div[style*="transparent none repeat scroll"]:has(#popup_xout)
m.facebook.com,touch.facebook.com###page #root div > div[data-store-id] > div[id^="unit_id"]:has-text(/^Related/):has(.scrollArea)
m.facebook.com,touch.facebook.com###page #root div > div[style^="bottom:"]:has(div[data-sigil="footer-launchpad-more-button"])
m.facebook.com,touch.facebook.com###page #root header > div > div > div:has(a[href^="/pages/launchpoint/discover/"])
m.facebook.com,touch.facebook.com###page article[data-sigil="pma-upsell"]:has(a[href*="com.facebook.pages.app"])
m.facebook.com,touch.facebook.com###page div[id^="unit_id_"]:has(.scrollArea:has(.scrollAreaColumn div[data-autoid]))
m.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 /))
m.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 /))
m.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,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,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,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,touch.facebook.com###root div > div[data-sigil^="m_login_upsell"]:has(.grouped a[href*="facebook.com/click.php?redir_url"])
m.facebook.com,touch.facebook.com###root div a.sub[href*="?sk=h_nor"]
m.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"])
m.facebook.com,touch.facebook.com###timelineProfileTiles div > div[data-autoid]:has(a[href*="?v=fun_facts&"])
m.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,touch.facebook.com##.-hardstate-ads #root div[class] > div[class][id^="u_0_"] div[class]:has(div[class][data-sigil^="adprefssurvey"])
m.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,touch.facebook.com##.-hardstate-ads #root div[class] article div[id][class] div[class]:has(div[class][data-sigil^="adprefssurvey"])
m.facebook.com,touch.facebook.com##.-hardstate-bookmarks #root[role="main"] div > a[href^="/pages/"]:has(div(has-text(/^Suggested/)))
m.facebook.com,touch.facebook.com##.-hardstate-gaming #root div[class][data-store-id] > div[class] > :has(a[href^="fb://gaming/"])
m.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,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,touch.facebook.com##.mSideMenu li:has(.touchable:has(a span:has-text(Instagram)))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="/ads/create/"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="/friends/center/suggestions/"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=124024574287414"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=1728807357362356"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=275254692598279"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=343553122467255"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=399711043500146"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=456900714360021"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=526732794016279"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=645191315628772"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="app_id=762992637108088"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href*="instagram.com"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href^="/appcenter/165907476854626?"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href^="/lite/?loc_ref=menu"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href^="/marketplace/?ref=bookmarks"] div span[data-sigil="marketplace_bookmark"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href^="fb://search_voyager"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href^="https://0.freebasics.com/?ref"]))
m.facebook.com,touch.facebook.com##.mSideMenu li:has(.touchable:has(a[href^="https://free.facebook.com/home.php?ref"]))
m.facebook.com,touch.facebook.com##.storyStream section article:has(footer:has(a[data-ajaxify-href^="/qp/action/redirect/?"]))
m.facebook.com,touch.facebook.com##:xpath(//section//article[.//header//div//span/text()="Sponsored"])
m.facebook.com,touch.facebook.com##article div > div[data-autoid] a[href^="/ads/interest/?"]:has(img[data-sigil="redirect_to_interest"])
m.facebook.com,touch.facebook.com##article:has(.scrollArea .async_fan)
m.facebook.com,touch.facebook.com##article:has(.scrollArea div[data-sigil="ego-auto-pager"])
m.facebook.com,touch.facebook.com##article:has(.scrollArea):has(.scrollAreaBody div[data-ft*="ego_id"])
m.facebook.com,touch.facebook.com##article:has(a[data-uri*="[is_sponsored]=1"])
m.facebook.com,touch.facebook.com##article:has(a[data-uri*="is_sponsored=1"])
m.facebook.com,touch.facebook.com##article:has(a[href*="[is_sponsored]=1"])
m.facebook.com,touch.facebook.com##article:has(a[href*="is_sponsored=1"])
m.facebook.com,touch.facebook.com##article:has(div[data-sigil="egoScroller"])
m.facebook.com,touch.facebook.com##article:has(footer a[href*="/friends/center/"])
m.facebook.com,touch.facebook.com##article:has(footer a[href*="/saved/"])
m.facebook.com,touch.facebook.com##article:has(footer a[href^="https://www.instagram.com"])
m.facebook.com,touch.facebook.com##article:has(span[data-sigil="pixelContainer"])
m.facebook.com,touch.facebook.com##div[data-sigil*="story-div"] > div[class] > div[class]:has(#popup_xout)
m.facebook.com,touch.facebook.com##div[data-sigil="comment"] section.touchable:has(div header h3)
m.facebook.com,touch.facebook.com##section article .story_body_container .story_body_container > div > div:has(.scrollArea .scrollAreaColumn)
m.facebook.com,touch.facebook.com##section article:has(.scrollArea):has(a[href*="instagram.com"])

! 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/redirect/?"][href*="facebook.com%2Flite%2F"])
m.facebook.com,mbasic.facebook.com###viewport div:not(#objects_container) > div:has(table[role] a[href^="/qp/action/redirect/?"][href*="facebook.com%2Flite%2F"])
m.facebook.com,mbasic.facebook.com###viewport div:not(#objects_container) > table[class] td a[href*="lm.facebook.com/l.php?"][target="_blank"]:has(span)
m.facebook.com,mbasic.facebook.com###viewport div:not([id]) > table[role]:has(td a[href^="/a/language.php?"][href*="ref_component=mbasic_footer"])

! CSS Modification
! This may modify some element instead of hiding
! m.facebook.com,touch.facebook.com###header #MBackNavBar:style(margin-top: 95% !important)
m.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,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,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,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,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,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!

! 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,touch.facebook.com###friends_center_main div[data-pymk-id]
m.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.faccebook.com/zero/policy/optin) these rules below
! will remove the details of "Free Basics" service (descriptyion, 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,touch.facebook.com###root div article div:has(span a[href*="/zero/optin/legal/"])
m.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,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"])

! Test Cookie Messing (Now it's caveat because scriptlet cannot remove cookies on the root domain {higher level + HTTP only})
! Remove NoScript State and then set NoScript cookie state to disable
facebook.com##script:inject(cookie-remover.js, noscript)
facebook.com##script:inject(nanop-easy-set-cookie.js, noscript=0)

! Remove referer cookie
facebook.com##script:inject(cookie-remover.js, x-referer)

! This let Facebook forgot mobile carrier name that saved in this cookie (It will keep up to 3 days if you're not remove manuall)
! You can test in 'https://m.facebook.com/diagnostics' and then see the "DATR" value, it should be blank once you've connected to
! private network, such as Ethernet / LAN / Wi-Fi to prevent "Free Basics" menu keep injecting in bookmarks menu
facebook.com##script:inject(cookie-remover.js, datr)
!#endif

! This help for opt out zuckestions, you can convert scriptlets below as bookmarklet.
! var divs = document.querySelectorAll('a[data-sigil*="xout"] i.touched_hide'); for (i = 0; i < divs.length; ++i) {divs[i].click();};
vuquangnguyen2018 commented 5 years ago

https://github.com/kowith337/PersonalFilterListCollection

vuquangnguyen2018 commented 5 years ago

https://github.com/uBlockOrigin/uAssets/issues/3367

vuquangnguyen2018 commented 5 years ago
youtube.com##.ytp-ce-element
www.youtube.com##.ytp-cards-teaser
facebook.com##.userContentWrapper :has([id^="feed_subtitle_"]:has-text(Sp))
facebook.com###substream_1:has([id^="feed_subtitle_"]:has-text(Sp))
facebook.com##body:xpath(//i[text()[contains(.,'Sponsored')]]/ancestor::div[11])
www.facebook.com##.userContentWrapper._5pcr > div:has(.r_zjlob1xpb)
www.facebook.com##.userContentWrapper._5pcr > div:has(.s_v8i43c603)
www.facebook.com##div[id^=hyperfeed_story_id_]:has(span[data-ft="{\"tn\":\"j\"}"])
www.facebook.com##.pagelet-group .pagelet:has(a:has-text(Sponsored))
www.facebook.com##.pagelet-group .pagelet:has(a:has-text(Create ad))
www.facebook.com##div[id^=hyperfeed_story_id_]:has(a[role^=button]:has(> span:has-text(/S/i):has-text(p):has-text(o):has-text(n):has-text(r):has-text(e):has-text(d):not(:has-text(0)):not(:has-text(1)):not(:has-text(2)):not(:has-text(3)):not(:has-text(4)):not(:has-text(5)):not(:has-text(6)):not(:has-text(7)):not(:has-text(8)):not(:has-text(9))))
facebook.com##div[id^="hyperfeed_story_id_"]:not(div:contains(/^[class="timestampContent"])):not(span:contains(/^m$/)):not(span:contains(/^M$/)):not(span:contains(/^h$/)):not(span:contains(/^:$/)):not(span:contains(/^J$/)):has(span:contains(/^S$/))
www.facebook.com##div[id^=hyperfeed_story_id_]:has(span[data-ft="{\"tn\":\"j\"}"])
www.facebook.com##.pagelet-group .pagelet:has(a:has-text(Sponsored))
www.facebook.com##.pagelet-group .pagelet:has(a:has-text(Create ad))
facebook.com##div#stream_pagelet div[id^="feed"][id*="subtitle"]:has(h6 span:has-text(/S.*p.*o.*n.*s.*o.*r.*e.*d/))
www.facebook.com##div[id^=hyperfeed_story_id_]:has(span[data-ft="{\"tn\":\"j\"}"])
www.facebook.com##.pagelet-group .pagelet:has(a:has-text(Sponsored))
www.facebook.com##.pagelet-group .pagelet:has(a:has-text(Create ad))
facebook.com##[id^=hyperfeed_story_id_]:has(a[href*="client_token"])
facebook.com##[id^=hyperfeed_story_id_]:has(a[href*="utm_campaign"])
facebook.com##[id^=hyperfeed_story_id_]:has([id^=u_fetchstream_2_1]:has-text(SpSonSsoSredS))
facebook.com###substream_1:has([id^="feed_subtitle_"]:has-text(Sp))
facebook.com###GroupDiscoverCard_Local
facebook.com###GroupsRHCSuggestionSection
facebook.com###fbpage_invite_audience_action
facebook.com###fbpage_invite_audience_action_finch
facebook.com###feed_optimistic_video
facebook.com###friend_invites_section
facebook.com###home_sponsor_nile
facebook.com###left_nav_section_nodes ul li[id="navItem_124024574287414"]
facebook.com###left_nav_section_nodes ul li[id="navItem_275254692598279"]
facebook.com###left_nav_section_nodes ul li[id="navItem_343553122467255"]
facebook.com###left_nav_section_nodes ul li[id="navItem_399711043500146"]
facebook.com###left_nav_section_nodes ul li[id="navItem_456900714360021"]
facebook.com###left_nav_section_nodes ul li[id="navItem_526732794016279"]
facebook.com###left_nav_section_nodes ul li[id="navItem_645191315628772"]
facebook.com###left_nav_section_nodes ul li[id="navItem_762992637108088"]
facebook.com###left_nav_section_nodes ul li[id="navItem_1728807357362356"]
facebook.com###marketplace_bsg_explore_div #sale_groups_landing_page_recommended_groups div[id^="group_browse"] div[id^="GroupSuggestionCard"]
facebook.com###mobile_login_bar
facebook.com###pageInviteNoticeCard
facebook.com###page_recommendations #recommendations_create_entrypoint_container
facebook.com###page_suggestions_on_liking
facebook.com###pagelet_ads_when_no_friend_list_suggestion
facebook.com###pagelet_advertiser_panel
facebook.com###pagelet_ego_pane
facebook.com###pagelet_explore_feed div[role="article"] .fbUserStory span.uiLikePageButton
facebook.com###pagelet_games_rhc
facebook.com###pagelet_group_mall div[id^="group_mall"] div[id^="mall_post"][id*="SUGGESTED_IN_MALL"]
facebook.com###pagelet_main_column_personal #fbSuggestionsPlaceHolder
facebook.com###pagesTimelineChainingUnit
facebook.com###pages_may_like_section
facebook.com###pages_side_column div > div[id^="PageRelatedPagesSecondaryPagelet"]
facebook.com###pages_side_column div a[href*="/friend_inviter_v2/"]
facebook.com###permalink_related_videos_logged_out
facebook.com###video_permalink_related_pagelet
www.facebook.com##div[id^=hyperfeed_story_id_]:has(div[data-testid="story-subtitle"]:has(span[data-ft]:has(s > s)))
www.facebook.com##div[id^=hyperfeed_story_id_]:has(div[data-testid="story-subtilte"]:has(span[data-ft]:has(s > s)))
www.facebook.com##div[id^=hyperfeed_story_id_]:has(div[data-testid="story-subtitle"]:has(span[data-ft]:has(span > span)))
www.facebook.com##div[id^=hyperfeed_story_id_]:has(div[data-testid="story-subtilte"]:has(span[data-ft]:has(span > span)))
www.facebook.com##.pagelet-group > .pagelet:has(a:has-text(/Sponsored/))
www.facebook.com##div[id^=hyperfeed_story_id_]:has(span[data-ft="{\"tn\":\"j\"}"])
www.facebook.com##.pagelet-group .pagelet:has(a:has-text(Sponsored))