Hi!

As per Jacob’s request, here’s our exchange regarding building an HTTPS 
Everywhere Safari extension.

The threaded quotes are in reverse chronological order. I hope that’s bearable.

- Chris.

Chris Aljoudi
Design. UI/UX. Technology.
Web: https://chrismatic.io/ <https://chrismatic.io/>
Google Voice: +1 (719) 344-2483

> Begin forwarded message:
> 

>> On Nov 11, 2014, at 6:54 PM, Jacob S Hoffman-Andrews <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> This is great! Mind re-posting to the list for posterity, then I'll follow 
>> up there?
>> On 11/11/2014 05:47 PM, Chris Aljoudi wrote:
>>> Hi Jacob!
>>> 
>>> /beforeNavigate/ doesn’t fire for subresources within the page, but 
>>> Safari’s /befloreload/ does exactly that (it fires before loading 
>>> subresources. To quote the Safari documentation:
>>> 
>>>    The |"beforeload"| event is generated before loading every script,
>>>    iframe, image, or style sheet specified in the webpage, for example.
>>> 
>>> AdBlock Plus for Safari uses the /beforeload/ event (see 
>>> https://hg.adblockplus.org/adblockpluschrome/file/67e68cc8e32b/safari/ext/content.js#l58
>>>  
>>> <https://hg.adblockplus.org/adblockpluschrome/file/67e68cc8e32b/safari/ext/content.js#l58>
>>>  for the general idea).
>>> 
>>> I don’t already know of other Safari extensions that rewrite URLs in 
>>> /beforeNavigate/, but here’s Apple’s documentation: 
>>> https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
>>>  
>>> <https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html>
>>> 
>>> Well, the link above includes a bunch of stuff, but does talk about 
>>> /beforeNavigate/.
>>> 
>>> Let me know and I can start writing the Safari extension (and will try to 
>>> conform as much as possible to the source of the already-existent 
>>> extensions).
>>> 
>>> - Chris.
>>> 
>>>> On Nov 11, 2014, at 6:36 PM, Jacob S Hoffman-Andrews <[email protected] 
>>>> <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>> 
>>>> That does indeed sound like it should work. Is it possible to also rewrite 
>>>> resources within the page that way, or is it only the top-level frame? 
>>>> Could you send a reference to the documentation of beforeNavigate? Are you 
>>>> aware of other Safari extensions that rewrite URLs in beforeNavigate?
>>>> 
>>>> This sounds very promising, and assuming it all looks good, it would be 
>>>> awesome for you to write a proof-of-concept Safari version!
>>>> 
>>>> On 11/11/2014 05:23 PM, Chris Aljoudi wrote:
>>>>> Hi!
>>>>> 
>>>>> Chris here (JavaScript; UI/UX design). I note you mentioned that the 
>>>>> reason HTTPS Everywhere isn’t available for Safari is the inability to do 
>>>>> safe rewrites (indeed, window.location, etc. aren’t safe).
>>>>> 
>>>>> I’ve written a few extensions for Safari (I’ve moved to Safari from 
>>>>> Chrome), and I believe an extension can rewrite a URL safely by listening 
>>>>> to the Safari's /beforeNavigate/ event and changing the URL if necessary 
>>>>> (the event is fired before the request is sent).
>>>>> 
>>>>> I think that seems like it'd work. I’d love to help in any way I can if 
>>>>> you’re interested (including writing a preliminary version of the Safari 
>>>>> extension using the already-existent ones as a guide).
>>>>> 
>>>>> Thanks,
>>>>> - Chris.
>>>>> 
>>>>> Chris Aljoudi
>>>>> Design. UI/UX. Technology.
>>>>> Web: https://chrismatic.io/ <https://chrismatic.io/>
>>>>> Google Voice: +1 (719) 344-2483
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> HTTPS-Everywhere mailing list
>>>>> [email protected] <mailto:[email protected]> 
>>>>> <mailto:[email protected] 
>>>>> <mailto:[email protected]>>
>>>>> https://lists.eff.org/mailman/listinfo/https-everywhere 
>>>>> <https://lists.eff.org/mailman/listinfo/https-everywhere>

_______________________________________________
HTTPS-Everywhere mailing list
[email protected]
https://lists.eff.org/mailman/listinfo/https-everywhere

Reply via email to