Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: cherry-pick 38ab9c5b06a4 from chromium #33887

Closed
wants to merge 6 commits into from

Conversation

ppontes
Copy link
Member

@ppontes ppontes commented Apr 21, 2022

[M96-LTS] Use IsErrorDocument() to prevent BFCacheing of interstitials and errors.

M96 merge issues:
Tests not present on M96:

  • back_forward_cache_basics_browsertest.cc
  • back_forward_cache_browsertest.h
  • back_forward_cache_internal_browsertest.cc
    chrome_track_event.proto:
  • changed code (tracing) doesn't exist on M96, discarded
    all changes
    back_forward_cache_browsertest.cc:
  • conflicting includes
  • removed NavigateAndBlock, which would be called on
    on back_forward_cache_browsertest.cc (not present in M96)
    page_handler.cc:
  • conflicting case statements on NotRestoredReasonToProtocol
    back_forward_cache_can_store_document_result.cc:
  • NotRestoredReasonToTraceEnum not present on M96
  • conflicting case statements on NotRestoredReasonToString
    back_forward_cache_metrics.h:
  • conflicting entries for NotRestoredReason enum

In the bug, a crash occurs because we try to cache an interstitial. We
catch some error documents via status codes etc but interstitials do
not consistently set those. Checking IsErrorDocument() is more reliable.

(cherry picked from commit 7a05b426c6c51254a08de9a8dee8db9c1911b9c9)

