Confirmed users
158
edits
| Line 3: | Line 3: | ||
= Design and Implementation = | = Design and Implementation = | ||
To have v2 and v4 run in parallel, we must carefully refactor some core components like ListManager and HashCompleter. Instead of having a master preference to switch between v2 and v4, we take the "table name driven" approach. The plan is to add a separate provider called | To have v2 and v4 run in parallel, we must carefully refactor some core components like '''ListManager''' and '''HashCompleter'''. Instead of having a master preference to switch between v2 and v4, we take the "table name driven" approach. The plan is to add a separate provider called '''google4''', which owns v4 tables: '''goog-phish-proto''', '''goog-unwanted-proto''' and '''goog-malware-proto'''. The suffix "-proto" indicates that the table should be updated and completed via protobuf. Besides, the new provider google4 has its own '''updateURL''' and '''gethashURL'''. You can consider '''google4''' yet another provider like '''mozilla'''. | ||
When '''ListManager''' and '''HashCompleter''' (and any other related components like ProtocolParser) sees table names suffixed by "-proto", they would behave differently. For example, in '''listmanager.js''', while making update request for table '''goog-phish-proto''', ''nsIUrlClassifier.makeUpdateRequestV4'' will be called to build a v4 specific request. (See {{Bug|1264885}} and {{Bug|1275507}} for more information.) | |||
= Milestones = | = Milestones = | ||