Open Bug 909256 Opened 11 years ago Updated 2 years ago

Places GUID changes done by updatePlaces are not reflected by existent nodes and are not observable

Categories

(Toolkit :: Places, defect, P3)

x86
macOS
defect

Tracking

()

People

(Reporter: asaf, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [snt-scrubbed][places-tech-debt])

The updatePlaces API allows modifying pages GUIDs, yet there's no notification for this sort of change. I think that the proper fix is to only allow setting GUIDs for new places (that is, calling updatePlaces for non-existent URI). Otherwise we're going to face all sort of bloody issues with the new Descriptors API, and very likely with the new bookmarks code as a whole. Should Sync actually need to modify GUIDs for existent places though, we need an API that notifies results for this change. Otherwise nodes would report the old GUIDs once the API for bug 627487 lands.
Update: After a long discussion with with Richard Newman and Marco Bonardo, it seems that for the time being (and at least until mid-2014) Sync must mess with GUIDs for places URI every now and then, potentially very often. This is a huge disappointment as it hurts both performance of future guid-based queries and the reliability of GUIDs as stable unique identifiers. That said, /I think/ we agreed that, for bookmarks, GUIDs can remain immutable as they are now. For new bookmarks, the API introduced in bug 914687 can be used. For the case of two bookmarks created on two machines, Sync would just "live" with the duplicates because (a) It's sort of expected from the user POV (bookmarking is an explicit user action, unlike history recording); (b) It's possible due to the fact multiple bookmarks for the same URI are allowed; (c) It would reduce the complexity we have to deal with by exactly 50% (and even more, because GUIDs are more important for bookmarks than they're for URIs, which are unique identifiers on their own). Long-term though (that's the mid-2014 note above) the Sync team has a plan for introducing their own unique identifiers for URIs, and at that point we'll make GUIDs immutable and optimize the queries to take advantage of that. *** Per that, I'm morphing this bug to cover just what needs to be fixed immediately.
Assignee: nobody → mano
Status: NEW → ASSIGNED
Summary: Results should be notified for page-guids changes → Places GUID changes done by updatePlaces are not reflected by existent nodes and are not observable
Blocks: 1071511
Priority: -- → P2
Assignee: asaf → nobody
Status: ASSIGNED → NEW
Severity: normal → S3

We will need an deeper investigation to understand if the updatePlaces API is still used to update GUIDs.
If it is still in use it could affect updating bookmarks and further action needs to be take not fix the GUIDs that are out of sync.

From the investigation, if the API is no longer used to change the GUID, then we remove the possibility for the API to change the GUID.

Priority: P2 → P3
Whiteboard: [snt-scrubbed][places-tech-debt]
You need to log in before you can comment on or make changes to this bug.