(In reply to comment #6)
> If these functions are exposed in the ObjC bindings, then we can't remove the implementation. We could potentially restrict the API to just ObjC though.
This is what we did for initOverflowEvent in bug 71687. It was public Objective C API; it is now in the Objective C binding only.

Created attachment 115847[details]
proposed patch
(In reply to comment #7)
> (In reply to comment #6)
> > If these functions are exposed in the ObjC bindings, then we can't remove the implementation. We could potentially restrict the API to just ObjC though.
>
> This is what we did for initOverflowEvent in bug 71687. It was public Objective C API; it is now in the Objective C binding only.
Attaching as per above review comments. Moved height/width attribute under "LANGUAGE_OBJECTIVE_C"
Please let me know your comments on this.

Comment on attachment 115847[details]
proposed patch
View in context: https://bugs.webkit.org/attachment.cgi?id=115847&action=review> LayoutTests/fast/dom/document-width-height-force-layout.html:-15
> - log("document.width = " + document.width);
> - log("document.height = " + document.height);
Can you change this test to use document.body.clientWidth and document.body.clientHeight rather than remove it?
> LayoutTests/fullscreen/video-specified-size.html:-14
> - waitForEventTestAndEnd(document, 'webkitfullscreenchange', "video.clientWidth==document.width");
Rather than removing this test, you can just change document.width on this line to document.body.clientWidth.

Created attachment 115928[details]
Updated patch as per review comments
Updated patch as per review comments.
Using document.body.clientWidth/document.body.clientHeight instead of document.width/document.height.

This "fix" will negatively impact our user base, at least those using Safari and Chrome. As Yonathan mentioned, it can be useful to detect zoom, and this change will leave Webkit browsers as the only ones without a method for doing so. It's true that the methods differ between browsers, and it would be preferable to have a standard API for getting this information, but unfortunately there seems to be a philosophical debate among open source browser developers over whether web developers can be trusted to use this information responsibly. Since it's not a security hole of any kind, I'd like to think we should be given the benefit of the doubt and treated as adults.
Judging from the comments, this bug seemed to be based on the incorrect assumption that document.width returned the same value as document.body.clientWidth, and was therefore completely extraneous. Now that you've learned otherwise, I hope you will reconsider, and restore this property, at least until you've more carefully considered the issue of exposing device pixels and/or zoom detection.

Brian, you can still use -webkit-text-size-adjust:none to determine zoom level for Webkit. I'm curious whether you know of any trick to get zoom level in Opera; in newer Opera, I'm not aware of any measurement that is in device pixels anymore. btw I put my code at https://github.com/yonran/detect-zoom

(In reply to comment #21)
> Should we add an app-specific quirk?
Doing so would fix this one app of which I happen to know, but not any other apps and websites that may have been broken by this change.
I think the best and safest solution is to revert this change. If there is a strong argument against this (reading comments 0 through 19 in this bug, I failed to see what justified the change), then a linked-on-or-before check would be acceptable.