Intent to Remove: window.showModalDialog()

12399 views
Skip to first unread message

James Robinson

unread,
Feb 20, 2014, 9:24:59 PM2/20/14
to blink-dev
Use counter data from the stable channel shows that window.showModalDialog() is used on less than 0.006% of page visits.  This feature has an incredibly high cost in terms of code complexity since it requires us to run an event loop on top of an arbitrary javascript stack.  It also complicates the web platform by making task dispatch reentrant and hard to reason about.  To this day, it's unclear how microtask delivery should work with this API.

We marked this API as deprecated 3 months ago:

and given the usage numbers I believe we should remove this from Blink now and see how web compatible this ends up being.  Even if we suffer a bit of pain, I think it's worthwhile to remove this functionality.  In particular I do not think we need to tie this removal to any other features like <dialog>.

- James

Darin Fisher

unread,
Feb 20, 2014, 9:30:43 PM2/20/14
to James Robinson, blink-dev

L.G.T.M.

Dominic Cooney

unread,
Feb 20, 2014, 9:31:46 PM2/20/14
to Darin Fisher, James Robinson, blink-dev
Removing showModalDialog? :D awesome.

FWIW, in case anyone has any doubt... showModalDialog and <dialog> are completely unrelated (implementation is completely unrelated, <dialog> doesn't require any of this crap with nested event loops, etc.) The only thing they really have in common is the word "dialog".

Ojan Vafai

unread,
Feb 20, 2014, 9:56:37 PM2/20/14
to Dominic Cooney, Darin Fisher, James Robinson, blink-dev
LGTM

Adam Klein

unread,
Feb 20, 2014, 10:10:53 PM2/20/14
to James Robinson, blink-dev
I'm not an API OWNER, but this looks so good to me I can't help but say "yes please"!

Eric Seidel

unread,
Feb 20, 2014, 10:25:36 PM2/20/14
to Adam Klein, James Robinson, blink-dev
Lgtm. 

Elliott Sprehn

unread,
Feb 20, 2014, 10:27:12 PM2/20/14
to Eric Seidel, Adam Klein, James Robinson, blink-dev
LGTM! So happy this is getting removed.

Boris Zbarsky

unread,
Feb 21, 2014, 12:14:11 AM2/21/14
to James Robinson, blink-dev
On 2/20/14 9:24 PM, James Robinson wrote:
> and given the usage numbers I believe we should remove this from Blink
> now and see how web compatible this ends up being. Even if we suffer a
> bit of pain, I think it's worthwhile to remove this functionality.

Thank you for being willing to take this on! If you do manage to remove
this successfully, I'm fairly certain that Gecko will follow suit, for
all the reasons you list.

-Boris

Alex Russell

unread,
Feb 21, 2014, 12:51:17 AM2/21/14
to Darin Fisher, blink-dev, James Robinson

LGTM!!

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Jochen Eisinger

unread,
Feb 21, 2014, 1:00:15 AM2/21/14
to Alex Russell, Darin Fisher, blink-dev, James Robinson
I support removing showModalDialog LGTM

Having looked at this before, there appear to be some customers of showModalDialog. AFAIK hotmail uses it e.g. for attaching files. It appears to be used a lot in software written around SAP. So while the usage might be indeed very low, I would expect this change to not go unnoticed.

best
-jochen

Pavel Feldman

unread,
Feb 21, 2014, 1:07:00 AM2/21/14
to Jochen Eisinger, jam...@chromium.org, blink-dev, Alex Russell, Darin Fisher

What about alert messages and the debugger? They are no different from the modal dialog - they run nested event loops on arbitrary JS stack and make same web calls reentrant. What part of the complexity is going away with the showModalDialog?

Regards
Pavel

Darin Fisher

unread,
Feb 21, 2014, 1:14:00 AM2/21/14
to Pavel Feldman, blink-dev, James Robinson, Alex Russell, Jochen Eisinger

showModalDialog allows one WebView to schedule work, whereas with alert/confirm/prompt/print, no WebView may schedule work.

Pavel Feldman

unread,
Feb 21, 2014, 1:16:42 AM2/21/14
to Darin Fisher, jam...@chromium.org, blink-dev, Alex Russell, Jochen Eisinger

What about debugger? Mutating DOM and evaluating setTimeout from the console while on a breakpoint is a generic use case for us.

Jochen Eisinger

unread,
Feb 21, 2014, 1:27:52 AM2/21/14
to Pavel Feldman, blink-dev, James Robinson, Alex Russell, Darin Fisher

The debugger at least doesn't let the page decide to start a nested message loop.

Also, it doesn't require the entire browser to stop doing anything else (note that this is actually broken in chrome - the dialog is currently not modal).

Last but not least, we could do something similar on the main thread to what I recently added for workers: add a separate message queue for debugger tasks, then we don't need a nested message loop anymore.

Best
Jochen

Pavel Feldman

unread,
Feb 21, 2014, 1:43:25 AM2/21/14
to Jochen Eisinger, jam...@chromium.org, blink-dev, Alex Russell, Darin Fisher

Alright. I just wanted to bring attention to other use cases that require similar complexity. Given they are on radar, this intent looks good.

Jochen, I'll follow up with you on a separate message queue. WebView might be not as simple as worker there.

Regards
Pavel

Simon Pieters

unread,
Feb 25, 2014, 3:26:26 AM2/25/14
to blink-dev, James Robinson, mi...@mozilla.com
On Fri, 21 Feb 2014 03:24:59 +0100, James Robinson <jam...@chromium.org>
wrote:
I asked Mike Taylor to grep for 'showModalDialog' in his data set from
64618 front pages from Alexa's top 1m URLs. His data set includes external
scripts. See https://github.com/miketaylr/fetcher for details.

The result is available at https://gist.github.com/miketaylr/9190295

The string appeared in 608 pages, so 0.94%.
https://gist.github.com/zcorpan/9204753

Some occurrences are irrelevant, like commented out code, or defining
their own showModalDialog. Some use it as part of browser detection. Some
check for its existence before using it, some (most maybe) just use it
without checking.

--
Simon Pieters
Opera Software

splen...@gmail.com

unread,
Feb 25, 2014, 6:53:36 PM2/25/14
to blin...@chromium.org
I'm surprised nobody's really spoken up about the negative effects of this change.  I'll try not to make this too rant-y but...

I'm kind of amused at the fact that everyone's quick to say L.G.T.M. without giving any consideration to the implications of a change like this.  It seems like this is being removed only because its 'hard to do' and 'nobody uses it'.  What real good reason do you have to remove it?  Last I checked, its in the HTML5 spec.  Maybe I'm crazy and I'm missing something.

What about the people who do use it?  Did you guys every think about web application usage?  Just to clarify, I'm talking business applications here.  Of course you'll only see a small percentage because most people are looking at cat pics or wasting their lives on facebook.  I feel like no real research has gone into examining the overall effects of this.  Somebody did a web search and said that's good enough.  Absolutely ludicrous.

After the scrollbar issue in v.32, all the odd-ball issues using gmail, and this issue, I really have to wonder what's next on your agenda to break/remove?

... end of rant ...

I enjoy using the browser you guys helped create.  In fact, it's my main browser.... But I'm really starting to wonder whether I should continue to use it or not.

Eric Seidel

unread,
Feb 25, 2014, 7:02:21 PM2/25/14
to splen...@gmail.com, blink-dev
If you are aware of high-usage sites which we should avoid breaking,
that would be a very useful addition to the discussion.

As mentioned in the thread, showModalDialog has a very large
complexity cost to Chrome (impeding the quality of all the rest of the
pieces you like about Chrome) while having extremely low usage.

In general we're interested in trying to support the current and
future web as well as possible, while slowly letting go of the parts
of the web which web authors are no longer using. If web authors (or
popular sites) are still using showModalDialog, we can't let go of it
yet, but that just means that other improvements in Chrome will have
to wait until we can.

James Robinson

unread,
Feb 25, 2014, 7:06:06 PM2/25/14
to splen...@gmail.com, blink-dev
On Tue, Feb 25, 2014 at 3:53 PM, <splen...@gmail.com> wrote:
I'm surprised nobody's really spoken up about the negative effects of this change.  I'll try not to make this too rant-y but...

I'm kind of amused at the fact that everyone's quick to say L.G.T.M. without giving any consideration to the implications of a change like this.  It seems like this is being removed only because its 'hard to do' and 'nobody uses it'.  What real good reason do you have to remove it?  Last I checked, its in the HTML5 spec.  Maybe I'm crazy and I'm missing something.


These issues have been carefully considered and discussed with the editor of the HTML spec and other members of the community.  Everyone is in agreement that this API is pretty much the worst thing imaginable in terms of user experience and complexity of the platform.
 
What about the people who do use it?  Did you guys every think about web application usage?  Just to clarify, I'm talking business applications here.  Of course you'll only see a small percentage because most people are looking at cat pics or wasting their lives on facebook.  I feel like no real research has gone into examining the overall effects of this.  Somebody did a web search and said that's good enough.  Absolutely ludicrous.

Yes, we carefully consider usage of all applications.  From all that we can measure, the usage across the board (not just on facebook or cat pages) is insignificantly low.  You may feel that no real research has gone into this but you are simply wrong.

If you have evidence of users of this please let us know.  We sent out these announcements so that the community can let us know about any potential issues so we can react to them.  We need to know about concrete real-world uses in order to make an informed decision.

- James

Jake

unread,
Feb 26, 2014, 4:15:16 AM2/26/14
to blink-dev
Heh. I say <blink> was by far the worst thing imaginable. :)

