Issue metadata
Sign in to add a comment
|
Trouble loading 360 degree images in Android Chrome
Reported by
appypie2...@gmail.com,
Sep 5
|
||||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 Steps to reproduce the problem: 1. Load the given URL - https://essnappy.appypie.com/vr_appy/index.html?preview=https://cdncloudfront.com/media/user_space/ccd40140fc4c/photo/preview_AMBIENTE-360-PIEDRA-ALUMINI-32X56-1_1534877617.jpg&image=https://cdncloudfront.com/media/user_space/ccd40140fc4c/photo/AMBIENTE-360-PIEDRA-ALUMINI-32X56-1_1534877617.jpg&is_stereo=false 2. This shows disrupted rotation in Chrome 68.0.3440.9 and above. 3. The image does not open properly. What is the expected behavior? 360 degree image url should load properly and rotation should be accurate according to device rotation. What went wrong? The above image url works perfectly in Chrome 64.0.3282.137 but shows unexpected behaviour in 68.0.3440.9 and above. Did this work before? Yes Chrome 64.0.3282.137 Chrome version: 68.0.3440.106 Channel: n/a OS Version: OS X 10.12.6 Flash Version:
,
Sep 6
,
Sep 6
Tested the issue in Android and able to reproduce the issue. Steps Followed: 1. Navigated to URL given in c#0 2. Observed zankiness in image while rotating Chrome versions tested: 68.0.3440.81 , 69.0.3497.76, 70.0.3538.2 OS: Android 8.0.0 Android Devices: Pixel 2 Issue is seen in latest stable #69.0.3497.76 and latest canary #70.0.3538.2. Using the per-revision bisect providing the bisect results, Good Build - 67.0.3334.0 Bad Build - 67.0.3335.0 CL: https://chromium.googlesource.com/chromium/src/+/c0c8978849ac57e4ecd613ddc8ff7852a2054734 @ digit: Could you please look into the issue, pardon me if it has nothing to do with your changes and if possible please assign it to owner concerned. Thanks!
,
Sep 6
This is likely caused by the change in units from radians to degrees announced on blink-dev[1] and released in Chrome 66. [1]: https://groups.google.com/a/chromium.org/d/msg/blink-dev/ple1o7bFqEs/jJuhTSEYCwAJ I tested this page in Firefox and it looks like motion control doesn't work at all there. Chrome's behavior in 66 and later matches Firefox. Assigning to juncai@ but this will likely be closed as WontFix.
,
Sep 6
,
Sep 7
Tested the page and the image rotates very quickly. It is caused by the radians to degrees change. Suggest the test page JS code to be updated to use degrees instead of radians.
,
Sep 7
Some update: The current behavior is the page loads, the image rotates very quickly for a very short time, and then the renderer crashes. Tried changing the code to be radians at: https://cs.chromium.org/chromium/src/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump.cc?l=164-170 The test page loads, the image rotates normally for a very short time, and then renderer crashes. So it seems that the crash is not related to the DeviceMotion API. I also tried the the following test page and it works well: https://aframe.io/aframe/examples/boilerplate/hello-world/ which is from: https://bugs.chromium.org/p/chromium/issues/detail?id=779443 Not sure if it is related to some VR api?
,
Sep 7
Looks like the following line caused the renderer to crash: https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/graphics/static_bitmap_image.h?l=83
,
Sep 7
,
Sep 7
juncai@, do you have a stack trace that goes farther up the stack?
,
Sep 7
schenney@, here is the stack trace which I got from the logcat: chromium: [INFO:CONSOLE(17343)] "THREE.WebGLRenderer: image is not power of two (4000x2000). Resized to 4096x2048", source: https://essnappy.appypie.com/vr_appy/build/three.js (17343) chromium: [INFO:CONSOLE(8037)] "Invalid timestamps detected. Time step between successive gyroscope sensor samples is very small or not monotonic", source: https://essnappy.appypie.com/vr_appy/build/embed.js (8037) chromium: [INFO:CONSOLE(17343)] "THREE.WebGLRenderer: image is not power of two (4000x2000). Resized to 4096x2048", source: https://essnappy.appypie.com/vr_appy/build/three.js (17343) chromium: [FATAL:static_bitmap_image.h(83)] Check failed: false. chromium: #00 0xd05ddc0f /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libbase.cr.so+0x000d8c0f chromium: #01 0xc9fa6f53 /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libblink_platform.cr.so+0x00466f53 chromium: #02 0xc80452a7 /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libblink_modules.cr.so+0x0072d2a7 chromium: #03 0xc80454bd /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libblink_modules.cr.so+0x0072d4bd chromium: #04 0xc80458e9 /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libblink_modules.cr.so+0x0072d8e9 chromium: #05 0xc8045c4f /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libblink_modules.cr.so+0x0072dc4f chromium: #06 0xc7e5319d /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libblink_modules.cr.so+0x0053b19d chromium: #07 0xca9865e3 /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libv8.cr.so+0x0029a5e3 chromium: #08 0xca98585b /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libv8.cr.so+0x0029985b chromium: #09 0xca98484d /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libv8.cr.so+0x0029884d chromium: #10 0xca98451b /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libv8.cr.so+0x0029851b chromium: #11 0xcb2dbf57 /data/app/org.chromium.chrome-tWVg6GrPuJcFSfBBfwcM_g==/lib/arm/libv8.cr.so+0x00beff57 I tested it on Pixel 2.
,
Sep 7
juncai@, you can run something like this to get a symbolized stack: adb logcat -d | third_party/android_platform/development/scripts/stack --output-directory out/Debug My build is a few weeks old, but I do see a crash when going to that page that lines up with what juncai@ was seeing. Here is my symbolized stack: 0013a64d base::debug::BreakDebugger() ../../base/debug/debugger_posix.cc:258:0 000dfa85 logging::LogMessage::~LogMessage() ../../base/logging.cc:865:7 0041ec6d blink::StaticBitmapImage::CopyToTexture(gpu::gles2::GLES2Interface*, unsigned int, unsigned int, bool, bool, blink::IntPoint const&, blink::IntRect const&) ../../third_party/blink/renderer/platform/graphics/static_bitmap_image.h:83:5 00615263 blink::WebGLRenderingContextBase::TexImageCanvasByGPU(blink::WebGLRenderingContextBase::TexImageFunctionID, blink::HTMLCanvasElement*, unsigned int, unsigned int, int, int, blink::IntRect const&) ../../third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5125:29 00615411 blink::WebGLRenderingContextBase::TexImageByGPU(blink::WebGLRenderingContextBase::TexImageFunctionID, blink::WebGLTexture*, unsigned int, int, int, int, int, blink::CanvasImageSource*, blink::IntRect const&) ../../third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5197:7 00615807 blink::WebGLRenderingContextBase::TexImageHelperHTMLCanvasElement(blink::SecurityOrigin const*, blink::WebGLRenderingContextBase::TexImageFunctionID, unsigned int, int, int, unsigned int, unsigned int, int, int, int, blink::HTMLCanvasElement*, blink::IntRect const&, int, int, blink::ExceptionState&) ../../third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:0:7 00615b43 blink::WebGLRenderingContextBase::texImage2D(blink::ExecutionContext*, unsigned int, int, int, unsigned int, unsigned int, blink::HTMLCanvasElement*, blink::ExceptionState&) ../../third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5334:3 v------> blink::WebGLRenderingContextV8Internal::texImage2D4Method(v8::FunctionCallbackInfo<v8::Value> const&) gen/third_party/blink/renderer/bindings/modules/v8/v8_webgl_rendering_context.cc:2806:9 v------> blink::WebGLRenderingContextV8Internal::texImage2DMethod(v8::FunctionCallbackInfo<v8::Value> const&) gen/third_party/blink/renderer/bindings/modules/v8/v8_webgl_rendering_context.cc:2913:0 00430a11 blink::V8WebGLRenderingContext::texImage2DMethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) gen/third_party/blink/renderer/bindings/modules/v8/v8_webgl_rendering_context.cc:5725:0 00290ecf v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo*) ../../v8/src/api-arguments-inl.h:119:3 00290149 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) ../../v8/src/builtins/builtins-api.cc:109:36 0028f13b v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) ../../v8/src/builtins/builtins-api.cc:139:5 0028ee05 v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) ../../v8/src/builtins/builtins-api.cc:127:1 00ba2294 ??
,
Sep 7
Thanks billorr@. I got similar stack trace: [FATAL:static_bitmap_image.h(83)] Check failed: false. Stack Trace: RELADDR FUNCTION FILE:LINE 000d8c0f logging::LogMessage::~LogMessage() /src/chromium/src/base/logging.cc:599:29 00466f53 blink::StaticBitmapImage::CopyToTexture(gpu::gles2::GLES2Interface*, unsigned int, unsigned int, bool, bool, blink::IntPoint const&, blink::IntRect const&) /src/chromium/src/third_party/blink/renderer/platform/graphics/static_bitmap_image.h:83:5 0072d2a7 blink::WebGLRenderingContextBase::TexImageCanvasByGPU(blink::WebGLRenderingContextBase::TexImageFunctionID, blink::CanvasRenderingContextHost*, unsigned int, unsigned int, int, int, blink::IntRect const&) /src/chromium/src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5133:17 0072d4bd blink::WebGLRenderingContextBase::TexImageByGPU(blink::WebGLRenderingContextBase::TexImageFunctionID, blink::WebGLTexture*, unsigned int, int, int, int, int, blink::CanvasImageSource*, blink::IntRect const&) /src/chromium/src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5209:7 0072d8e9 blink::WebGLRenderingContextBase::TexImageHelperCanvasRenderingContextHost(blink::SecurityOrigin const*, blink::WebGLRenderingContextBase::TexImageFunctionID, unsigned int, int, int, unsigned int, unsigned int, int, int, int, blink::CanvasRenderingContextHost*, blink::IntRect const&, int, int, blink::ExceptionState&) /src/chromium/src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:0:0 0072dc4f blink::WebGLRenderingContextBase::texImage2D(blink::ExecutionContext*, unsigned int, int, int, unsigned int, unsigned int, blink::CanvasRenderingContextHost*, blink::ExceptionState&) /src/chromium/src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5359:3 v------> blink::WebGLRenderingContextV8Internal::texImage2DMethod(v8::FunctionCallbackInfo<v8::Value> const&) /src/chromium/src/out/Android/gen/third_party/blink/renderer/bindings/modules/v8/v8_webgl_rendering_context.cc:0:0 0053b19d blink::V8WebGLRenderingContext::texImage2DMethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) /src/chromium/src/out/Android/gen/third_party/blink/renderer/bindings/modules/v8/v8_webgl_rendering_context.cc:5826:0 0029a5e3 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo*) /src/chromium/src/v8/src/api-arguments-inl.h:140:3 0029985b v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) /src/chromium/src/v8/src/builtins/builtins-api.cc:109:36 0029884d v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) /src/chromium/src/v8/src/builtins/builtins-api.cc:139:5 0029851b v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) /src/chromium/src/v8/src/builtins/builtins-api.cc:127:1 00beff57 ?? ??:0:0
,
Sep 7
I'm pretty sure this is a duplicate of Issue 878545 . I'm in the process of refactoring the associated texture uploading code to handle the case where the incoming image is software backed rather than texture backed. The per-revision bisect seems likely wrong. This bisect: https://bugs.chromium.org/p/chromium/issues/detail?id=878545#c5 yielded the following result: You are probably looking for a change made after 574613 (known good), but no later than 574614 (first known bad). CHANGELOG URL: The script might not always return single CL as suspect as some perf builds might get missing due to failure. https://chromium.googlesource.com/chromium/src/+log/a875a2ea21d8a321295a11440c80af01bcf7fa86..f8b8872f2080130c2b5bdf026f32f46aad7598da Specifically: Refactor canvas code to centralize CanvasResourceProvider ownership https://chromium-review.googlesource.com/1134182
,
Sep 11
,
Sep 14
The fix for Issue 878545 will be in Canary 71.0.3552.2, which doesn't seem to be out for Android yet. Please test with that version when it comes out, and update this bug with your testing results. Thanks. Also, submitter, please test with Chrome Beta and report bugs earlier so that we can have a chance of fixing them before they ship to Stable. Thanks.
,
Sep 14
Actually, it looks like 71.0.3552.0 (Official Build) canary (32-bit) contains the fix. It loads and runs the page successfully, while on 70.0.3538.15 (Official Build) dev (32-bit), the screen goes black after a second or two. Duplicating this into Issue 878545 .
,
Sep 14
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by rsesek@chromium.org
, Sep 5