| Index: chrome/browser/printing/print_preview_dialog_controller.cc
|
| diff --git a/chrome/browser/printing/print_preview_dialog_controller.cc b/chrome/browser/printing/print_preview_dialog_controller.cc
|
| index 9661c7fb05207bb673d1549fceab801ca2a6dea8..3ec3df13e803bf8fa2fb4025faf98b15b7371cff 100644
|
| --- a/chrome/browser/printing/print_preview_dialog_controller.cc
|
| +++ b/chrome/browser/printing/print_preview_dialog_controller.cc
|
| @@ -183,6 +183,14 @@ WebContents* PrintPreviewDialogController::GetOrCreatePreviewDialog(
|
|
|
| WebContents* PrintPreviewDialogController::GetPrintPreviewForContents(
|
| WebContents* contents) const {
|
| + // If this WebContents relies on another for its preview dialog, we
|
| + // need to act as if we are looking for the proxied content's dialog.
|
| + PrintPreviewDialogMap::const_iterator proxied =
|
| + proxied_dialog_map_.find(contents);
|
| + if (proxied != proxied_dialog_map_.end()) {
|
| + contents = proxied->second;
|
| + }
|
| +
|
| // |preview_dialog_map_| is keyed by the preview dialog, so if find()
|
| // succeeds, then |contents| is the preview dialog.
|
| PrintPreviewDialogMap::const_iterator it = preview_dialog_map_.find(contents);
|
| @@ -378,6 +386,17 @@ WebContents* PrintPreviewDialogController::CreatePrintPreviewDialog(
|
| return preview_dialog;
|
| }
|
|
|
| +void PrintPreviewDialogController::AddProxyDialogForWebContents(
|
| + WebContents* source,
|
| + WebContents* target) {
|
| + proxied_dialog_map_[source] = target;
|
| +}
|
| +
|
| +void PrintPreviewDialogController::RemoveProxyDialogForWebContents(
|
| + WebContents* source) {
|
| + proxied_dialog_map_.erase(source);
|
| +}
|
| +
|
| void PrintPreviewDialogController::SaveInitiatorTitle(
|
| WebContents* preview_dialog) {
|
| WebContents* initiator = GetInitiator(preview_dialog);
|
|
|