Just a suggestion, but perhaps it would help if y'all provided guidance on replacements/workarounds for those impacted by the change?


To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Ian Hickson

unread,
Feb 26, 2014, 11:05:49 AM2/26/14
to splen...@gmail.com, Jake, blink-dev
On Tue, 25 Feb 2014, splen...@gmail.com wrote:
>
> I'm kind of amused at the fact that everyone's quick to say L.G.T.M.
> without giving any consideration to the implications of a change like
> this. It seems like this is being removed only because its 'hard to do'
> and 'nobody uses it'. What real good reason do you have to remove it?

This API is a really poorly designed API. It causes a popup to show, which
is extremely awkward on e.g. mobile platforms; it causes the event loop to
nest, which is extremely problematic for multiple reasons, including
having serious security implications; it makes modal UI dependent on
network traffic, which is very undesireable; exactly how it works in a
multi-process multi-tab UI is highly unintuitive (which windows should it
disable while it's up?); it is the only API that can cause JavaScript
execution to appear in the stack below core functionality like pumping OS
events; and, the straw that broke the camel's back for the Chrome team, it
has huge implications for how complicated implementing mutation observers
will be.

This API single-handedly makes completely unrelated parts of the platform
significantly more complicated to implement, which leads to more bugs,
which makes everything worse for everyone.

And to top it all off, it's not even a particuarly good UI. We have much
better solutions in the works, too, like <dialog>.


> Last I checked, its in the HTML5 spec.

It's only in the HTML standard because browsers implement it. As the
editor of the HTML spec, I am more than eager to get rid of it.

Originally, it was a non-standard single-vendor extension.


> What about the people who do use it?

The current usage is the only reason other browsers haven't already
dropped support for this API. (Indeed, the current usage is the only
reason that most current browsers ended up supporting it at all, and
that's the only reason it's in the HTML spec.)


On Wed, 26 Feb 2014, Jake wrote:
>
> Heh. I say <blink> was by far the worst thing imaginable. :)

<blink> is implemented in one line of CSS, and the relevant CSS is
effectively just a short-hand for triggering some animation code, which is
needed anyway for CSS animations. It's trivial in comparison.


> Just a suggestion, but perhaps it would help if y'all provided guidance
> on replacements/workarounds for those impacted by the change?

showModalDialog() shouldn't be used regardless of whether it's
implemented, because it's a horrible UI (it causes part of the browser to
be disabled while a Web page loads, etc). The workaround is to display
inline UI on the page. Medium-term, <dialog> is a better alternative.

--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'

tom.ch...@gmail.com

unread,
Feb 28, 2014, 6:27:20 AM2/28/14
to blin...@chromium.org
"We sent out these announcements so that the community can let us know about any potential issues so we can react to them.  We need to know about concrete real-world uses in order to make an informed decision."

Well, that's us, for instance. Part of our web based application is content creation, using CKEditor on part of the page. Our users are effectively creating HTML pages, and sometimes need more room than is available in the region of the page CK is restricted to. For this reason we have a button that reopens CKEditor in a detached window that can use the whole screen. This has to be modal so changes can't be made in the smaller version at the same time.
We use showModalDialog() for this, because it conveniently pauses execution in the opener until the window closes, at which point it returns (via window.returnValue) the new content and we can just update.