Bug: 1274308,1287996,1283050
Change-Id: Ifec662c169c77e33ca5dc4d56b0e42c8d71f1d97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3319862
Commit-Queue: Fergal Daly fergal@chromium.org
Cr-Original-Commit-Position: refs/heads/main@{#981026}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3577265
Reviewed-by: Fergal Daly fergal@chromium.org
Reviewed-by: Artem Sumaneev asumaneev@google.com
Owners-Override: Artem Sumaneev asumaneev@google.com
Commit-Queue: Roger Felipe Zanoni da Silva rzanoni@google.com
Cr-Commit-Position: refs/branch-heads/4664@{#1592}
Cr-Branched-From: 24dc4ee75e01a29d390d43c9c264372a169273a7-refs/heads/main@{#929512}

Notes: Backported fix for CVE-2022-1308.

@ppontes ppontes added security 🔒 semver/patch backwards-compatible bug fixes backport-check-skip Skip trop's backport validity checking 15-x-y labels Apr 21, 2022
@ppontes ppontes requested review from a team as code owners April 21, 2022 14:07
@ppontes ppontes changed the base branch from main to 15-x-y April 21, 2022 14:07
@ppontes ppontes force-pushed the cherry-pick/15-x-y/chromium/38ab9c5b06 branch from 405d493 to 962434a Compare April 21, 2022 14:09
@ppontes ppontes changed the title Cherry pick/15 x y/chromium/38ab9c5b06 chore: cherry-pick 57bdd90d8c from chromium Apr 21, 2022
@ppontes ppontes changed the title chore: cherry-pick 57bdd90d8c from chromium chore: cherry-pick 38ab9c5b06a4 from chromium Apr 21, 2022
@ppontes ppontes force-pushed the cherry-pick/15-x-y/chromium/38ab9c5b06 branch from 962434a to c856322 Compare April 21, 2022 14:12
Copy link
Member

@zcbenz zcbenz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build is failing:

/home/builduser/project/build-tools/third_party/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/content/browser/browser/back_forward_cache_impl.o.d -DDCHECK_ALWAYS_ON=1 -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-14-init-1002-gb5e470aa-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -D_LIBCPP_DEBUG=0 -DCR_LIBCXX_REVISION=79a2e924d96e2fc1e4b937c42efd08898fa472d7 -DCR_SYSROOT_HASH=b6f4bb07817bea91b06514a9c1e3832df5a90dbf -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DCONTENT_IMPLEMENTATION -DUSE_V8_CONTEXT_SNAPSHOT -DV8_CONTEXT_SNAPSHOT_FILENAME=\"v8_context_snapshot.bin\" -DV8_USE_EXTERNAL_STARTUP_DATA -DATK_LIB_DIR=\"/usr/lib/arm-linux-gnueabihf\" -DUSE_ATK_BRIDGE -DATSPI_MAJOR_VERSION=2 -DATSPI_MINOR_VERSION=38 -DATSPI_MICRO_VERSION=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DWEBP_EXTERN=extern -DGL_GLEXT_PROTOTYPES -DUSE_GLX -DUSE_EGL -DVK_USE_PLATFORM_XCB_KHR -D_WTL_NO_AUTOMATIC_NAMESPACE -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_ENABLE_SKSL -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_GL -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_HAS_WUFFS_LIBRARY -DSK_VULKAN_HEADER=\"../../skia/config/SkVulkanConfig.h\" -DSK_VULKAN=1 -DSK_SUPPORT_GPU=1 -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DCRASHPAD_ZLIB_SOURCE_EXTERNAL -DWEBRTC_ENABLE_AVX2 -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_BUILTIN_ISAC_FIX=1 -DWEBRTC_USE_BUILTIN_ISAC_FLOAT=0 -DWEBRTC_USE_X11 -DWEBRTC_HAVE_SCTP -DNO_MAIN_THREAD_WRAPPING -DLEVELDB_PLATFORM_CHROMIUM=1 -DI18N_ADDRESS_VALIDATION_DATA_URL=\"https://chromium-i18n.appspot.com/ssl-aggregate-address/\" -DV8_DEPRECATION_WARNINGS -DANGLE_USE_ABSEIL -DSQLITE_OMIT_ANALYZE -DSQLITE_OMIT_AUTOINIT -DSQLITE_OMIT_AUTOMATIC_INDEX -DSQLITE_OMIT_AUTORESET -DSQLITE_OMIT_COMPILEOPTION_DIAGS -DSQLITE_OMIT_COMPLETE -DSQLITE_OMIT_EXPLAIN -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_INTROSPECTION_PRAGMAS -DSQLITE_DEFAULT_LOOKASIDE=0,0 -DSQLITE_OMIT_LOOKASIDE -DSQLITE_OMIT_TCL_VARIABLE -DSQLITE_OMIT_REINDEX -DSQLITE_OMIT_TRACE -DSQLITE_OMIT_UPSERT -DSQLITE_OMIT_WINDOWFUNC -DSQLITE_ENABLE_FTS3 -DSQLITE_DISABLE_FTS3_UNICODE -DSQLITE_DISABLE_FTS4_DEFERRED -DSQLITE_ENABLE_ICU -DSQLITE_SECURE_DELETE -DSQLITE_THREADSAFE=1 -DSQLITE_MAX_WORKER_THREADS=0 -DSQLITE_MAX_MMAP_SIZE=268435456 -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 -DSQLITE_DEFAULT_LOCKING_MODE=1 -DSQLITE_DEFAULT_MEMSTATUS=1 -DSQLITE_DEFAULT_PAGE_SIZE=4096 -DSQLITE_DEFAULT_PCACHE_INITSZ=0 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_USE_ALLOCA -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_HAVE_ISNAN -DSQLITE_ENABLE_BATCH_ATOMIC_WRITE -DSQLITE_TEMP_STORE=3 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_ENABLE_API_ARMOR -DFLAC__NO_DLL -DVK_NO_PROTOTYPES -DUSE_VULKAN_XCB -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../third_party/libwebp/src -I../../third_party/vulkan-deps/vulkan-headers/src/include -Igen/third_party/dawn/src/include -I../../third_party/dawn/src/include -I../../third_party/khronos -I../../gpu -I../../third_party/libyuv/include -I../../third_party/jsoncpp/source/include -I../../third_party/wtl/include -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/mesa_headers -I../../third_party/crashpad/crashpad -I../../third_party/crashpad/crashpad/compat/linux -I../../third_party/crashpad/crashpad/compat/non_win -I../../third_party/zlib -Igen/net/third_party/quiche/src -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/common/platform/default -I../../net/third_party/quiche/src -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -I../../third_party/libwebm/source -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -Igen/third_party/metrics_proto -I../../third_party/libaddressinput/src/cpp/include -I../../v8/include -Igen/v8/include -I../../third_party/angle/src/common/third_party/base -Igen/angle -I../../third_party/angle/include -I../../third_party/brotli/include -I../../third_party/re2/src -I../../third_party/fontconfig/src -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -fcomplete-member-pointers --target=arm-linux-gnueabihf -march=armv7-a -mfloat-abi=hard -mtune=generic-armv7-a -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -ffile-compilation-dir=. -no-canonical-prefixes -mfpu=neon -mthumb -Wall -Werror -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-inline-asm -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g1 -ftrivial-auto-var-init=pattern -fvisibility=hidden -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang raw-ptr-template-as-trivial-member -Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wshadow -Wexit-time-destructors -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/at-spi2-atk/2.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/at-spi-2.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/dbus-1.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/atk-1.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/glib-2.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/at-spi-2.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/dbus-1.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/glib-2.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/glib-2.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/pango-1.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/libmount -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/blkid -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/fribidi -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/harfbuzz -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/cairo -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/glib-2.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/pixman-1 -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/uuid -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/libpng16 -DPROTOBUF_ALLOW_DEPRECATED=1 -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/nss -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/nspr -isystem../../build/linux/debian_sid_arm-sysroot/usr/include/dbus-1.0 -isystem../../build/linux/debian_sid_arm-sysroot/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -std=c++14 -fno-trigraphs -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include --sysroot=../../build/linux/debian_sid_arm-sysroot -fvisibility-inlines-hidden -Wno-deprecated-declarations -c ../../content/browser/renderer_host/back_forward_cache_impl.cc -o obj/content/browser/browser/back_forward_cache_impl.o
../../content/browser/renderer_host/back_forward_cache_impl.cc:622:12: error: no member named 'IsErrorDocument' in 'content::RenderFrameHostImpl'
  if (rfh->IsErrorDocument())
      ~~~  ^
1 error generated.

Copy link
Contributor

@jkleinsc jkleinsc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Patch fails to build

@miniak
Copy link
Contributor

miniak commented May 24, 2022

Electron 15 is not supported anymore

@miniak miniak closed this May 24, 2022
@miniak miniak deleted the cherry-pick/15-x-y/chromium/38ab9c5b06 branch May 24, 2022 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
15-x-y backport-check-skip Skip trop's backport validity checking security 🔒 semver/patch backwards-compatible bug fixes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants