{"id":201,"date":"2016-06-16T10:39:27","date_gmt":"2016-06-16T10:39:27","guid":{"rendered":"http:\/\/blog.mozilla.org\/tanvi\/?p=201"},"modified":"2022-07-14T20:59:25","modified_gmt":"2022-07-14T20:59:25","slug":"contextual-identities-on-the-web","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/","title":{"rendered":"Contextual Identities on the Web"},"content":{"rendered":"<p><em>The Containers Feature in <a href=\"https:\/\/nightly.mozilla.org\/\">Firefox Nightly<\/a> enables users to login to multiple accounts on the same site simultaneously and gives users the ability to segregate site data for improved privacy and security.<\/em><\/p>\n<p>We all portray different characteristics of ourselves in different situations. The way I speak with my son is much different than the way I communicate with my coworkers. The things I tell my friends are different than what I tell my parents. I\u2019m much more guarded when withdrawing money from the bank than I am when shopping at the grocery store. I have the ability to use multiple identities in multiple contexts. But when I use the web, I can\u2019t do that very well. There is no easy way to segregate my identities such that my browsing behavior while shopping for toddler clothes doesn\u2019t cross over to my browsing behavior while working. The Containers feature I\u2019m about to describe attempts to solve this problem: empowering Firefox to help segregate my online identities in the same way I can segregate my real life identities.<\/p>\n<p>With Containers, users can open tabs in multiple different contexts &#8211; Personal, Work, Banking, and Shopping.\u00a0 Each context has a fully segregated cookie jar, meaning that the cookies, indexeddb, localStorage, and cache that sites have access to in the Work Container are completely different than they are in the Personal Container. That means that the user can login to their work twitter account on twitter.com in their Work Container and also login to their personal twitter on twitter.com in their Personal Container. The user can use both accounts in side-by-side tabs simultaneously. The user won\u2019t need to use multiple browsers, an account switcher<a href=\"#footnote1\">[1]<\/a>, or constantly log in and out to switch between accounts on the same domain.<\/p>\n<div id=\"attachment_202\" style=\"width: 554px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-202\" decoding=\"async\" loading=\"lazy\" class=\" wp-image-202\" src=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png\" alt=\"User logged into work twitter account in Work Container and personal twitter account in Personal Container, simulatenously in side-by-side tabs\" width=\"544\" height=\"389\" \/><p id=\"caption-attachment-202\" class=\"wp-caption-text\">Simultaneously logged into Personal Twitter and Work Twitter accounts.<\/p><\/div>\n<p>Note that the inability to efficiently use &#8220;Contextual Identities&#8221; on the web has been discussed for many years<a href=\"#footnote2\">[2]<\/a>. The hard part about this problem is figuring out the right User Experience and answering questions like:<\/p>\n<ul>\n<li><i><i>How will users know what context they are operating in?<\/i><\/i><\/li>\n<li><i><i>What if the user makes a mistake and uses the wrong context; can the user recover?<\/i><\/i><\/li>\n<li><i><i>Can the browser assist by automatically assigning websites to Containers so that users don\u2019t have to manage their identities by themselves?<\/i><\/i><\/li>\n<li><i><i>What heuristics would the browser use for such assignments?<\/i><\/i><\/li>\n<\/ul>\n<p>We don\u2019t have the answers to all of these questions yet, but hope to start uncovering some of them with user research and feedback. The Containers implementation in <a href=\"https:\/\/nightly.mozilla.org\/\">Nightly Firefox<\/a> is a basic implementation that allows the user to manage identities with a minimal user interface.<\/p>\n<p>We hope to gather feedback on this basic experience to see how we can iterate on the design to make it more convenient, elegant, and usable for our users. Try it out and share your feedback by filling out this quick <a href=\"https:\/\/docs.google.com\/forms\/d\/1oQN14TUnqj-MDErp8MKxH_v7YttOASVdER4lwCgbGKY\/viewform?c=0&amp;w=1\">form<\/a> or writing to <a href=\"mailto:containers@mozilla.com?Subject=Containers%20Feedback\" target=\"_top\" rel=\"noopener\">containers@mozilla.com<\/a>.<\/p>\n<h1>FAQ<\/h1>\n<h3>How do I use Containers?<\/h3>\n<p>You can start using Containers in <a href=\"https:\/\/nightly.mozilla.org\/\">Nightly<\/a> Firefox 50 by opening a New Container Tab. Go the File Menu and select the \u201cNew Container Tab\u201d option. (Note that on Windows you need to hit the alt key to access the File Menu.) Choose between Personal, Work, Shopping, and Banking.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-203\" src=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/conatiners-file-menu-e1466033185220.jpg\" alt=\"Use the File Menu to access New Container Tab, then choose between Personal, Work, Banking, and Shopping.\" width=\"500\" height=\"185\" \/><\/p>\n<p>Notice that the tab is decorated to help you remember which context you are browsing in. The right side of the url bar specifies the name of the Container you are in along with an icon. The very top of the tab has a slight border that uses the same color as the icon and Container name.  The border lets you know what container a tab is open in, even when it is not the active tab.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-209\" src=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-tabs-stacked-1024x362.png\" alt=\"User interface for the 4 different types of Container tabs\" width=\"1024\" height=\"362\" srcset=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-tabs-stacked-1024x362.png 1024w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-tabs-stacked-300x106.png 300w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-tabs-stacked-768x271.png 768w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-tabs-stacked.png 1155w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>You can open multiple tabs in a specific container at the same time. You can also open multiple tabs in different containers at the same time:<\/p>\n<div id=\"attachment_205\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-205\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-205\" src=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/side-by-side-containers-1024x84.png\" alt=\"User Interface when multiple container tabs are open side-by-side\" width=\"1024\" height=\"84\" srcset=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/side-by-side-containers-1024x84.png 1024w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/side-by-side-containers-300x25.png 300w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/side-by-side-containers-768x63.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-205\" class=\"wp-caption-text\">2 Work Containers tabs, 2 Shopping Container tabs, 1 Banking Container tab<\/p><\/div>\n<p>Your regular browsing context (your <a href=\"#default_container\">\u201cdefault container\u201d<\/a>) will not have any tab decoration and will be in a normal tab. See the <a href=\"#default_container\">next section<\/a> to learn more about the \u201cdefault container&#8221;<\/p>\n<p>Containers are also accessible via the hamburger menu. Customize your hamburger menu by adding in the File Cabinet icon. From there you can select a container tab to open. We are working on adding more access points for container tabs; particularly on <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1272256\">long-press of the plus button<\/a>.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/hamburger-containers-1024x405.png\" border=\"1\" alt=\"User Interface for Containers Option in Hamburger Menu\" width=\"1024\" height=\"405\" class=\"aligncenter size-large wp-image-211\" srcset=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/hamburger-containers-1024x405.png 1024w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/hamburger-containers-300x119.png 300w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/hamburger-containers-768x303.png 768w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/hamburger-containers.png 1888w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h3 id=\"default_container\">How does this change affect normal tabs and the site data already stored in my browser?<\/h3>\n<p>The containers feature doesn\u2019t change the normal browsing experience you get when using <i>New Tab<\/i> or <i>New Window<\/i>. The normal tab will continue to access the site data the browser has already stored in the past. The normal tab\u2019s user interface will not change. When browsing in the normal context, any site data read or written will be put in what we call the \u201cdefault container\u201d.<\/p>\n<p>If you use the containers feature, the different container tabs will not have access to site data in the default container. And when using a normal tab, the tab won\u2019t have access to site data that was stored for a different container tab. You can use normal tabs along side other containers:<\/p>\n<div id=\"attachment_210\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-210\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-210\" src=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/side-by-side-containers-with-default-1024x80.png\" alt=\"User Interface when 2 normal tabs are open, next to 2 Work Container tabs and 1 Banking Container tab\" width=\"1024\" height=\"80\" srcset=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/side-by-side-containers-with-default-1024x80.png 1024w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/side-by-side-containers-with-default-300x24.png 300w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/side-by-side-containers-with-default-768x60.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-210\" class=\"wp-caption-text\">2 normal tabs (&#8220;Default Container tabs&#8221;), 2 Work Container tabs, 1 Banking Container tab<\/p><\/div>\n<h3>What browser data is segregated by containers?<\/h3>\n<p>In principle, any data that a site has read or write access to should be segregated.<\/p>\n<p>Assume a user logins into example.com in their Personal Container, and then loads example.com in their Work Container. Since these loads are in different containers, there should be no way for the example.com server to tie these two loads together. Hence, each container has its own separate cookies, indexedDB, localStorage, and cache.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-segregation-chart6-300x177.png\" lt=\"Chart showing what browser data is and isn&#039;t separated by Container\" width=\"300\" height=\"177\" class=\"alignright size-medium wp-image-219\" srcset=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-segregation-chart6-300x177.png 300w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-segregation-chart6-768x454.png 768w, https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-segregation-chart6.png 852w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Assume the user then opens a Shopping Container and opens the History menu option to look for a recently visited site. example.com will still appear in the user&#8217;s history, even though they did not visit example.com in the Shopping Container. This is because the site doesn\u2019t have access to the user&#8217;s locally stored History. We only segregate data that a site has access to, not data that the user has access to. The Containers feature was designed for a single user who has the need to portray themselves to the web in different ways depending on the context in which they are operating.<\/p>\n<p>By separating the data that a site has access to, rather than the data that a user has access to, Containers is able to offer a better experience than some of the <a href=\"#current-alternatives\">alternatives<\/a> users may be currently using to manage their identities.<\/p>\n<h3>Is this feature going to be in Firefox Release?<\/h3>\n<p>This is an <b>experimental<\/b> feature in <a href=\"https:\/\/nightly.mozilla.org\/\">Nightly<\/a> only. We would like to collect <a href=\"#feedback\">feedback<\/a> and iterate on the design before the containers concept goes beyond Nightly. Moreover, we would like to get this in the hands of Nightly users so they can help validate the <a href=\"&quot;#OriginAttributes\">OriginAttribute<\/a> architecture we have implemented for this feature and other features. We have also planned a <a href=\"https:\/\/testpilot.firefox.com\/\">Test Pilot<\/a> study for the Fall.<\/p>\n<p>To be clear, this means that when Nightly 50 moves to Aurora\/DevEdition 50, containers will not be enabled.<\/p>\n<h3 id=\"current-alternatives\">How do users manage different identities on the web today?<\/h3>\n<p>What do users do if they have two twitter accounts and want to login to them at the same time? Currently, users may login to one twitter account using their main browser, and another using a secondary browser. This is not ideal, since then the user is running two browsers in order to accomplish their tasks.<\/p>\n<p>Alternatively, users may open a Private Browsing Window to login to the second twitter account. The problem with this is that all data associated with Private Browsing Windows is deleted when they are closed. The next time the user wants to use their secondary twitter account, they have to login again. Moreover, if the account requires two factor authentication, the user will always be asked for the second factor token, since the browser shouldn\u2019t remember that they had logged in before when using Private Browsing.<\/p>\n<p>Users may also use a second browser if they are worried about tracking. They may use a secondary browser for Shopping, so that the trackers that are set while Shopping can\u2019t be associated with the tasks on their primary browser.<\/p>\n<h3>Can I disable containers on Nightly?<\/h3>\n<p>Yes, by following these steps:<\/p>\n<ol>\n<li>Open a new window or tab in Firefox.<\/li>\n<li>Type about:config and press enter.<\/li>\n<li>You will get to a page that asks you to promise to be careful. Promise you will be.<\/li>\n<li>Set the <i>privacy.userContext.enabled<\/i> preference to false.<\/li>\n<\/ol>\n<h3>Can I enable containers on a version of Firefox that is not Nightly?<\/h3>\n<p>Although the <i>privacy.userContext.enabled<\/i> preference described above may be present in other versions of Firefox, the feature may be incomplete, outdated, or buggy. We currently only recommend enabling the feature in Nightly, where you&#8217;ll have access to the newest and most complete version.<\/p>\n<h3>How is Firefox able to Compartmentalize Containers?<\/h3>\n<p>An origin is defined as a combination of a scheme, host, and port. Browsers make numerous security decisions based on the origin of a resource using the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Same-origin_policy\">same-origin-policy<\/a>. Various features require additional keys to be added to the origin combination. Examples include the Tor Browser\u2019s work on <a href=\"https:\/\/www.torproject.org\/projects\/torbrowser\/design\/#identifier-linkability\">First Party Isolation<\/a>, Private Browsing Mode, the <a href=\"https:\/\/w3c.github.io\/webappsec-suborigins\/\">SubOrigin Proposal<\/a>, and Containers.<\/p>\n<p>Hence, Gecko has added additional attributes to the origin called OriginAttributes. When trying to determine if two origins are same-origin, Gecko will not only check if they have matching schemes, hosts, and ports, but now also check if all their OriginAttributes match.<\/p>\n<p>Containers adds an OriginAttribute called userContextId. Each container has a unique userContextId. Stored site data (i.e. cookies) is now stored with a scheme, host, port, and userContextId. If a user has https:\/\/example.com cookies with the userContextId for the Shopping Container, those cookies will not be accessible by https:\/\/example.com in the Banking Container.<\/p>\n<p>Note that one of the motivations in enabling this feature in <a href=\"https:\/\/nightly.mozilla.org\/\">Nightly<\/a> is to help ensure that we iron out any bugs that may exist in our OriginAttribute implementation before features that depend on it are rolled out to users.<\/p>\n<h3>How does Containers improve user privacy and security?<\/h3>\n<p>The Containers feature offers users some control over the techniques websites can use to track them. Tracking cookies set while shopping in the Shopping Container won\u2019t be accessible to sites in the Personal Container. So although a tracker can easily track a user within their Shopping Container, they would have to use device fingerprinting techniques to link that tracking information with tracking information from the user\u2019s Personal Container.<\/p>\n<p>Containers also offers the user a way to compartmentalize sensitive information. For example, users could be careful to only use their Banking Container to log into banking sites, protecting themselves from potential XSS and CSRF attacks on these sites. Assume a user visits attacker.com in an non-banking-container. The malicious site may try to use a vulnerability in a banking site to obtain the user\u2019s financial data, but wouldn\u2019t be able to since the user\u2019s bank\u2019s authentication cookies are shielded off in a separate container that the malicious site can\u2019t touch.<\/p>\n<h3>Is there any chance that a tracker will be able to track me across containers?<\/h3>\n<p>There are some caveats to data separation with Containers.<\/p>\n<p>The first is that all requests by your browser still have the same IP address, user agent, OS, etc. Hence, fingerprinting is still a concern. Containers are meant to help you separate your identities and reduce naive tracking by things like cookies. But more sophisticated trackers can still use your fingerprint to identify your device. The Containers feature is not meant to replace the Tor Browser, which tries to minimize your fingerprint as much as possible, sometimes at the expense of site functionality. With Containers, we attempt to improve privacy while still minimizing breakage.<\/p>\n<p>There are also some bugs still open related to OriginAttribute separation. Namely, the following areas are not fully separated in Containers yet. <b>Update: All of these bugs have been fixed.<\/b><\/p>\n<ul>\n<li><i>[Fixed October 2016]<\/i> Some favicon requests use the default container cookies even when you are in a different container &#8211; <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1277803\">Bug 1277803<\/a><\/li>\n<li><i>[Fixed July 2016]<\/i> The about:newtab page makes network requests to recently visited sites using the default container\u2019s cookies even when you are in a different container &#8211; <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1279568\">Bug 1279568<\/a><\/li>\n<li><i>[Fixed August 2016]<\/i> Awesome Bar search requests use the default container cookies even when you are in a different container &#8211; <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1244340\">Bug 1244340<\/a><\/li>\n<li><i>[Fixed July 2016]<\/i> The Forget About Site button doesn\u2019t forget about site data from Container tabs &#8211; <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1238183\">Bug 1238183<\/a><\/li>\n<li><i>[Fixed August 2016]<\/i> The image cache is shared across all containers &#8211; <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1270680\">Bug 1270680<\/a><\/li>\n<\/ul>\n<p>We are working on fixing these last remaining bugs and hope to do so during this Nightly 50 cycle.<\/p>\n<h3 id=\"#feedback\">How can I provide feedback?<\/h3>\n<p>I encourage you to try out the feature and provide your feedback via:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.google.com\/forms\/d\/1oQN14TUnqj-MDErp8MKxH_v7YttOASVdER4lwCgbGKY\/viewform?c=0&amp;w=1\">2 minute survey<\/a><\/li>\n<li>Email <a href=\"mailto:containers@mozilla.com?Subject=Containers%20Feedback\" target=\"_top\" rel=\"noopener\">containers@mozilla.com<\/a><\/li>\n<li>File a <a href=\"https:\/\/bugzilla.mozilla.org\/enter_bug.cgi?assigned_to=nobody%40mozilla.org&#038;blocked=ContextualIdentity&#038;bug_file_loc=http%3A%2F%2F&#038;bug_ignored=0&#038;bug_severity=normal&#038;bug_status=NEW&#038;cc=tanvi%40mozilla.com&#038;cf_blocking_b2g=---&#038;cf_blocking_fennec=---&#038;cf_feature_b2g=---&#038;cf_fx_iteration=---&#038;cf_fx_points=---&#038;cf_status_b2g_2_0=---&#038;cf_status_b2g_2_0m=---&#038;cf_status_b2g_2_1=---&#038;cf_status_b2g_2_1_s=---&#038;cf_status_b2g_2_2=---&#038;cf_status_b2g_2_2r=---&#038;cf_status_b2g_2_5=---&#038;cf_status_b2g_2_6=---&#038;cf_status_b2g_master=---&#038;cf_status_firefox47=---&#038;cf_status_firefox48=---&#038;cf_status_firefox49=---&#038;cf_status_firefox50=---&#038;cf_status_firefox_esr38=---&#038;cf_status_firefox_esr45=---&#038;cf_status_thunderbird_esr38=---&#038;cf_status_thunderbird_esr45=---&#038;cf_tracking_b2g=---&#038;cf_tracking_e10s=---&#038;cf_tracking_firefox47=---&#038;cf_tracking_firefox48=---&#038;cf_tracking_firefox49=---&#038;cf_tracking_firefox50=---&#038;cf_tracking_firefox_esr38=---&#038;cf_tracking_firefox_esr45=---&#038;cf_tracking_firefox_relnote=---&#038;cf_tracking_relnote_b2g=---&#038;cf_tracking_thunderbird_esr38=---&#038;cf_tracking_thunderbird_esr45=---&#038;component=DOM%3A%20Security&#038;contenttypemethod=autodetect&#038;contenttypeselection=text%2Fplain&#038;defined_groups=1&#038;flag_type-203=X&#038;flag_type-37=X&#038;flag_type-4=X&#038;flag_type-41=X&#038;flag_type-5=X&#038;flag_type-607=X&#038;flag_type-720=X&#038;flag_type-721=X&#038;flag_type-737=X&#038;flag_type-781=X&#038;flag_type-787=X&#038;flag_type-799=X&#038;flag_type-800=X&#038;flag_type-803=X&#038;flag_type-835=X&#038;flag_type-846=X&#038;flag_type-855=X&#038;flag_type-863=X&#038;flag_type-864=X&#038;flag_type-875=X&#038;flag_type-889=X&#038;flag_type-892=X&#038;flag_type-901=X&#038;flag_type-905=X&#038;flag_type-908=X&#038;form_name=enter_bug&#038;maketemplate=Remember%20values%20as%20bookmarkable%20template&#038;op_sys=Unspecified&#038;priority=--&#038;product=Core&#038;rep_platform=Unspecified&#038;status_whiteboard=%5BuserContextId%5D%5Bdomsecurity-backlog%5D&#038;target_milestone=---&#038;version=unspecified\">bug<\/a><\/li>\n<\/ul>\n<h3>Thank you<\/h3>\n<p>Thanks to everyone who has worked to make this feature a reality! Special call outs to the containers team:<\/p>\n<p>Andrea Marchesini<br \/>\nKamil Jozwiak<br \/>\nDavid Huseby<br \/>\nBram Pitoyo<br \/>\nYoshi Huang<br \/>\nTim Huang<br \/>\nJonathan Hao<br \/>\nJonathan Kingston<br \/>\nSteven Englehardt<br \/>\nEthan Tseng<br \/>\nPaul Theriault<\/p>\n<h4>Footnotes<\/h4>\n<p><a name=\"footnote1\"><\/a>[1] Some <a href=\"https:\/\/support.google.com\/accounts\/answer\/1721977?hl=en\">websites provide account switchers<\/a> in their products. For websites that don&#8217;t support switching, users may install <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/multifox\/\">addons<\/a> to help them switch between accounts.<br \/>\n<\/a><a name=\"footnote2\"><\/a>[2] <a href=\"http:\/\/www.ieee-security.org\/TC\/W2SP\/2013\/papers\/s1p2.pdf\">http:\/\/www.ieee-security.org\/TC\/W2SP\/2013\/papers\/s1p2.pdf<\/a><a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/multifox\/\">, <\/a><a href=\"https:\/\/blog.mozilla.org\/ladamski\/2010\/07\/contextual-identity\/\">https:\/\/blog.mozilla.org\/ladamski\/2010\/07\/contextual-identity\/<\/a><br \/>\n[3] <a href=\"https:\/\/docs.google.com\/presentation\/d\/1tkOXM9nEaBerNSngRLRs1CAUSbaAn3xA6pfXghVR_Bw\/edit?usp=sharing\">Containers Slide Deck<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Containers Feature in Firefox Nightly enables users to login to multiple accounts on the same site simultaneously and gives users the ability to segregate site data for improved privacy and security. We all portray different characteristics of ourselves in different situations. The way I speak with my son is much different than the way&hellip; <a class=\"more-link\" href=\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/\" title=\"Read the rest of &#8220;Contextual Identities on the Web&#8221;\">Read more<\/a><\/p>\n","protected":false},"author":412,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[69],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Contextual Identities on the Web - Tanvi Vyas<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contextual Identities on the Web - Tanvi Vyas\" \/>\n<meta property=\"og:description\" content=\"The Containers Feature in Firefox Nightly enables users to login to multiple accounts on the same site simultaneously and gives users the ability to segregate site data for improved privacy and security. We all portray different characteristics of ourselves in different situations. The way I speak with my son is much different than the way&hellip; Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/\" \/>\n<meta property=\"og:site_name\" content=\"Tanvi Vyas\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-16T10:39:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-14T20:59:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png\" \/>\n<meta name=\"author\" content=\"Tanvi Vyas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@TanviHacks\" \/>\n<meta name=\"twitter:site\" content=\"@TanviHacks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tanvi Vyas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/\",\"url\":\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/\",\"name\":\"Contextual Identities on the Web - Tanvi Vyas\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png\",\"datePublished\":\"2016-06-16T10:39:27+00:00\",\"dateModified\":\"2022-07-14T20:59:25+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/#\/schema\/person\/94b89a1b3d28fe214eb7543734810143\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#primaryimage\",\"url\":\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png\",\"contentUrl\":\"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png\",\"width\":1584,\"height\":1132,\"caption\":\"Simulatenously logged into personal twitter and work twitter accounts\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/tanvi\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contextual Identities on the Web\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/tanvi\/\",\"name\":\"Tanvi Vyas\",\"description\":\"Security and Privacy Engineer  - @TanviHacks\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/tanvi\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/#\/schema\/person\/94b89a1b3d28fe214eb7543734810143\",\"name\":\"Tanvi Vyas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/tanvi\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9f4d447f27c116342ba41a747802372d?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9f4d447f27c116342ba41a747802372d?s=96&d=blank&r=g\",\"caption\":\"Tanvi Vyas\"},\"description\":\"Security\/Privacy Engineer and Tech Lead at Mozilla - @TanviHacks\",\"sameAs\":[\"https:\/\/blog.mozilla.org\/tanvi\/\",\"https:\/\/x.com\/@TanviHacks\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Contextual Identities on the Web - Tanvi Vyas","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/","og_locale":"en_US","og_type":"article","og_title":"Contextual Identities on the Web - Tanvi Vyas","og_description":"The Containers Feature in Firefox Nightly enables users to login to multiple accounts on the same site simultaneously and gives users the ability to segregate site data for improved privacy and security. We all portray different characteristics of ourselves in different situations. The way I speak with my son is much different than the way&hellip; Read more","og_url":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/","og_site_name":"Tanvi Vyas","article_published_time":"2016-06-16T10:39:27+00:00","article_modified_time":"2022-07-14T20:59:25+00:00","og_image":[{"url":"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png"}],"author":"Tanvi Vyas","twitter_card":"summary_large_image","twitter_creator":"@TanviHacks","twitter_site":"@TanviHacks","twitter_misc":{"Written by":"Tanvi Vyas","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/","url":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/","name":"Contextual Identities on the Web - Tanvi Vyas","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/tanvi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#primaryimage"},"image":{"@id":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png","datePublished":"2016-06-16T10:39:27+00:00","dateModified":"2022-07-14T20:59:25+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/tanvi\/#\/schema\/person\/94b89a1b3d28fe214eb7543734810143"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#primaryimage","url":"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png","contentUrl":"https:\/\/blog.mozilla.org\/tanvi\/files\/2016\/06\/containers-twitter-login.png","width":1584,"height":1132,"caption":"Simulatenously logged into personal twitter and work twitter accounts"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/tanvi\/2016\/06\/16\/contextual-identities-on-the-web\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/tanvi\/"},{"@type":"ListItem","position":2,"name":"Contextual Identities on the Web"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/tanvi\/#website","url":"https:\/\/blog.mozilla.org\/tanvi\/","name":"Tanvi Vyas","description":"Security and Privacy Engineer  - @TanviHacks","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/tanvi\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/tanvi\/#\/schema\/person\/94b89a1b3d28fe214eb7543734810143","name":"Tanvi Vyas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/tanvi\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9f4d447f27c116342ba41a747802372d?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9f4d447f27c116342ba41a747802372d?s=96&d=blank&r=g","caption":"Tanvi Vyas"},"description":"Security\/Privacy Engineer and Tech Lead at Mozilla - @TanviHacks","sameAs":["https:\/\/blog.mozilla.org\/tanvi\/","https:\/\/x.com\/@TanviHacks"]}]}},"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/posts\/201"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/users\/412"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/comments?post=201"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/posts\/201\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/media?parent=201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/categories?post=201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/tanvi\/wp-json\/wp\/v2\/tags?post=201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}