Closed Bug 994821 Opened 10 years ago Closed 6 years ago

Make Sync history engine use a pref-driven blacklist, like tabs

Categories

(Firefox :: Sync, defect, P5)

defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: agnel.kurian, Unassigned, Mentored)

References

Details

(Whiteboard: [lang=js][good next bug])

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 (Beta/Release)
Build ID: 20140314220517

Steps to reproduce:

1. I have Sync setup to keep Firefox on my Android device synchronized with Firefox on my laptop (Win 7).
2. On my laptop I open some HTML pages which are stored locally on my hard disk.
3. When I launch Firefox on my Android device, I find that the URLs to HTML pages I had visited on my laptop are listed on the Android device home screen and history. These are useless because they link to files that don't exist on the Android device.



Actual results:

I find that Sync has populated my Firefox on Android homescreen with file:// URLs from the browsing history on my laptop.


Expected results:

Sync should ignore URLs which point to local files.
Component: General → Android Sync
OS: Windows 7 → Android
Product: Firefox for Android → Android Background Services
Hardware: x86_64 → ARM
Whiteboard: dupeme
Hi Agnel, thanks for the report.  Android Sync will more-or-less show what it has downloaded; I'll check to see what we do to filter file:// URLs from your history.  This is really a Desktop issue, though -- Desktop shouldn't be uploading these history items.
(In reply to Nick Alexander :nalexander from comment #1)
> Hi Agnel, thanks for the report.  Android Sync will more-or-less show what
> it has downloaded; I'll check to see what we do to filter file:// URLs from
> your history.

I see that Android Sync ignores records with undesirable schemes:

http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/sync/repositories/android/RepoUtils.java#137

But we don't filter file:// URLs.  The Fennec logic is the same:

http://mxr.mozilla.org/mozilla-central/source/mobile/android/components/build/nsAndroidHistory.cpp#263

>  This is really a Desktop issue, though -- Desktop shouldn't
> be uploading these history items.

The more I think of it, the less I am convinced this is a bug.  Clearly file:// URLs belong in the history set; question is, should they be synced across devices.  There are lots of *other* URL types that (https://m.*, for example) that only "make sense" on one (type of) device; filtering them out is not feasible.

I could be convinced to filter incoming "file://" URLs, since they are *very* unlikely to be useful on an Android device.
We should really be using 

services.sync.engine.tabs.filteredUrls

or equivalent for history, so you could filter stuff out as you wish.
Morphing this to be a desktop bug.
Component: Android Sync → Firefox Sync: Backend
OS: Android → All
Product: Android Background Services → Mozilla Services
Hardware: ARM → All
Summary: Firefox Sync includes file:// URLs → Make Sync history engine use a pref-driven blacklist, like tabs
Whiteboard: dupeme → [mentor=rnewman][lang=js][good first bug]
Version: Firefox 28 → unspecified
Moving to good next, this is a bit heavy for a starter bug. rnewman, thank you for offering to mentor.
Whiteboard: [mentor=rnewman][lang=js][good first bug] → [mentor=rnewman][lang=js][good next bug]
(In reply to Richard Newman [:rnewman] from comment #4)
> Morphing this to be a desktop bug.(In reply to Richard Newman [:rnewman] from comment #3)
> We should really be using 
> 
> services.sync.engine.tabs.filteredUrls
Where can I set this?

> 
> or equivalent for history, so you could filter stuff out as you wish.


I have both fennec and desktop version built.
Flags: needinfo?(rnewman)
This bug is to define a pref, similar to services.sync.engine.tabs.filteredUrls, which is applied to filter outgoing history items before they're uploaded.

Search for the use of the "filteredUrls" pref in services/sync/ to find the pattern to follow.

This is a desktop-only bug at the moment.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(rnewman)
(In reply to Agnel Kurian from comment #0)
[Trying to reproduce this bug]

[Firefox on Desktop]
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:29.0) Gecko/20100101
Firefox/29.0
Build ID: 20140428194004

[Firefox on Android]
User-Agent: Mozilla/5.0 (Android; Mobile; rv:32.0) Gecko/32.0
Firefox/32.0
Build ID: 20140520170018

> User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101
> Firefox/28.0 (Beta/Release)
> Build ID: 20140314220517
> 
> Steps to reproduce:
> 
> 1. I have Sync setup to keep Firefox on my Android device synchronized with
> Firefox on my laptop (Win 7).
> 2. On my laptop I open some HTML pages which are stored locally on my hard
> disk.
> 3. When I launch Firefox on my Android device, I find that the URLs to HTML
> pages I had visited on my laptop are listed on the Android device home
> screen and history. These are useless because they link to files that don't
> exist on the Android device.
> 

Action 1: I set up sync between Firefox and Fennec. No locally opened pages reflected on Fennec.
To confirm, I checked my about:config --

services.sync.engine.tabs.filteredUrls:         ^(about:.*|chrome://weave/.*|wyciwyg:.*|file:.*)$

Action 2: https://mxr.mozilla.org/mozilla-central/source/services/sync/services-sync.js#33 clearly lists that these are filtered by default:

about:.*|chrome://weave/.*|wyciwyg:.*|file:.*)$"
> 
> Actual results:
> 
> I find that Sync has populated my Firefox on Android homescreen with file://
> URLs from the browsing history on my laptop.
> 
No population of locally stored pages on Fennec; Real web pages opened after these tests did show up as expected

> Expected results:
> 
> Sync should ignore URLs which point to local files.

Duly being ignored
Flags: needinfo?(rnewman)
Flags: needinfo?(agnel.kurian)
(In reply to shashank16392 from comment #8)

> No population of locally stored pages on Fennec; Real web pages opened after
> these tests did show up as expected

Are you talking about history (this bug) or tabs (not a bug)?

What's the needinfo for?
Flags: needinfo?(rnewman)
Flags: needinfo?(agnel.kurian)
My pointers (in previous comment) might be wrong; yet I confirm that it's the history indeed that's not reflecting.
Flags: needinfo?(rnewman)
I don't know what you're doing, but I just verified that this bug still occurs in 32.

Everything in Comment 8 indicates that either you're looking at open tabs, or you haven't had a sync occur by the time you're validating.


STR:

* On desktop, open file:///Users/rnewman/ (or a similar file that exists on your machine).
* Tools > Sync now.
* On Android, force a sync.
* Open Fennec.
* Go to the History panel.

Expected:
* "Index of file:///Users/rnewman/" does not appear at the top of the list.

Actual:
* It does.
Flags: needinfo?(rnewman)
Mentor: rnewman
Whiteboard: [mentor=rnewman][lang=js][good next bug] → [lang=js][good next bug]
Hi I'd like to work on this bug. I just know the basics of javascript. Can i help with fixing this bug somehow?
Priority: -- → P5
See Also: → 1331563
Component: Firefox Sync: Backend → Sync
Product: Cloud Services → Firefox
Richard

I want to attempt this bug. Can you direct me where to look at for resolution.

Best.
Flags: needinfo?(bugzilla)
(In reply to Divyansh Sharma [:spiro] from comment #13)
> Richard
> 
> I want to attempt this bug. Can you direct me where to look at for
> resolution.

Hi :spiro, rnewman has left Mozilla (so sad!) but somebody from the team that maintains Desktop Sync might have an opinion on this work.  lina, perhaps you can comment or redirect?
Flags: needinfo?(bugzilla) → needinfo?(lina)
Hi Spiro, thanks for your interest! I don't think we want to do this anymore, so closing as WONTFIX (though we should definitely keep in mind that different platforms have different notions of valid URLs for upcoming work)...but please feel free to try another bug. :-)
Status: NEW → RESOLVED
Closed: 6 years ago
Flags: needinfo?(lina)
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.