Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(621)

Issue 12483004: Merge 185956 (Closed)

Created:
7 years, 9 months ago by robertshield
Modified:
7 years, 9 months ago
Reviewers:
ananta
CC:
chromium-reviews, grt+watch_chromium.org, amit
Visibility:
Public.

Description

Merge 185956 > Fix a crash seen in ChromeFrame when opening a non CF top level tab from a CF page. > > This was a regression caused by the fix for bug http://code.google.com/p/chromium/issues/detail?id=168308 > which was to not invalidate the protocol sink mapping for CF pages which are switched in from IE. > > The crash in this case occurs because the protocol sink mapping is removed in the call to IInternetProtocol::Terminate > as this is treated as a ChromeFrame request. This is only a temporary CF url which eventually transitions to > the actual URL which is opened in IE. For the curious we intercept IInternetProtocol::LockRequest and for > the special gcf://attach_external_tab requests we addref the protocol data and return without calling the original > LockRequest API. When UnlockRequest is invoked we rely on the protocol data mapping to exist to release the > protocol data and return without calling the original UnlockRequest API. > > In this case the sequence is IInternetProtocol::LockRequest, IInternetProtocolRoot::Terminate followed by > IInternetProtocol::UnlockRequest. In our terminate handler we remove the protocol data mapping for the attach tab > request. When UnlockRequest is called we call the original API and end up crashing. > > Fix is to not invalidate the protocol data mapping for attach tab requests. > > A test for this is in the works by robertshield. > > BUG=178415 > R=robertshield > Review URL: https://chromiumcodereview.appspot.com/12395021 TBR=ananta@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186289

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+16 lines, -3 lines) Patch
M chrome_frame/protocol_sink_wrap.cc View 1 chunk +16 lines, -3 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
robertshield
7 years, 9 months ago (2013-03-06 00:19:43 UTC) #1
robertshield
7 years, 9 months ago (2013-03-06 00:19:50 UTC) #2
Message was sent while issue was closed.
Committed patchset #1 manually as r186289.

Powered by Google App Engine
This is Rietveld 408576698