The 'fix' for loosing showModalDialog() would be to display a full-page overlay, right ? This is not as useful as a detached window, because I have to resize the browser (and all its tabs) rather than just the window of interest.

It seems to me that the only real complaint is "how it works in a multi-process multi-tab UI is highly unintuitive", but this is because Chrome currently gets it wrong (by allowing the new window to hide behind the opener and not visually disabling it, only preventing clicks) , where as FireFox does the right thing (IMHO) and makes the opener window disabled and locked to behind the popup.

Jochen Eisinger

unread,
Feb 28, 2014, 6:58:36 AM2/28/14
to tom.ch...@gmail.com, blink-dev
On Fri, Feb 28, 2014 at 12:27 PM, <tom.ch...@gmail.com> wrote:
"We sent out these announcements so that the community can let us know about any potential issues so we can react to them.  We need to know about concrete real-world uses in order to make an informed decision."

Well, that's us, for instance. Part of our web based application is content creation, using CKEditor on part of the page. Our users are effectively creating HTML pages, and sometimes need more room than is available in the region of the page CK is restricted to. For this reason we have a button that reopens CKEditor in a detached window that can use the whole screen. This has to be modal so changes can't be made in the smaller version at the same time.
We use showModalDialog() for this, because it conveniently pauses execution in the opener until the window closes, at which point it returns (via window.returnValue) the new content and we can just update.

Note that one reason we want to get rid of showModalDialog is that in chrome, it does not really pause execution. It's still possible trigger JS execution in the opener's context.

The 'fix' for loosing showModalDialog() would be to display a full-page overlay, right ? This is not as useful as a detached window, because I have to resize the browser (and all its tabs) rather than just the window of interest.

You can just use window.open() to create a new window. You'd use postMessage to communicate with the popup, or, if it's from the same origin, you can even invoke js functions in both directions.

Of course you lose the modality aspect, but as you note below, that never really worked in chrome...

tom.ch...@gmail.com

unread,
Feb 28, 2014, 7:28:12 AM2/28/14
to blin...@chromium.org
"Of course you lose the modality aspect, but as you note below, that never really worked in chrome..."

Yup. Which is why we use it, and we've always considered it a bug in Chrome that would get fixed, rather than Chrome deciding it could pick and choose what parts of HTML5 to support.

Tom

PhistucK

unread,
Feb 28, 2014, 7:56:58 AM2/28/14
to tom.ch...@gmail.com, blink-dev
I think a polyfill for (an even less buggy version of) showModalDialog would be pretty trivial to implement (like Jochen mentions, window.open, window.onmessage and opener.postMessage). While the JavaScript execution would not be halted (which does not change the current state in Chrome), you can make use of this CSS -
*
{
 pointer-events: none !important;
}
To make sure no (mouse or touch) events are triggered (as part of the polyfil).

Then just include the polyfill in both of the ends of that interaction and you should be done.

The JavaScript execution bug will probably never be fixed anyway, so there is no reason to ever count on it.


PhistucK


To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Jake

unread,
Mar 1, 2014, 4:37:58 PM3/1/14
to blink-dev
@Ian,

My <blink> comment was a poor attempt at humor. Back in the day that tag annoyed me to no end :)

tapasvi...@gmail.com

unread,
Mar 3, 2014, 5:21:44 AM3/3/14
to blin...@chromium.org, tom.ch...@gmail.com
The showModalDialog method along with alert and prompt are one of the few true blocking calls. Implementing a polyfill is next to IMPOSSIBLE without crashing the browser.

Here is an example of why: 
var returnValue = window.showModalDialog(<someuri>);

Now since this is a blocking call window.showModalDialog will not return until the child window (<someurl>) calls a window.close on itself.
There is no practical way to simulate a blocking call in javascript to write out a backward compatible javascript polyfill.

Here is a practical example of a use case that is in production on a multi million dollar product.
A user is clicking on a feature that requires some setup before it continues to render the page.

var featureConfig = window.showModalDialog(<someUrl>); //someUrl might be a wizard walking the user through the complex flow to finally submit the results back to the parent window as the result object.
Since the call was blocking the code is scripted to assume a synchronous nature of the method call..

I also have a concern regarding the source of the data in making a swift decision. Most of these method calls tend to happen on pages that require a logged in context. Hence this will not show in a grep search of the top public websites. The amount of work involved in converting a previously synchronous flow (by leveraging the blocking nature of window.showModal) into asynchronous one is not trivial. 

This will cause significant issues for some applications and may require more than 3 months of notice to fix.

Adam Barth

unread,
Mar 3, 2014, 1:00:19 PM3/3/14
to tapasvi...@gmail.com, blin...@chromium.org, tom.ch...@gmail.com
On Mon Mar 03 2014 at 2:21:47 AM, <tapasvi...@gmail.com> wrote:
The showModalDialog method along with alert and prompt are one of the few true blocking calls. Implementing a polyfill is next to IMPOSSIBLE without crashing the browser.

Here is an example of why: 
var returnValue = window.showModalDialog(<someuri>);

Now since this is a blocking call window.showModalDialog will not return until the child window (<someurl>) calls a window.close on itself.
There is no practical way to simulate a blocking call in javascript to write out a backward compatible javascript polyfill.

Yes, that's one of the reasons we've removed the feature.  It adds constraints to the engine that exist in no other API.

If you're using showModalDialog, you'll probably need to restructure your code a bit to be asynchronous.  For example, you might consider using Promises:

var result = window.showMyDialog(...);
...
result.then(function(returnValue) {
  ...
});

Here is a practical example of a use case that is in production on a multi million dollar product.
A user is clicking on a feature that requires some setup before it continues to render the page.

var featureConfig = window.showModalDialog(<someUrl>); //someUrl might be a wizard walking the user through the complex flow to finally submit the results back to the parent window as the result object.
Since the call was blocking the code is scripted to assume a synchronous nature of the method call..

To address that use case, you'll probably want to create a full-page element that dims the existing content of the page and prevents the user from interacting with it.  You can position your custom dialog on top of that element to let the user interact with the dialog.  That's how most web apps handle this use case.

I also have a concern regarding the source of the data in making a swift decision. Most of these method calls tend to happen on pages that require a logged in context. Hence this will not show in a grep search of the top public websites. The amount of work involved in converting a previously synchronous flow (by leveraging the blocking nature of window.showModal) into asynchronous one is not trivial.

