12 ms·
Hobson's Browser: How Apple, Facebook and Google broke the mobile browser market
- jefftk 5y agoThis is an excellent article. You should be able to choose a browser and then use it in all situations. Google Search only using Chrome, Apple only allowing their own browser, Facebook and others pushing us into their own in-app browsers, all of this makes things worse for users. (Disclosure: I work at Google, speaking only for myself.)
- tantalor 5y agoYou can disable embedded chrome in Google app; https://support.google.com/websearch/answer/7013866?hl=en&co=GENIE.Platform%3DAndroid https://support.google.com/websearch/answer/7013866?hl=en&co...
- dna_polymerase 5y agoIt's probably a good sign that you had to tell this the Google engineer.
- jefftk 5y agoI did know you can turn it off. But I want setting a default browser that supports the Custom Tabs protocol (ex: Firefox) to make that browser be used any time an app asks for a custom tab, without any additional steps.
- tadfisher 5y agoThis is currently not possible because the filtering is done by the application calling CCT. The default CCT library implementation explicitly filters on the list of known Chrome app IDs and the app has to explicitly work around this filtering by trying the default browser first before falling back to the default CCT call.
- jefftk 5y agoIt sounds like you're saying that this is currently not possible because it's currently not implemented that way? But of course! I'm saying they should change it so that the application asking for a custom tab can only request "please give me a custom tab".
- tadfisher 5y agoI'm saying it's not possible at the OS level because the filtering is done in application code. CCT is not an OS service, it's a client library and a service IDL. Updating the library to remove the ability to filter by application ID is similarly not possible because binding to specific application IDs is not unique to CCT, it's simply how binding to services works on Android.
- mulletbum 5y agoYou lost me. Are you saying that the people who make Android OS can't reprogram Android OS? That is all this person is saying.
- tadfisher 5y agoThat's not what they're saying. The "chrome custom tabs" feature is a service interface exposed by an application, not the OS. There is no "open a custom tab" feature provided by Android. Therefore applications have to locate an installed browser that is known to support CCT before asking that application to start a Custom Tabs activity. The involvement of the OS in this interaction is to show the calling activity a list of applications that handle the ACTION_VIEW intent for URLs, and to bind the browser's CCT service to the interface for the client. The clients are the one choosing to only interact with Chrome at this point!
- wayneftw 5y agoNot in Google maps on iOS though.
- lstamour 5y agoData sample of 1, here, but I tapped a link in Google Maps on iOS 15 and it opened using regular embedded Safari, not Chrome or anything remotely Chrome-like. It uses SFSafariViewController and there’s a button at the top to go back to Chrome (Done), it animates in from the bottom, and you can tap an icon in the lower right corner to open in Safari or another browser. Safari is set as my default browser. I changed by default browser to Chrome and the same thing happened, Google Maps still used SFSafariViewController. I like it. :)
- wayneftw 5y agoIt's an embedded browser. When I click a web link in an app, I want my browser app to open it. There's no option in Google maps to do this.
- fragmede 5y agoThe button, bottom right, opens the page in Safari, and is standard across all iOS apps implementing that webview. In what way(s) is that not what you are looking for?
- wayneftw 5y agoI just want it to open my default browser on the first click. There's a setting for that now. Otherwise the history is lost, among other things.
- lstamour 5y agoIt’s a usability trade off in some ways. Some people will find it confusing that a link opens their web browser. They might ask how to go back to Google Maps. This way there’s a balance. They can quickly preview the link, and if they want to keep it, they can open it intentionally in their browser or share/copy the link with one tap. Users who don’t understand how tabs work won’t find their browsing interrupted by every webpage an app throws their way. But indeed, that doesn’t prevent an app maker such as Google Maps from making it a preference. Technically if Apple made it a preference it might break the expected UI for apps using the control. And as I noted before, there are advantages to previewing links this way, it encourages users to stay within the app. There is no technical reason why it doesn’t log history events when loaded. It could send a message to the default browser or keep a log in the background and let the browser know when it next launches, and arguably for consistency Apple should design such a feature.
- Jcowell 5y agoI think this should be looked at a lens of what’s net gained and net loss. From my point of view , if Apple was to allow other engines on their devices chrome will be the de-facto winner. No Apple is not going to try to make Safari compete with chrome , especially on windows. No developers are not NOT going to use Chrome as their target browser and use Chrome push standards Yes people will switch over to chrome since it will be the one browser developers will target for sure to make sure every hiring works. All it takes if for one website to recommend it in order for users to switch. Ironically the only thing saving the web from complete Google Control is the opposite of competition. I do not see a scenario where competition does occur and Google doesn’t win. Especially on a service they’re not willing to put in their death bin.
- SPBS 5y agoIt’s fine, a lot of people still use Safari on desktop despite Google Chrome being available. And developers have to support it all the same
- sbuk 5y agoThe same was true when IE dominated. The point being missed is if a single browser is allowed to dominate across the board, the owners of the technology become the gatekeepers of web technologies. That would have been extremely bad under Microsoft, and it is going that way with Google. In fact, there was a groundswell of negativity towards WebKit until Google broke the hegemony with by forking it, creating Blink. Which is now in a significantly more dominant position than WebKit ever was. I’m not suggesting that Apple would be any better or that not allowing other browser engines is a good thing. However, the fact that they don’t is keeping Google/Chrome/Blink from having total dominance of the web.
- cbovis 5y agoI'm a regular desktop Safari user and you'd be surprised how many websites are just flat out broken in Safari, especially government sites. Part of the reason I use it as my daily driver is to ensure that the websites I'm working on get tested properly in Safari since the defacto browser for most developers seems to be Chrome.
- EastSmith 5y agoWindows search also uses IE / Edge when you search through the start menu, and this can not be changed as far as I know. Hope they rethink that for Windows 11.
- Akronymus 5y agoDo you by chance know how to remove the annoying search bar at the bottom of the homescreen without having to install a separate launcher or rooting the phone?
- rstat1 5y agoThis article isn't fully accurate. I just went to my Android phone, searched for a random thing with the Google search widget and the links I clicked on all opened in the default browser (which for me is Firefox).
- syockit 5y agoMine doesn't. It opens a search result in an embedded browser, which claims to be "powered by Chrome" when you open the three-dot menu. (Android 8.1.0)
- rstat1 5y agoHmm, perhaps its something that changed in more recent versions then. My phone has one of the Android 12 betas on it. I certainly do remember this being a thing though, but not in a while.
- jefftk 5y agoAt some point might you have gone to Search > Settings > General and unchecked "open web pages in the app"? Pretty sure that setting is on by default.
- tadfisher 5y agoThe Google app uses Chrome Custom Tabs, which allows the calling application to filter the browser implementation by application ID. The documentation encourages this by showing how to limit to the various Chrome app IDs (stable, beta, canary, and dev). Naturally, the user-respecting action is to try a CCT request with the default browser and fall back to known app IDs, but Google themselves don't do this and don't show how to do it in their documentation.
- samename 5y agoThis is one of those topics that I noticed the symptoms of but didn’t sit down to conceptualize and connect all of the dots. This article clearly ties together all the loose ends and even goes as far to offer potential solutions. A great write-up
- post_break 5y agoI still can’t believe Apple gets away with their browser rules on iOS. Yes you can have default browsers now, but they are still built on what Apple says so.
- judge2020 5y agoHas someone perhaps tried making a browser on iOS while sandboxed (aka. without JIT, and only sideloadable of course)? My understanding is that interpreted JS execution has abysmal performance and battery life characteristics, and given that Apple only entrusts themselves to run arbitrary code (since third-parties could just RCE themselves any bypass app store review otherwise) they can't allow other browser engines to use the JIT entitlement - it would look like they were intentionally handicapping the performance of other browsers.
- tantalor 5y agoYou can decouple the browser engine from JS, e.g. use Apple JS core with Chromium/blink
- JoshTriplett 5y agoThe restrictions on JIT aside, my understanding is that there's also a separate rule that you can't have any web browser engine except the system version of WebKit.
- judge2020 5y agoWell, yes, but i'm trying to make a case for why Apple would want to prevent other browser at all - that being how it would look like Apple is intentionally handicapping other browsers by not letting them use JIT, raising less-explainable antitrust concerns.
- gjsman-1000 5y agoOne explanation could be that Apple doesn't want an "electron situation," where every app comes with it's own fully-loaded web browser, is a memory and CPU hog, and a security risk if the app is out of date. Like is currently happening on PCs. With WebKit, its update once, secure all apps everywhere.
- Jyaif 5y agoIronically, the article was paid by Microsoft.
- feross 5y agoThis is an inane comment. The author Alex Russell speaks for himself not his employer. He's always been outspoken on Twitter and he spends much of the article criticizing Google, the place he worked at for over 12 years.
- dmitriid 5y agoYes, he's very outspoken on Twitter where he twists reality to suit his own worldview (which is almost invariably "Safari bad, put Chrome on iOS") and he completely ignores the realities that are: - So many APIs he raves about are considered harmful by both Safari and Firefox: https://webapicontroversy.com/ https://webapicontroversy.com/ - Chrome is blatantly ignoring all input and forces poorly specified internal Chrome APIs onto the world under the guise of "standards" But sure. "He's outspoken on Twitter" should really absolve him and any criticism of what he writes is "inane".
- torartc 5y agoI don't typically agree with Russle on most things, but Safari is in fact bad.
- dmitriid 5y agoSafari is, in fact, fine. The "Safari bad" argument comes from people who are keen on turning the Web into something it can never be: an app platform. I very very very much prefer the "bad Safari" to the shiny Chrome which pushes (and ships) "standards" so bad other browser developers can't even understand them [1] [1] https://github.com/mozilla/standards-positions/issues/459 https://github.com/mozilla/standards-positions/issues/459 Edit: grammar and typos
- enos_feedler 5y ago
- dwaite 5y agoThere are a lot of poor arguments made in the article: 1. WebViews have existed since Windows 98, and they are not meant for embedding third party web content but for rendering first party web content. There is a lot of web content rendered in WebViews which has not been vetted to run outside of them. There are also frameworks like Cordova which surface native capabilities through extensions. They can do this because portions of the WebView run in-process. To provide user choice here would both break a significant portion of these apps and would result in third party code being injected into your application. It is simply untenable as a position. On the other hand, the stores _already_ have policies about apps using WebViews to render third party content. Witness the recent article about FakeSpot being removed from Apple's App Store due to complaints by Amazon. A far more appropriate (if still very aggressive) restriction would be around web views being limited to first party content - content included in the application, or marked as being renderable within a particular application's Web View. 2. More calling out for Apple not being aggressive for PWA technology. In this case, there is a linked list of features that were 2-5 years delayed - but not to any standard release. Thats the delay from when Chromium shipped the feature. Chrome has a very different perspective on Web technologies from Chrome OS, which sought to have no native applications and to have web technologies be the only way to use the laptop or tablet. While they since have backed off on this approach by allowing for running Android applications, this meant for a long time that lack of a "WebUSB" API would also mean these laptops effectively did not have support for any USB devices beyond what the underlying OS included. It is also worth noting that when people bash Apple for not shipping technologies like WebMIDI aggressively as Chrome, they also leave off that neither Firefox nor IE shipped the features (until recently, when IE became a chromium vender fork). They also leave off how many of these "Chrome Specials" are not tracked to become standards. 3. Even if Apple deleted the one line about not including a third party web rendering engine in submitted apps, I would imagine substantial additional changes would be needed before a Chrome or Firefox was willing to invest in porting their rendering engine over. The iOS security environment is based on a sandboxed model with distribution-time grants of static entitlements and user-granted dynamic entitlements. Trying to become the system default browser for something like PWA would involve getting apple to create and grant entirely new entitlements, such as "write and execute arbitrary binary code" (for a Javascript JIT), or "modify home screen" (to install a PWA as an application icon). Even support for the chrome execution model (multiple rendering and background tabs to isolate individual sites) is not fully available on iOS. Hardly impossible, but it would take a lot of work by all parties. It would also mean that third party browsers look less like a tweak to app review and more like long-term strategic partnerships.
- gjsman-1000 5y agoHot take: I know this is controversial, but I want to say it: Only developers and a few tech bloggers care about PWA. I have never seen or heard of anyone using a PWA outside our little tech bubble in real life. Nor have there been instructions in the news or many clickbait YouTube videos about how to use PWAs on your phone or PC.
- tmpz22 5y agoModern PWAs are inferior to products compared built with more traditional means.
- an_opabinia 5y agoShow me a traditional App Store app that doesn’t pay 30% of IAP to Apple.
- gjsman-1000 5y agoEasy, any app that is making less than a million a year, or any app where people have been subscribed for over a year. They pay 15%. Also you didn't specify the app even had to be paid, so any free app counts too.
- zmk5 5y agoThis was only true a couple months ago and required a them to be sued by Epic (and a general "trust busting" attitude from the new admin) for them to drop it. They didn't do it out of the goodness of their hearts.
- gjsman-1000 5y agoWell, Tim Cook testified under oath that they had been doing the change to 15% for under $1M before the actual Epic Games lawsuit was filed, and that it had been in the works for over a year. And Biden had not been elected yet, even when they rolled out the 15% change Biden still wasn't President. Unless you actually believe that Tim Cook committed perjury.
- foysaluix 5y agoFacebook is literally controlling majority of social media and controlling your data! Apple is right in this issue
- underlines 5y agoWhat was the Magisk module called, that allows us to change the engine of IAB on Android? Oh and my default action on all IAB windows is: top right menu > Open in... > Vivaldi
- lenkite 5y agoIMHO, Apple should be sued for Antitrust here, but somehow they are America's darling and can get away with everything.
- mulletbum 5y agoExcept of course they are being sued right now......
- perryizgr8 5y agoIMO it is absolutely inexcusable that a device I paid for, does not let me run the software I want to. Lack of browser engine diversity is but a small symptom of that larger root problem. The owner/user must have final authority to run, use it as they like. If the market is failing to ensure this for the vast majority of the phones and tablets sold, the state must intervene. This is classic monopoly abuse.
- akagusu 5y agoYou don't own your device, you are just licensing it. When you pay for a device you are only paying a license to use the device, since you need a firmware to run the device and the firmware is licensed to you without any ownership transfer. Your device does what the firmware allow it to do, therefore you are only allowed to do what the real owner of the firmware wants you to do.
- ogurechny 5y agoWell, you've paid, and that very moment everyone has stopped caring what you think.
- akagusu 5y agoI saw a lot of comments arguing about technical requirements, but companies like Google, Apple, Facebook, and others, don't do what they do because technical requirements. They do because they want control. More control they have over the platform people are using, more money they can extract from them.
- musicale 5y ago> A browser is an application that can register with an OS to handle http and https navigations by default. A browser in 2021 is a full OS, data store, compiler, network API, runtime, virtual machine, application platform, and user environment. It should really be called a Web Operating System. It's not surprising that Apple, Google, and Mozilla have very different visions of what they want in terms of a Web Operating System. For example, Apple and Google have opposing interests on iOS. Apple generally benefits from replacing web apps with native apps, while Google generally benefits from replacing native apps with web apps. (Google's own apps might be an exception.) Web developers may like (Google/Chrome's) PWAs, but they are not aligned with Apple's business interests (or their vision of user interface, responsiveness, power efficiency, privacy, etc.) any more than Flash was in 2010.