Block requests containing 'blocksub' (except main_frame)

Given the following rule:
  {
    "id": 1,
    "condition": {
      "urlFilter": "blocksub"
    },
    "action": {
      "type": "block"
    }
  },
rule 1 will block this image (containing 'blocksub'):
rule 1 will not block this image (does not contain 'blocksub'):
rule 1 will not block top-level navigations to https://developer.mozilla.org/favicon.ico?blocksub because top-level navigation ("main_frame") requests are not matched when "resourceTypes" and "excludedResourceTypes" are not specified.

Block main_frame requests containing 'blocktop'

Given the following rule:
  {
    "id": 2,
    "condition": {
      "urlFilter": "blocktop",
      "resourceTypes": ["main_frame"]
    },
    "action": {
      "type": "block"
    }
  },
rule 2 will block top-level navigation to https://developer.mozilla.org/favicon.ico?blocktop because the "resourceTypes" array contains "main_frame".
rule 2 will not block this image (containing 'blocktop') because "image" is not in the "resourceTypes" array.

Block all requests containing 'blockall'

Given the following rule:
  {
    "id": 3,
    "condition": {
      "urlFilter": "blockall",
      "excludedResourceTypes": []
    },
    "action": {
      "type": "block"
    }
  }
rule 3 will block this image (containing 'blockall'):
rule 3 will block top-level navigation to https://developer.mozilla.org/favicon.ico?blockall because "excludedResourceTypes" is set to an empty array.
Note: not blocked in Chrome due to https://crbug.com/1432871.