UseCounters measure both logged in and not logged in content in proportion to how often that content is viewed by users.  The fact is that showModalDialog is used extremely rarely.

This will cause significant issues for some applications and may require more than 3 months of notice to fix.

I appreciate that it's going to be some amount of work for you to retrofit your web site to avoid showModalDialog.  We understand that's a cost of removing this feature.  On balance, however, we feel that the benefits of removing the feature outweigh the costs.

Adam

Tom Chiverton

unread,
Mar 3, 2014, 1:03:46 PM3/3/14
to Adam Barth, tapasvi...@gmail.com, blin...@chromium.org
It's not a benefit to the developers who have to rewrite their code, or the companies that have to pay for that, or replace a whole site because the developer isn't around any more.
It's not a benefit to users, who have a site break.

So it's only for Chrome developers benefit ?
--
Tom

Adam Barth

unread,
Mar 3, 2014, 1:45:06 PM3/3/14
to Tom Chiverton, tapasvi...@gmail.com, blin...@chromium.org
You're right that the costs largely accrue to people who maintain web sites that use showModalDialog.  The benefits largely accrue to users, who gain a browser with fewer security vulnerabilities and that can support richer user experiences without the constraints imposed by this API.

The UseCounter data tells us that the former group is quite small, which is why it's an important input into this decision.  Of course, small does not mean "empty," and it's easy for folks like yourself to be vocal on mailing lists.  That's why we use usage data to make these sorts of decisions.

Adam

Dominic Mazzoni

unread,
Mar 3, 2014, 2:13:01 PM3/3/14
to Adam Barth, tapasvi...@gmail.com, blink-dev, tom.ch...@gmail.com
On Mon, Mar 3, 2014 at 10:00 AM, Adam Barth <aba...@google.com> wrote:
var featureConfig = window.showModalDialog(<someUrl>); //someUrl might be a wizard walking the user through the complex flow to finally submit the results back to the parent window as the result object.
Since the call was blocking the code is scripted to assume a synchronous nature of the method call..

To address that use case, you'll probably want to create a full-page element that dims the existing content of the page and prevents the user from interacting with it.  You can position your custom dialog on top of that element to let the user interact with the dialog.  That's how most web apps handle this use case.

In my experience, web developers usually get this wrong - for example by still allowing elements behind the dialog to receive focus.

I'm totally supportive of removing showModalDialog, but I also think this might be a good excuse to try to figure out how we can ship the dialog element and/or inert attribute soon.

The dialog element is fully implemented, but the Intent to Ship discussion fizzled. Could we pick it up and try to reach a consensus on the next step there? Alternatively, I know Matt was thinking of implementing "inert" because it might still help developers, while being simpler and a lot less controversial. Would there be more support for implementing and shipping "inert" soon?

Tapasvi Moturu

unread,
Mar 3, 2014, 3:55:47 PM3/3/14
to Adam Barth, Tom Chiverton, blin...@chromium.org
Adam,
Don't get me wrong, I am totally in favor of removing this from the browser codebase as it simplifies a lot of things and truly reflects the asynchronous nature of javascript by removing the blocking methods.

At the same time, we do also want to point out that despite making progress on the reducing/removing the use of blocking calls, three months is not enough for us. Out entire app (an older version) that has more that half a million active users will be impacted pretty significantly as we will not be able to turnaround in time. We have a fairly large codebase that uses this feature a lot.

At this point, is it a given that this will be removed in the next release of chrome or do we have a chance to postpone the removal of this feature by one more release ?

Please advise
Tapasvi Moturu
 

Adam Barth

unread,
Mar 3, 2014, 4:04:53 PM3/3/14
to tapasvi...@gmail.com, tom.ch...@gmail.com, blin...@chromium.org
On Mon Mar 03 2014 at 12:56:08 PM, Tapasvi Moturu <tapasvi...@gmail.com> wrote:
Adam,
Don't get me wrong, I am totally in favor of removing this from the browser codebase as it simplifies a lot of things and truly reflects the asynchronous nature of javascript by removing the blocking methods.

At the same time, we do also want to point out that despite making progress on the reducing/removing the use of blocking calls, three months is not enough for us. Out entire app (an older version) that has more that half a million active users will be impacted pretty significantly as we will not be able to turnaround in time. We have a fairly large codebase that uses this feature a lot.

At this point, is it a given that this will be removed in the next release of chrome or do we have a chance to postpone the removal of this feature by one more release ?

The feature will still be present in the next release of Chrome (M34).  The feature is unlikely to be present in the release after that (M35).

Adam

yog...@gmail.com

unread,
Mar 3, 2014, 5:53:16 PM3/3/14
to blin...@chromium.org, tapasvi...@gmail.com, tom.ch...@gmail.com, aba...@google.com
Hi Adam,

I'm a colleague of Tapasvi's.  I read somewhere at the top of the thread that you were open to information on actual product usage to inform your decision, and I hope that you reconsider the timing for this change.

Our product is a mission critical application for small businesses.  We have over 1 million active small business users who depend on us on a daily basis.  We rely heavily on showModalDialog - we have hundreds of instances of these throughout the code.  These dialogs are used in core workflows and implementing large parts of the functionality of the application - removing this API will render the product unusable.  3 months is simply not enough time for us to react to this change.  Even implementing workaround solutions will take considerably longer so I'm wondering what options there are to delay releasing this change - given the nature of our product, we will need considerably more time to implement and regress workarounds.  I imagine there are other products (perhaps enterprise solutions) that will also break as a result of this change. As with us, raw usage numbers may not necessarily reflect the criticality of this change to some of these products, and certainly, the impact is very big.

Please let me know your thoughts.

--Yogesh

Adam Barth

unread,
Mar 3, 2014, 5:55:02 PM3/3/14
to yog...@gmail.com, blin...@chromium.org, tapasvi...@gmail.com, tom.ch...@gmail.com
On Mon Mar 03 2014 at 2:53:17 PM, <yog...@gmail.com> wrote:
Hi Adam,

I'm a colleague of Tapasvi's.  I read somewhere at the top of the thread that you were open to information on actual product usage to inform your decision, and I hope that you reconsider the timing for this change.

Our product is a mission critical application for small businesses.  We have over 1 million active small business users who depend on us on a daily basis.  We rely heavily on showModalDialog - we have hundreds of instances of these throughout the code.  These dialogs are used in core workflows and implementing large parts of the functionality of the application - removing this API will render the product unusable.  3 months is simply not enough time for us to react to this change.

How much time would be sufficient?

Adam

yog...@gmail.com

unread,
Mar 3, 2014, 9:23:07 PM3/3/14
to blin...@chromium.org, yog...@gmail.com, tapasvi...@gmail.com, tom.ch...@gmail.com, aba...@google.com
Adam,

We're working on gathering same data to help answer that.

Eric Seidel

unread,
Mar 3, 2014, 9:26:40 PM3/3/14
to yog...@gmail.com, blink-dev, tapasvi...@gmail.com, tom.ch...@gmail.com, Adam Barth
For context, M35 is schedule for branching on March 31st:
http://www.chromium.org/developers/calendar

Releases have historically shipped to stable about 12 weeks after branching:
http://en.wikipedia.org/wiki/Google_Chrome#Release_history

yog...@gmail.com

unread,
Mar 6, 2014, 8:02:15 PM3/6/14
to blin...@chromium.org, yog...@gmail.com, tapasvi...@gmail.com, tom.ch...@gmail.com, Adam Barth
Adam/Eric,

We've done some more detailed assessment and tried a couple of workaround options.  As you know, the challenge is in replicating the blocking nature of the showModalDialog call while still solving for the use cases.  The short answer is that we will need through October 31st to deal with this change.  Please read on for the rationale.

Within our code, we pause execution in the parent, wait for the return value from this call, and use that return value to continue execution in the caller.  Sometimes, the hierarchy takes us multiple levels deep from dialog to dialog.  There are arguments being passed back and forth across the dialogs, and as I mentioned, we have very core business/domain workflows implemented in this way (so the dialogs are pretty heavyweight).  While we'd like to move away from using these dialogs, this is a very large undertaking for us.  It requires us to touch every instance of the call (dialog + caller) to enable the same behavior, making changes up and down that entire call stack.  There are 600+ instances that we need to track down and modify without regression.

Given this complexity and scope, we will need all hands on deck to implement these workarounds, and we're estimating that it'll take 8 months for us to do it.  Obviously, this is pretty disruptive to the business and it deprioritizes other work we have in flight in order to focus on this effort.

Please let me know your thoughts.

--Yogesh

Drew Wilson

unread,
Mar 10, 2014, 11:47:48 AM3/10/14
to Adam Barth, sas...@chromium.org, tapasvi...@gmail.com, blink-dev, tom.ch...@gmail.com
On Mon, Mar 3, 2014 at 7:00 PM, Adam Barth <aba...@google.com> wrote:

UseCounters measure both logged in and not logged in content in proportion to how often that content is viewed by users.  The fact is that showModalDialog is used extremely rarely.

One note - the assumption behind UseCounters is that the population with UseCounter reporting enabled is roughly equivalent (in terms of frequency of usage of APIs) to the population that has UseCounter reporting disabled. If there's an API that is primarily used by enterprises (which have a much higher percentage of clients with usage reporting disabled), then that would skew our numbers.

So, we should be cautious about treating statistical projections based on UseCounters as "facts" - they are projections based on the best data we have available, but data which is known to be flawed. 

I would echo Jochen's concern that SAP applications make use of this API, and this use by enterprise apps is likely to be under-reported by UseCounters. I understand the motivation to remove this API (and it's a bit of a fait accompli at this point), but ideally we'd have some time to do outreach with our enterprise customers/ISVs, and I fear that 8-12 weeks will be insufficient.
 

This will cause significant issues for some applications and may require more than 3 months of notice to fix.

I appreciate that it's going to be some amount of work for you to retrofit your web site to avoid showModalDialog.  We understand that's a cost of removing this feature.  On balance, however, we feel that the benefits of removing the feature outweigh the costs.

I wouldn't say that the cost is outweighed by the benefit, just that ideally we would give people more time to make this transition, especially since the first time many of them will hear about this is when this change hits the Chrome beta channel.

Adam Barth

unread,
Mar 10, 2014, 11:50:31 AM3/10/14
to atwi...@chromium.org, sas...@chromium.org, tapasvi...@gmail.com, blin...@chromium.org, tom.ch...@gmail.com
On Mon Mar 10 2014 at 8:47:49 AM, Drew Wilson <atwi...@chromium.org> wrote:
On Mon, Mar 3, 2014 at 7:00 PM, Adam Barth <aba...@google.com> wrote:

UseCounters measure both logged in and not logged in content in proportion to how often that content is viewed by users.  The fact is that showModalDialog is used extremely rarely.

One note - the assumption behind UseCounters is that the population with UseCounter reporting enabled is roughly equivalent (in terms of frequency of usage of APIs) to the population that has UseCounter reporting disabled. If there's an API that is primarily used by enterprises (which have a much higher percentage of clients with usage reporting disabled), then that would skew our numbers.

So, we should be cautious about treating statistical projections based on UseCounters as "facts" - they are projections based on the best data we have available, but data which is known to be flawed. 

I would echo Jochen's concern that SAP applications make use of this API, and this use by enterprise apps is likely to be under-reported by UseCounters. I understand the motivation to remove this API (and it's a bit of a fait accompli at this point), but ideally we'd have some time to do outreach with our enterprise customers/ISVs, and I fear that 8-12 weeks will be insufficient.
 

This will cause significant issues for some applications and may require more than 3 months of notice to fix.

I appreciate that it's going to be some amount of work for you to retrofit your web site to avoid showModalDialog.  We understand that's a cost of removing this feature.  On balance, however, we feel that the benefits of removing the feature outweigh the costs.

I wouldn't say that the cost is outweighed by the benefit, just that ideally we would give people more time to make this transition, especially since the first time many of them will hear about this is when this change hits the Chrome beta channel.

To be fair, this feature has been deprecated for three months already.  The deprecation period is the time to move off an API.

Adam Barth

unread,
Mar 10, 2014, 12:07:51 PM3/10/14
to yog...@gmail.com, blin...@chromium.org, tapasvi...@gmail.com, tom.ch...@gmail.com
On Thu Mar 06 2014 at 5:02:16 PM, <yog...@gmail.com> wrote:
Adam/Eric,

We've done some more detailed assessment and tried a couple of workaround options.  As you know, the challenge is in replicating the blocking nature of the showModalDialog call while still solving for the use cases.  The short answer is that we will need through October 31st to deal with this change.  Please read on for the rationale.

Within our code, we pause execution in the parent, wait for the return value from this call, and use that return value to continue execution in the caller.  Sometimes, the hierarchy takes us multiple levels deep from dialog to dialog.  There are arguments being passed back and forth across the dialogs, and as I mentioned, we have very core business/domain workflows implemented in this way (so the dialogs are pretty heavyweight).  While we'd like to move away from using these dialogs, this is a very large undertaking for us.  It requires us to touch every instance of the call (dialog + caller) to enable the same behavior, making changes up and down that entire call stack.  There are 600+ instances that we need to track down and modify without regression.

Given this complexity and scope, we will need all hands on deck to implement these workarounds, and we're estimating that it'll take 8 months for us to do it.  Obviously, this is pretty disruptive to the business and it deprioritizes other work we have in flight in order to focus on this effort.

Please let me know your thoughts.

Yogesh,

I sympathize with your situation.  No one wants to distract their development team for re-writing large portions of their app because an API they depend upon has been removed.

Unfortunately, in the period of time this thread has been going on, we've received a report of yet another security vulnerability with showModalDialog (http://crbug.com/350535 for those of you who can access security bugs or those of you reading this email in the future).  On the one hand, that's not particularly surprising because we've seen a long series of vulnerabilities in showModalDialog over the years, but, on the other hand, it makes the costs of keeping showModalDialog very concrete.

What makes removing features like showModalDialog difficult is that the costs are large but borne by relatively few people but the benefits are small but enjoyed by a relatively large number of people.  It can be difficult to judge whether the costs or benefits have more weigh.  Ultimately, that's a judgement call, and our judgement is that the benefits outweigh the costs.

I understand that you're on the cost side of this equation, but  I would ask you to understand that there are people on the benefit side of this equation too.

Adam

Drew Wilson

unread,
Mar 11, 2014, 5:35:00 AM3/11/14
to Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
On Mon, Mar 10, 2014 at 4:50 PM, Adam Barth <aba...@google.com> wrote:

To be fair, this feature has been deprecated for three months already.  The deprecation period is the time to move off an API.

Agreed, 3 months is a reasonable timeframe. What does it mean for an API to be deprecated - do we do any developer outreach letting people know that the API is going away, or is the deprecation warning printed to the JS console the only notification we provide?

I say this, because I'm on the Chrome Enterprise team, and we weren't aware that this API was going away until yesterday. Undoubtedly that's our own fault for not making sure we keep ourselves informed about developments in Blink, but I suspect that many other developers were unaware that this was coming. Did we see use of this API decrease over the last 3 months? If so, then that would be a signal that our deprecation process is working as intended, and at some point we just need to pull the plug. My concern is that if we didn't see the use decline, that means that developers were generally unaware of the deprecation.

Tapasvi Moturu

unread,
Mar 11, 2014, 11:05:34 AM3/11/14
to Drew Wilson, blin...@chromium.org, Tom Chiverton, sas...@chromium.org, Adam Barth

+1

Adam Barth

unread,
Mar 11, 2014, 11:14:30 AM3/11/14
to atwi...@chromium.org, sas...@chromium.org, tapasvi...@gmail.com, blin...@chromium.org, tom.ch...@gmail.com
On Tue Mar 11 2014 at 2:35:00 AM, Drew Wilson <atwi...@chromium.org> wrote:
On Mon, Mar 10, 2014 at 4:50 PM, Adam Barth <aba...@google.com> wrote:

To be fair, this feature has been deprecated for three months already.  The deprecation period is the time to move off an API.

Agreed, 3 months is a reasonable timeframe. What does it mean for an API to be deprecated - do we do any developer outreach letting people know that the API is going away, or is the deprecation warning printed to the JS console the only notification we provide?

Deprecation messages are printed to the console and announced on this mailing list.  Some deprecations are announced on the Chromium blog, but I don't see that this one was.  We could certainly do a better job publicizing when we deprecate a feature.
 
I say this, because I'm on the Chrome Enterprise team, and we weren't aware that this API was going away until yesterday.
 
In the near term, the easiest way to learn about deprecations is to search this mailing list for messages with the subject "intent to deprecate" or "intent to remove".

Undoubtedly that's our own fault for not making sure we keep ourselves informed about developments in Blink, but I suspect that many other developers were unaware that this was coming. Did we see use of this API decrease over the last 3 months?

Yes, the usage as been declining:


That data only goes back a month, but even in that time, the usage has fallen significantly.

If so, then that would be a signal that our deprecation process is working as intended, and at some point we just need to pull the plug. My concern is that if we didn't see the use decline, that means that developers were generally unaware of the deprecation.

I suspect that people don't take deprecation seriously because historically we haven't actually followed through and removed features that we've deprecated.  For example, there's another thread on this mailing list currently about a deprecated feature that's used by 24% of pages.  It's very unlikely we'd be able to remove a feature that's used by 24% of pages.  Hopefully we'll raise the signal-to-noise ratio of these messages.

One of our goals for 2014 is to find ways to deprecate and remove large platform features with minimal breakage [1].  We're still learning how to do that effectively.  I really appreciate your feedback about how we can do better in the future.  Hopefully over time we'll iron out the rough spots in this process.

Adam

Dirk Pranke

unread,
Mar 11, 2014, 12:13:26 PM3/11/14
to Drew Wilson, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
On Tue, Mar 11, 2014 at 2:35 AM, Drew Wilson <atwi...@chromium.org> wrote:



On Mon, Mar 10, 2014 at 4:50 PM, Adam Barth <aba...@google.com> wrote:

To be fair, this feature has been deprecated for three months already.  The deprecation period is the time to move off an API.

Agreed, 3 months is a reasonable timeframe.

I'm not sure that 3 months is a reasonable timeframe, not for changes that might require a substantial reworking of an application (e.g., the showModalDialog case). Having spent plenty of time on the other side of the fence, writing apps in enterprises, 3 months is very aggressive. 

I would be very leery of adopting that number as a baseline; I think we probably need a range of numbers depending on what the impact of the feature going away might be is and how hard it is to migrate to a new solution. Obviously, in some cases the breakage might be cosmetic and the fix a search and replace to remove a prefix; on the other end of the spectrum (again, showModalDialog), apps might lose basic functionality and fixing it might be a substantial amount of work.

-- Dirk

Boris Zbarsky

unread,
Mar 11, 2014, 2:35:51 PM3/11/14
to blink-dev
On 3/11/14 11:14 AM, Adam Barth wrote:
> For example, there's another thread on this
> mailing list currently about a deprecated feature that's used by 24% of
> pages. It's very unlikely we'd be able to remove a feature that's used
> by 24% of pages.

For what it's worth, that 24% number is grossly over-inflated by jQuery
commonly "using" that feature for purposes of the use counter. But in
practice, whenever jQuery hits that codepath its behavior is the same as
it would be if the feature were not supported. See
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25002#c2 for the relevant
jQuery code and a proposal for a use counter that might provide more
relevant data here.

-Boris

Tom Chiverton

unread,
Mar 12, 2014, 5:15:10 AM3/12/14
to Dirk Pranke, Drew Wilson, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev
"apps might lose basic functionality and fixing it might be a substantial amount of work."

This. And a much better job of giving a heads up with a lead time that varies - 3 months for removing a CSS prefix is reasonable, but it's far too short for dropping support for part of the HTML5 spec.
That's even assuming, as above, that you don't have a massive selection bias in the usage number...
--
Tom

Drew Wilson

unread,
Mar 12, 2014, 5:27:04 AM3/12/14
to Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
On Tue, Mar 11, 2014 at 4:14 PM, Adam Barth <aba...@google.com> wrote:
On Tue Mar 11 2014 at 2:35:00 AM, Drew Wilson <atwi...@chromium.org> wrote:
On Mon, Mar 10, 2014 at 4:50 PM, Adam Barth <aba...@google.com> wrote:

To be fair, this feature has been deprecated for three months already.  The deprecation period is the time to move off an API.

Agreed, 3 months is a reasonable timeframe. What does it mean for an API to be deprecated - do we do any developer outreach letting people know that the API is going away, or is the deprecation warning printed to the JS console the only notification we provide?

Deprecation messages are printed to the console and announced on this mailing list.  Some deprecations are announced on the Chromium blog, but I don't see that this one was.  We could certainly do a better job publicizing when we deprecate a feature.
 
I say this, because I'm on the Chrome Enterprise team, and we weren't aware that this API was going away until yesterday.
 
In the near term, the easiest way to learn about deprecations is to search this mailing list for messages with the subject "intent to deprecate" or "intent to remove".

Jochen pointed this out also, and I've now set up the appropriate filters to make sure I'm able to track upcoming changes like this :)
 

Undoubtedly that's our own fault for not making sure we keep ourselves informed about developments in Blink, but I suspect that many other developers were unaware that this was coming. Did we see use of this API decrease over the last 3 months?

Yes, the usage as been declining:


That data only goes back a month, but even in that time, the usage has fallen significantly.

Thanks - that's a pretty dramatic decline, so it does seem to show that our deprecation process is working.
 

If so, then that would be a signal that our deprecation process is working as intended, and at some point we just need to pull the plug. My concern is that if we didn't see the use decline, that means that developers were generally unaware of the deprecation.

I suspect that people don't take deprecation seriously because historically we haven't actually followed through and removed features that we've deprecated.  For example, there's another thread on this mailing list currently about a deprecated feature that's used by 24% of pages.  It's very unlikely we'd be able to remove a feature that's used by 24% of pages.  Hopefully we'll raise the signal-to-noise ratio of these messages.

One of our goals for 2014 is to find ways to deprecate and remove large platform features with minimal breakage [1].  We're still learning how to do that effectively.  I really appreciate your feedback about how we can do better in the future.  Hopefully over time we'll iron out the rough spots in this process.

I think the overall goals of the blink and chromium teams (removing functionality like showModalDialog, NPAPI) are sound - we can't let ourselves be permanently handcuffed to insecure or poorly designed features. But we should also be cognizant of the fact that more and more enterprises are adopting Chrome precisely because of our focus on stability and security, and these enterprise customers expect a fairly rigorous deprecation process.

I would point at Chrome's removal of NPAPI support as a good example of how we might remove web platform features - there was ample notification, including end-user-visible notification, and a well-publicized deadline that gave partners ample time to migrate to new solutions. Now, granted, NPAPI has several orders of magnitude more adoption than showModalDialog() so it's not likely that we would have such a heavy-weight process for removing that API. But I would think that a public blog post at the time of deprecation, stating that we're deprecating the API and plan to remove it within 120 days would have been appropriate and fairly lightweight. Is there a way to make this part of the deprecation/removal process?

Jochen Eisinger

unread,
Mar 12, 2014, 6:56:12 AM3/12/14
to Drew Wilson, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
On Wed, Mar 12, 2014 at 10:27 AM, Drew Wilson <atwi...@chromium.org> wrote:



On Tue, Mar 11, 2014 at 4:14 PM, Adam Barth <aba...@google.com> wrote:
On Tue Mar 11 2014 at 2:35:00 AM, Drew Wilson <atwi...@chromium.org> wrote:
On Mon, Mar 10, 2014 at 4:50 PM, Adam Barth <aba...@google.com> wrote:

To be fair, this feature has been deprecated for three months already.  The deprecation period is the time to move off an API.

Agreed, 3 months is a reasonable timeframe. What does it mean for an API to be deprecated - do we do any developer outreach letting people know that the API is going away, or is the deprecation warning printed to the JS console the only notification we provide?

Deprecation messages are printed to the console and announced on this mailing list.  Some deprecations are announced on the Chromium blog, but I don't see that this one was.  We could certainly do a better job publicizing when we deprecate a feature.
 
I say this, because I'm on the Chrome Enterprise team, and we weren't aware that this API was going away until yesterday.
 
In the near term, the easiest way to learn about deprecations is to search this mailing list for messages with the subject "intent to deprecate" or "intent to remove".

Jochen pointed this out also, and I've now set up the appropriate filters to make sure I'm able to track upcoming changes like this :)
 

Undoubtedly that's our own fault for not making sure we keep ourselves informed about developments in Blink, but I suspect that many other developers were unaware that this was coming. Did we see use of this API decrease over the last 3 months?

Yes, the usage as been declining:


That data only goes back a month, but even in that time, the usage has fallen significantly.

Thanks - that's a pretty dramatic decline, so it does seem to show that our deprecation process is working.
 

If so, then that would be a signal that our deprecation process is working as intended, and at some point we just need to pull the plug. My concern is that if we didn't see the use decline, that means that developers were generally unaware of the deprecation.

I suspect that people don't take deprecation seriously because historically we haven't actually followed through and removed features that we've deprecated.  For example, there's another thread on this mailing list currently about a deprecated feature that's used by 24% of pages.  It's very unlikely we'd be able to remove a feature that's used by 24% of pages.  Hopefully we'll raise the signal-to-noise ratio of these messages.

One of our goals for 2014 is to find ways to deprecate and remove large platform features with minimal breakage [1].  We're still learning how to do that effectively.  I really appreciate your feedback about how we can do better in the future.  Hopefully over time we'll iron out the rough spots in this process.

I think the overall goals of the blink and chromium teams (removing functionality like showModalDialog, NPAPI) are sound - we can't let ourselves be permanently handcuffed to insecure or poorly designed features. But we should also be cognizant of the fact that more and more enterprises are adopting Chrome precisely because of our focus on stability and security, and these enterprise customers expect a fairly rigorous deprecation process.

I would point at Chrome's removal of NPAPI support as a good example of how we might remove web platform features - there was ample notification, including end-user-visible notification, and a well-publicized deadline that gave partners ample time to migrate to new solutions. Now, granted, NPAPI has several orders of magnitude more adoption than showModalDialog() so it's not likely that we would have such a heavy-weight process for removing that API. But I would think that a public blog post at the time of deprecation, stating that we're deprecating the API and plan to remove it within 120 days would have been appropriate and fairly lightweight. Is there a way to make this part of the deprecation/removal process?

The chromium blog post contains a link to a list of all added, deprecated, and removed features: http://blog.chromium.org/2014/02/chrome-34-responsive-images-and_9316.html

best
-jochen

PhistucK

unread,
Mar 12, 2014, 7:26:03 AM3/12/14
to Jochen Eisinger, Drew Wilson, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
By the way, this is not a very good list, as it does not say to which Chrome version the date of the intent (or actual addition, deprecation or removal commit) corresponds. Also, the audience must be familiar with your terms and the rules for actually acting on an intent (red means it is not approved, green means it is and might have happened).

This should really not be linked from a release notes blog post as it is too internal for the wider audience to comprehend.


PhistucK

Drew Wilson

unread,
Mar 12, 2014, 12:24:10 PM3/12/14
to PhistucK, Jochen Eisinger, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
To follow up after my offline discussion with jochen - a significant portion of the world's web pages are rendered by Blink, and that means that the security benefits from removing fragile APIs like this are commensurately large. However, I'd say that the size of our user base also means that we have an obligation to do an *outstanding* job of publicizing changes like this, because we're large enough that we're effectively changing the web platform when we do this.

Currently, it seems like our public notification of this change was:

1) A warning printed to the JS console for the last couple of months.
2) This email sent to blink-dev announcing our intent to remove on Feb 21 (roughly 3 months before this would hit the stable channel)
3) Line 57 from the "Blink Intents" spreadsheet, linked from a Chrome 34 beta release blog post:

Inline image 1

My concern is that not enough web developers will see any of these notifications. So, to make a concrete suggestion, I'd like to propose that the blink/chrome team publish a blog post at the start of every quarter, stating which APIs we intend to remove the following quarter. This has the side effect of slowing down the velocity of deprecations (if I put up a blog post on Jan 1 announcing our intent to remove API XXXX in Q2, then it likely doesn't the stable channel until midway through Q2, giving developers effectively 5 months to take action).

Jochen expressed his opinion that at this point we've already removed most of the APIs we're planning to deprecate, and that the current process/level of communication has been working OK so far, so this is basically not worth pursuing. And if that's the case, then OK. I just want to make sure that the blink team is aware of the fact that folks outside the team don't have the level of visibility into their plans that the blink team has been assuming.

-atw

Jochen Eisinger

unread,
Mar 12, 2014, 12:27:14 PM3/12/14
to Drew Wilson, PhistucK, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
On Wed, Mar 12, 2014 at 5:24 PM, Drew Wilson <atwi...@chromium.org> wrote:
To follow up after my offline discussion with jochen - a significant portion of the world's web pages are rendered by Blink, and that means that the security benefits from removing fragile APIs like this are commensurately large. However, I'd say that the size of our user base also means that we have an obligation to do an *outstanding* job of publicizing changes like this, because we're large enough that we're effectively changing the web platform when we do this.

Currently, it seems like our public notification of this change was:

1) A warning printed to the JS console for the last couple of months.
2) This email sent to blink-dev announcing our intent to remove on Feb 21 (roughly 3 months before this would hit the stable channel)
3) Line 57 from the "Blink Intents" spreadsheet, linked from a Chrome 34 beta release blog post:

Inline image 1

My concern is that not enough web developers will see any of these notifications. So, to make a concrete suggestion, I'd like to propose that the blink/chrome team publish a blog post at the start of every quarter, stating which APIs we intend to remove the following quarter. This has the side effect of slowing down the velocity of deprecations (if I put up a blog post on Jan 1 announcing our intent to remove API XXXX in Q2, then it likely doesn't the stable channel until midway through Q2, giving developers effectively 5 months to take action).

Jochen expressed his opinion that at this point we've already removed most of the APIs we're planning to

Just to clarify: APIs of the kind of showModalDialog() not in general.

Eric Seidel

unread,
Mar 12, 2014, 1:15:01 PM3/12/14
to Jochen Eisinger, Drew Wilson, PhistucK, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
I've been taking some notes on this thread, which I've now published:


AFAICT we failed to send an Intent To Deprecate about this removal, deviating from our published guidelines.

Michał Gołębiowski

unread,
Mar 12, 2014, 1:55:53 PM3/12/14
to Eric Seidel, Jochen Eisinger, Drew Wilson, PhistucK, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
The public link doesn't work, I get "denied access".
--
Michał Gołębiowski

Eric Seidel

unread,
Mar 12, 2014, 2:06:31 PM3/12/14
to Michał Gołębiowski
[bcc others]

https://docs.google.com/document/d/1WxCkKj28fnvkD0nSZTeu-prjQyg-Hg4acJwEEooZIek/pub works for me in an incognito window.

Please let me know if that still doesn't work.

PhistucK

unread,
Mar 12, 2014, 2:06:39 PM3/12/14
to Michał Gołębiowski, Eric Seidel, Jochen Eisinger, Drew Wilson, Adam Barth, sas...@chromium.org, Tapasvi Moturu, blink-dev, Tom Chiverton
The first link (with /pub at the end) works for me even in incognito mode.


PhistucK

Michał Gołębiowski

unread,
Mar 12, 2014, 2:08:04 PM3/12/14