|
|
Created:
4 years, 1 month ago by tibell Modified:
3 years, 10 months ago Reviewers:
Sam McNally, leonhsl(Using Gerrit), groby-ooo-7-16, dcheng, Vitaly Buka (NO REVIEWS) CC:
chromium-reviews, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, jam, yzshen+watch_chromium.org, abarth-chromium, Aaron Boodman, darin-cc_chromium.org, darin (slow to review), rbpotter, skau Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionConvert printing IPCs to Mojo
BUG=577685
Patch Set 1 #Patch Set 2 : Don't conditionally define param traits #Patch Set 3 : Move components/printing/public to components/printing/common #Patch Set 4 : Remove unused Send function #Patch Set 5 : Update Windows-only code #Patch Set 6 : Fix Windows compile errors #Patch Set 7 : Add missing namespace prefix #Patch Set 8 : Merge #Patch Set 9 : common_custom_types.mojom moved #Patch Set 10 : Left-over merge #Patch Set 11 : Add global font pre cacher needed for pdf callback #Patch Set 12 : Add missing win-only dep #Patch Set 13 : Add more win-only deps #Patch Set 14 : git cl format #
Total comments: 10
Patch Set 15 : Address sammc's review comments #Patch Set 16 : Change callback arg #Patch Set 17 : Keep PdfToEmfUtilityProcessHostClient ref-counted #Patch Set 18 : Fix windows compile error #
Total comments: 13
Patch Set 19 : Address groby's review comments #Patch Set 20 : Add TODO for conditionally-defined messages #Patch Set 21 : Merge #Patch Set 22 : Follow mojo::GetProxy rename #
Total comments: 27
Patch Set 23 : Address sammc's review comments #
Total comments: 6
Patch Set 24 : Fix Windows compilation errors #Patch Set 25 : Address review comments #Patch Set 26 : Fix more Windows compile errors #
Total comments: 2
Created: 3 years, 11 months ago
Messages
Total messages: 174 (120 generated)
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...)
Don't conditionally define param traits
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_clang_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_clan...) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
Move components/printing/public to components/printing/common
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: chromeos_x86-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_x86-ge...)
Remove unused Send function
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_clang on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_clang/builds/...)
Update Windows-only code
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_compile_dbg_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_comp...)
Fix Windows compile errors
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
Add missing namespace prefix
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...) ios-simulator-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-xco...)
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...) chromeos_daisy_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_daisy_...) linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
Merge
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
common_custom_types.mojom moved
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Left-over merge
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Add global font pre cacher needed for pdf callback
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
Add missing win-only dep
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Add more win-only deps
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
git cl format
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
tibell@chromium.org changed reviewers: + gene@chromium.org, mbarbella@google.com, sammc@chromium.org
This moves printing IPCs to Mojo (we're converting all old IPCs to Mojo). Sam, please review all Mojo related changes and changes to mojo/ Gene, please review changes to printing code (or let me know if someone else would be more appropriate). Martin, please check IPC changes for security.
Description was changed from ========== Convert printing IPCs to Mojo BUG= ========== to ========== Convert printing IPCs to Mojo ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
tibell@chromium.org changed reviewers: + mbarbella@chromium.org - mbarbella@google.com
https://codereview.chromium.org/2477283002/diff/260001/chrome/browser/printin... File chrome/browser/printing/pdf_to_emf_converter.cc (right): https://codereview.chromium.org/2477283002/diff/260001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:107: class PdfToEmfUtilityProcessHostClient Consider using UtilityProcessMojoClient to abstract utility process lifetime management. https://codereview.chromium.org/2477283002/diff/260001/chrome/service/service... File chrome/service/service_utility_process_host.h (right): https://codereview.chromium.org/2477283002/diff/260001/chrome/service/service... chrome/service/service_utility_process_host.h:119: printing::mojom::PrintingPtr printing_; Why is this protected? https://codereview.chromium.org/2477283002/diff/260001/components/printing/co... File components/printing/common/printing.mojom (right): https://codereview.chromium.org/2477283002/diff/260001/components/printing/co... components/printing/common/printing.mojom:41: handle input_pdf_file, Use mojo.common.mojom.File for passing files around. https://codereview.chromium.org/2477283002/diff/260001/components/printing/co... components/printing/common/printing.mojom:79: RenderPDFPagesToMetafilesStop(); Why not use the closing of the connection to indicate that it should stop? https://codereview.chromium.org/2477283002/diff/260001/content/common/typemap... File content/common/typemaps_win.gni (right): https://codereview.chromium.org/2477283002/diff/260001/content/common/typemap... content/common/typemaps_win.gni:1: # Copyright 2016 The Chromium Authors. All rights reserved. Remove this file?
Address sammc's review comments
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
PTAL https://codereview.chromium.org/2477283002/diff/260001/chrome/browser/printin... File chrome/browser/printing/pdf_to_emf_converter.cc (right): https://codereview.chromium.org/2477283002/diff/260001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:107: class PdfToEmfUtilityProcessHostClient On 2016/12/12 06:09:20, Sam McNally wrote: > Consider using UtilityProcessMojoClient to abstract utility process lifetime > management. Done. https://codereview.chromium.org/2477283002/diff/260001/chrome/service/service... File chrome/service/service_utility_process_host.h (right): https://codereview.chromium.org/2477283002/diff/260001/chrome/service/service... chrome/service/service_utility_process_host.h:119: printing::mojom::PrintingPtr printing_; On 2016/12/12 06:09:20, Sam McNally wrote: > Why is this protected? Done. https://codereview.chromium.org/2477283002/diff/260001/components/printing/co... File components/printing/common/printing.mojom (right): https://codereview.chromium.org/2477283002/diff/260001/components/printing/co... components/printing/common/printing.mojom:41: handle input_pdf_file, On 2016/12/12 06:09:20, Sam McNally wrote: > Use mojo.common.mojom.File for passing files around. Done. https://codereview.chromium.org/2477283002/diff/260001/components/printing/co... components/printing/common/printing.mojom:79: RenderPDFPagesToMetafilesStop(); On 2016/12/12 06:09:20, Sam McNally wrote: > Why not use the closing of the connection to indicate that it should stop? Done. https://codereview.chromium.org/2477283002/diff/260001/content/common/typemap... File content/common/typemaps_win.gni (right): https://codereview.chromium.org/2477283002/diff/260001/content/common/typemap... content/common/typemaps_win.gni:1: # Copyright 2016 The Chromium Authors. All rights reserved. On 2016/12/12 06:09:20, Sam McNally wrote: > Remove this file? Done. Initially I thought of following the pattern in chromium_bindings_configuration.gni but the extra layer of files seemed unnecessary.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_compile_dbg_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_comp...)
Change callback arg
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
Keep PdfToEmfUtilityProcessHostClient ref-counted
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_compile_dbg_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_comp...) win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
Fix windows compile error
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
groby@chromium.org changed reviewers: + groby@chromium.org
Thank you for tackling this! Added a few quick drive-by comments. https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... File chrome/service/service_utility_process_host.cc (right): https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... chrome/service/service_utility_process_host.cc:319: Does this still need to be an IPC::Listener? https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... chrome/service/service_utility_process_host.cc:453: // We don't care about calls to FontPreCaching so we pass a null pointer for This comment seems out of date? https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... File chrome/utility/printing_handler.cc (right): https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:65: g_font_pre_caching = nullptr; I have no idea what the threading implications around the font precaching being called from pdfium - just to be sure, I'd suggest calling chrome_pdf::SetPDFEnsureTypefaceCharactersAccessible(nullptr) first. (It likely should never be called once this DTOR is hit - if that's true, then we should DCHECK in PreCacheFontCharacters instead of using the if()) https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:68: bool PrintingHandler::OnMessageReceived(const IPC::Message& message) { Do we still need this? Technically, this is not a message handler any more, is it? https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:88: void PrintingHandler::RenderPDFPagesToMetafiles( This seems kind of odd from a non-mojo-educated point of view. We used to have a fairly strict stance from security folk that if a message doesn't do anything for a given platform, it shouldn't have a handler in the first place. (Hence the #ifdef OS_WIN) Have we changed that stance with mojo? https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:306: void PrintingHandler::GetPrinterSemanticCapsAndDefaults( Same comment as above - I'd be much happier if the print preview used a separate mojo interface that simply isn't present if print preview doesn't exist.
groby@chromium.org changed reviewers: + groby@chromium.org
Thank you for tackling this! Added a few quick drive-by comments.
vitalybuka@chromium.org changed reviewers: + vitalybuka@chromium.org
Address groby's review comments
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
tibell@chromium.org changed reviewers: + dcheng@chromium.org - mbarbella@chromium.org
PTAL https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... File chrome/service/service_utility_process_host.cc (right): https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... chrome/service/service_utility_process_host.cc:319: On 2016/12/14 17:28:29, groby wrote: > Does this still need to be an IPC::Listener? Unfortunately OnMessageReceived is defined pure virtual (by inheritance) in ChildProcessHostDelegate, which we inherit from since we use other methods from that class, so we're forced to define it here. https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... chrome/service/service_utility_process_host.cc:453: // We don't care about calls to FontPreCaching so we pass a null pointer for On 2016/12/14 17:28:29, groby wrote: > This comment seems out of date? printing::mojom::FontPreCachingPtr() does create a "null" interface pointer. I have reworded the comment to make that more clear. https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... File chrome/utility/printing_handler.cc (right): https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:65: g_font_pre_caching = nullptr; On 2016/12/14 17:28:29, groby wrote: > I have no idea what the threading implications around the font precaching being > called from pdfium - just to be sure, I'd suggest calling > chrome_pdf::SetPDFEnsureTypefaceCharactersAccessible(nullptr) first. > > (It likely should never be called once this DTOR is hit - if that's true, then > we should DCHECK in PreCacheFontCharacters instead of using the if()) Addressed the first paragraph. I don't know the code well enough (i.e. at all :)) to address the second paragraph. Could we punt on adding the DCHECK to someone who understands this code/chrome_pdf better? That would mean that we're keeping whatever the current behavior is. https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:68: bool PrintingHandler::OnMessageReceived(const IPC::Message& message) { On 2016/12/14 17:28:29, groby wrote: > Do we still need this? Technically, this is not a message handler any more, is > it? Done. https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:88: void PrintingHandler::RenderPDFPagesToMetafiles( On 2016/12/14 17:28:29, groby wrote: > This seems kind of odd from a non-mojo-educated point of view. > > We used to have a fairly strict stance from security folk that if a message > doesn't do anything for a given platform, it shouldn't have a handler in the > first place. (Hence the #ifdef OS_WIN) > > Have we changed that stance with mojo? I will bring this up during the Mojo meeting today to see if we can define a policy. In the mean time I've changed the NOTREACHED macros to mojo::ReportBadMessage, which will kill this process and report the error to the caller if a bad message is received. Somewhat more philosophically: Mojo doesn't support conditionally defining methods and I don't think we want it to (at least not using the C preprocessor). We're trying to move to a service architecture with coherent services and interfaces and conditional interfaces can be confusing to use and it's hard to know what it means if the client and service were compiled on different platforms. It is possible to conditionally define interfaces (using build system ifs on the mojom targets) so it is possible to split out OS-specific messages to a different interface, but see previous paragraph. https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:306: void PrintingHandler::GetPrinterSemanticCapsAndDefaults( On 2016/12/14 17:28:29, groby wrote: > Same comment as above - I'd be much happier if the print preview used a separate > mojo interface that simply isn't present if print preview doesn't exist. If print preview does make sense as a separate interface (regardless of OS-specific concerns) we should probably split it out. Would such an interface make sense even if the rest of the printing functionality wasn't available?
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
tibell@chromium.org changed reviewers: - gene@chromium.org
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Add TODO for conditionally-defined messages
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
On 2016/12/14 23:12:19, tibell wrote: > PTAL > > https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... > File chrome/service/service_utility_process_host.cc (right): > > https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... > chrome/service/service_utility_process_host.cc:319: > On 2016/12/14 17:28:29, groby wrote: > > Does this still need to be an IPC::Listener? > > Unfortunately OnMessageReceived is defined pure virtual (by inheritance) in > ChildProcessHostDelegate, which we inherit from since we use other methods from > that class, so we're forced to define it here. > > https://codereview.chromium.org/2477283002/diff/340001/chrome/service/service... > chrome/service/service_utility_process_host.cc:453: // We don't care about calls > to FontPreCaching so we pass a null pointer for > On 2016/12/14 17:28:29, groby wrote: > > This comment seems out of date? > > printing::mojom::FontPreCachingPtr() does create a "null" interface pointer. I > have reworded the comment to make that more clear. > > https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... > File chrome/utility/printing_handler.cc (right): > > https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... > chrome/utility/printing_handler.cc:65: g_font_pre_caching = nullptr; > On 2016/12/14 17:28:29, groby wrote: > > I have no idea what the threading implications around the font precaching > being > > called from pdfium - just to be sure, I'd suggest calling > > chrome_pdf::SetPDFEnsureTypefaceCharactersAccessible(nullptr) first. > > > > (It likely should never be called once this DTOR is hit - if that's true, then > > we should DCHECK in PreCacheFontCharacters instead of using the if()) > > Addressed the first paragraph. > > I don't know the code well enough (i.e. at all :)) to address the second > paragraph. Could we punt on adding the DCHECK to someone who understands this > code/chrome_pdf better? That would mean that we're keeping whatever the current > behavior is. > > https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... > chrome/utility/printing_handler.cc:68: bool > PrintingHandler::OnMessageReceived(const IPC::Message& message) { > On 2016/12/14 17:28:29, groby wrote: > > Do we still need this? Technically, this is not a message handler any more, is > > it? > > Done. > > https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... > chrome/utility/printing_handler.cc:88: void > PrintingHandler::RenderPDFPagesToMetafiles( > On 2016/12/14 17:28:29, groby wrote: > > This seems kind of odd from a non-mojo-educated point of view. > > > > We used to have a fairly strict stance from security folk that if a message > > doesn't do anything for a given platform, it shouldn't have a handler in the > > first place. (Hence the #ifdef OS_WIN) > > > > Have we changed that stance with mojo? > > I will bring this up during the Mojo meeting today to see if we can define a > policy. > > In the mean time I've changed the NOTREACHED macros to mojo::ReportBadMessage, > which will kill this process and report the error to the caller if a bad message > is received. > > Somewhat more philosophically: > > Mojo doesn't support conditionally defining methods and I don't think we want it > to (at least not using the C preprocessor). We're trying to move to a service > architecture with coherent services and interfaces and conditional interfaces > can be confusing to use and it's hard to know what it means if the client and > service were compiled on different platforms. > > It is possible to conditionally define interfaces (using build system ifs on the > mojom targets) so it is possible to split out OS-specific messages to a > different interface, but see previous paragraph. > > https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... > chrome/utility/printing_handler.cc:306: void > PrintingHandler::GetPrinterSemanticCapsAndDefaults( > On 2016/12/14 17:28:29, groby wrote: > > Same comment as above - I'd be much happier if the print preview used a > separate > > mojo interface that simply isn't present if print preview doesn't exist. > > If print preview does make sense as a separate interface (regardless of > OS-specific concerns) we should probably split it out. Would such an interface > make sense even if the rest of the printing functionality wasn't available? PTAL Added a TODO while we wait for preprocessing support to be implemented in Mojo. In the mean time I'd like to processed to get this CL submitted.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Convert printing IPCs to Mojo ========== to ========== Convert printing IPCs to Mojo BUG=577685 ==========
https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... File chrome/utility/printing_handler.cc (right): https://codereview.chromium.org/2477283002/diff/340001/chrome/utility/printin... chrome/utility/printing_handler.cc:88: void PrintingHandler::RenderPDFPagesToMetafiles( On 2016/12/14 23:12:19, tibell wrote: > On 2016/12/14 17:28:29, groby wrote: > > This seems kind of odd from a non-mojo-educated point of view. > > > > We used to have a fairly strict stance from security folk that if a message > > doesn't do anything for a given platform, it shouldn't have a handler in the > > first place. (Hence the #ifdef OS_WIN) > > > > Have we changed that stance with mojo? > > I will bring this up during the Mojo meeting today to see if we can define a > policy. > > In the mean time I've changed the NOTREACHED macros to mojo::ReportBadMessage, > which will kill this process and report the error to the caller if a bad message > is received. > > Somewhat more philosophically: > > Mojo doesn't support conditionally defining methods and I don't think we want it > to (at least not using the C preprocessor). We're trying to move to a service > architecture with coherent services and interfaces and conditional interfaces > can be confusing to use and it's hard to know what it means if the client and > service were compiled on different platforms. > > It is possible to conditionally define interfaces (using build system ifs on the > mojom targets) so it is possible to split out OS-specific messages to a > different interface, but see previous paragraph. > We've now discussed this (https://groups.google.com/a/chromium.org/forum/#!topic/chromium-mojo/BfvXCPBpcUs). We will add technical support for preprocessing mojoms. Until that has been implemented I will add a TODO and keep this as is (I took this pattern from existing platform-specific Mojo code).
Merge
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
Follow mojo::GetProxy rename
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Friendly ping to all reviewers. I still need your reviews. :)
https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... File chrome/browser/printing/pdf_to_emf_converter.cc (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:321: utility_client_.reset( Prefer base::MakeUnique over std::unique_ptr::reset(). https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:351: start_callback_.Run(page_count); base::ResetAndReturn(&start_callback_).Run(page_count); from base/callback_helpers.h https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:406: void PdfToEmfUtilityProcessHostClient::PreCacheFontCharacters( Is the UI thread the right place to be doing this? https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... File chrome/browser/printing/pwg_raster_converter.cc (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pwg_raster_converter.cc:31: #include "mojo/public/cpp/system/platform_handle.h" Remove. https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pwg_raster_converter.cc:200: utility_process_host->SetName( I suspect this could also be simplified by using UtilityProcessMojoClient. https://codereview.chromium.org/2477283002/diff/410001/chrome/service/DEPS File chrome/service/DEPS (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/service/DEPS#ne... chrome/service/DEPS:9: "+services/service_manager", /public https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... File chrome/service/service_utility_process_host.cc (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... chrome/service/service_utility_process_host.cc:39: #include "mojo/public/cpp/system/platform_handle.h" Remove. https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... File chrome/service/service_utility_process_host.h (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... chrome/service/service_utility_process_host.h:156: printing::mojom::Printing* printing(); Methods before fields, and GetPrinting() if you aren't going to inline it. https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... chrome/service/service_utility_process_host.h:157: printing::mojom::PrintingPtr printing_; Add a comment to use the accessor method instead. https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... File components/printing/common/printing.mojom (right): https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... components/printing/common/printing.mojom:1: // Copyright 2016 The Chromium Authors. All rights reserved. Happy new year! https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... components/printing/common/printing.mojom:69: // TODO(tibell): Use a null |page_count| for failure. I don't think primitive types are nullable. https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... File components/printing/common/printing_param_traits.h (right): https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... components/printing/common/printing_param_traits.h:1: // Copyright 2014 The Chromium Authors. All rights reserved. 2014? https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... File components/printing/common/printing_param_traits_macros.h (right): https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... components/printing/common/printing_param_traits_macros.h:14: #include "ipc/ipc_platform_file.h" Remove?
Address sammc's review comments
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
PTAL https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... File chrome/browser/printing/pdf_to_emf_converter.cc (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:321: utility_client_.reset( On 2017/01/05 06:23:15, Sam McNally wrote: > Prefer base::MakeUnique over std::unique_ptr::reset(). Done. https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:351: start_callback_.Run(page_count); On 2017/01/05 06:23:15, Sam McNally wrote: > base::ResetAndReturn(&start_callback_).Run(page_count); > from base/callback_helpers.h Done. https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:406: void PdfToEmfUtilityProcessHostClient::PreCacheFontCharacters( On 2017/01/05 06:23:15, Sam McNally wrote: > Is the UI thread the right place to be doing this? Done. https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... File chrome/browser/printing/pwg_raster_converter.cc (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pwg_raster_converter.cc:31: #include "mojo/public/cpp/system/platform_handle.h" On 2017/01/05 06:23:15, Sam McNally wrote: > Remove. Done. https://codereview.chromium.org/2477283002/diff/410001/chrome/browser/printin... chrome/browser/printing/pwg_raster_converter.cc:200: utility_process_host->SetName( On 2017/01/05 06:23:15, Sam McNally wrote: > I suspect this could also be simplified by using UtilityProcessMojoClient. Added TODO. https://codereview.chromium.org/2477283002/diff/410001/chrome/service/DEPS File chrome/service/DEPS (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/service/DEPS#ne... chrome/service/DEPS:9: "+services/service_manager", On 2017/01/05 06:23:15, Sam McNally wrote: > /public Done. https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... File chrome/service/service_utility_process_host.cc (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... chrome/service/service_utility_process_host.cc:39: #include "mojo/public/cpp/system/platform_handle.h" On 2017/01/05 06:23:15, Sam McNally wrote: > Remove. Done. https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... File chrome/service/service_utility_process_host.h (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... chrome/service/service_utility_process_host.h:156: printing::mojom::Printing* printing(); On 2017/01/05 06:23:15, Sam McNally wrote: > Methods before fields, and GetPrinting() if you aren't going to inline it. Done. https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... chrome/service/service_utility_process_host.h:157: printing::mojom::PrintingPtr printing_; On 2017/01/05 06:23:15, Sam McNally wrote: > Add a comment to use the accessor method instead. Done. https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... File components/printing/common/printing.mojom (right): https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... components/printing/common/printing.mojom:1: // Copyright 2016 The Chromium Authors. All rights reserved. On 2017/01/05 06:23:15, Sam McNally wrote: > Happy new year! Done. https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... components/printing/common/printing.mojom:69: // TODO(tibell): Use a null |page_count| for failure. On 2017/01/05 06:23:15, Sam McNally wrote: > I don't think primitive types are nullable. Done. https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... File components/printing/common/printing_param_traits.h (right): https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... components/printing/common/printing_param_traits.h:1: // Copyright 2014 The Chromium Authors. All rights reserved. On 2017/01/05 06:23:15, Sam McNally wrote: > 2014? Blast from the past! (Done) https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... File components/printing/common/printing_param_traits_macros.h (right): https://codereview.chromium.org/2477283002/diff/410001/components/printing/co... components/printing/common/printing_param_traits_macros.h:14: #include "ipc/ipc_platform_file.h" On 2017/01/05 06:23:15, Sam McNally wrote: > Remove? Done.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: chromeos_daisy_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_daisy_...)
lgtm https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... File chrome/service/service_utility_process_host.h (right): https://codereview.chromium.org/2477283002/diff/410001/chrome/service/service... chrome/service/service_utility_process_host.h:157: printing::mojom::PrintingPtr printing_; On 2017/01/12 03:30:15, tibell wrote: > On 2017/01/05 06:23:15, Sam McNally wrote: > > Add a comment to use the accessor method instead. > > Done. I don't see it. https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... File chrome/browser/printing/pdf_to_emf_converter.cc (right): https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:299: class FontPreCachingImpl : public mojom::FontPreCaching { This class seems bit scattered. https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... File chrome/browser/printing/pwg_raster_converter.cc (right): https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... chrome/browser/printing/pwg_raster_converter.cc:196: // TODO: Use UtilityProcessMojoClient to manage process lifetime instead. TODO(...)
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_compile_dbg_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_comp...)
https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... File chrome/browser/printing/pwg_raster_converter.cc (right): https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... chrome/browser/printing/pwg_raster_converter.cc:66: return pdf_file_.Duplicate(); does this guarantee that files will be deleted when both base::File are closed?
The CQ bit was checked by vitalybuka@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Can you please make win bots green? I'll try to apply and run the patch.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
Fix Windows compilation errors
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Address review comments
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_compile_dbg_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_comp...)
https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... File chrome/browser/printing/pdf_to_emf_converter.cc (right): https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... chrome/browser/printing/pdf_to_emf_converter.cc:299: class FontPreCachingImpl : public mojom::FontPreCaching { On 2017/01/12 04:49:53, Sam McNally wrote: > This class seems bit scattered. Done. https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... File chrome/browser/printing/pwg_raster_converter.cc (right): https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... chrome/browser/printing/pwg_raster_converter.cc:66: return pdf_file_.Duplicate(); On 2017/01/12 19:57:59, Vitaly Buka wrote: > does this guarantee that files will be deleted when both base::File are closed? Done. https://codereview.chromium.org/2477283002/diff/430001/chrome/browser/printin... chrome/browser/printing/pwg_raster_converter.cc:196: // TODO: Use UtilityProcessMojoClient to manage process lifetime instead. On 2017/01/12 04:49:53, Sam McNally wrote: > TODO(...) Done.
Fix more Windows compile errors
The CQ bit was checked by tibell@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Adding rbpotter@ as an FYI (feel free to chime in, though!)
leon.han@intel.com changed reviewers: + leon.han@intel.com
https://codereview.chromium.org/2477283002/diff/490001/chrome/service/service... File chrome/service/service_utility_process_host.cc (right): https://codereview.chromium.org/2477283002/diff/490001/chrome/service/service... chrome/service/service_utility_process_host.cc:451: child_process_host_->GetRemoteInterfaces()->GetInterface(&printing_factory); Hi, I came across here while checking some issue around service utility process, would you please help to clarify my confusion: I found service utility process is launched without service manager connection, it's launched via ChildProcessHostImpl but not BrowserChildProcessHostImpl, this is different with normal utility process. That is to say, there has no interface provider/registry pair established between ServiceUtilityProcessHost and ServiceUtilityProcess, here seems child_process_host_->GetRemoteInterfaces() would return nullptr? Thanks!
https://codereview.chromium.org/2477283002/diff/490001/chrome/service/service... File chrome/service/service_utility_process_host.cc (right): https://codereview.chromium.org/2477283002/diff/490001/chrome/service/service... chrome/service/service_utility_process_host.cc:451: child_process_host_->GetRemoteInterfaces()->GetInterface(&printing_factory); On 2017/01/18 03:35:29, leonhsl wrote: > Hi, I came across here while checking some issue around service utility process, > would you please help to clarify my confusion: > I found service utility process is launched without service manager connection, > it's launched via ChildProcessHostImpl but not BrowserChildProcessHostImpl, this > is different with normal utility process. That is to say, there has no interface > provider/registry pair established between ServiceUtilityProcessHost and > ServiceUtilityProcess, here seems child_process_host_->GetRemoteInterfaces() > would return nullptr? > > Thanks! The issue I'm investigating is https://bugs.chromium.org/p/chromium/issues/detail?id=680400, CL is https://codereview.chromium.org/2629873002/, that bug's root cause is service utility process has no service manager connection.
I patched this my checkout with this patch and can't print. E.g. printing to Microsoft XPS writer.
On 2017/01/19 03:18:22, Vitaly Buka wrote: > I patched this my checkout with this patch and can't print. > E.g. printing to Microsoft XPS writer. Could you please provide repro steps so I can better test this CL? Does testing it actually require a printer (will corp network printers work)?
Microsoft XPS means it's on Windows. No printer required. It's like printing to PDF On Wed, Jan 18, 2017, 7:43 PM <tibell@chromium.org> wrote: > On 2017/01/19 03:18:22, Vitaly Buka wrote: > > I patched this my checkout with this patch and can't print. > > E.g. printing to Microsoft XPS writer. > > Could you please provide repro steps so I can better test this CL? Does > testing > it actually require a printer (will corp network printers work)? > > https://codereview.chromium.org/2477283002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
On 2017/01/19 03:48:27, skau wrote: > Microsoft XPS means it's on Windows. No printer required. It's like > printing to PDF > Correct. 1. Run chrome. 2. ctrl+p 3. select "Microsoft XPS..." 4. print 5. now it should ask for output file with patch: no file created without patch: file is created Similar way cloud print needs to be verified: 1. Run chrome. 2. goto chrome:devices 3. Share Microsoft XPS printer 4. ctrl+p 5. Now select Cloud Printer -> "Microsoft XPS..." 6. print 7. now it should ask for output file
On 2017/01/19 04:01:23, Vitaly Buka wrote: > On 2017/01/19 03:48:27, skau wrote: > > Microsoft XPS means it's on Windows. No printer required. It's like > > printing to PDF > > > > Correct. > 1. Run chrome. > 2. ctrl+p > 3. select "Microsoft XPS..." > 4. print > 5. now it should ask for output file > > with patch: no file created > without patch: file is created > > Similar way cloud print needs to be verified: > 1. Run chrome. > 2. goto chrome:devices > 3. Share Microsoft XPS printer > 4. ctrl+p > 5. Now select Cloud Printer -> "Microsoft XPS..." > 6. print > 7. now it should ask for output file So, is this stalled out?
On 2017/02/15 01:39:30, groby wrote: > On 2017/01/19 04:01:23, Vitaly Buka wrote: > > On 2017/01/19 03:48:27, skau wrote: > > > Microsoft XPS means it's on Windows. No printer required. It's like > > > printing to PDF > > > > > > > Correct. > > 1. Run chrome. > > 2. ctrl+p > > 3. select "Microsoft XPS..." > > 4. print > > 5. now it should ask for output file > > > > with patch: no file created > > without patch: file is created > > > > Similar way cloud print needs to be verified: > > 1. Run chrome. > > 2. goto chrome:devices > > 3. Share Microsoft XPS printer > > 4. ctrl+p > > 5. Now select Cloud Printer -> "Microsoft XPS..." > > 6. print > > 7. now it should ask for output file > > So, is this stalled out? On my side, I'm waiting for conditional compilation in mojoms (which I think the Mojo team plans to implement, but I'm not sure what the status is)
On 2017/02/15 01:39:30, groby wrote: > On 2017/01/19 04:01:23, Vitaly Buka wrote: > > On 2017/01/19 03:48:27, skau wrote: > > > Microsoft XPS means it's on Windows. No printer required. It's like > > > printing to PDF > > > > > > > Correct. > > 1. Run chrome. > > 2. ctrl+p > > 3. select "Microsoft XPS..." > > 4. print > > 5. now it should ask for output file > > > > with patch: no file created > > without patch: file is created > > > > Similar way cloud print needs to be verified: > > 1. Run chrome. > > 2. goto chrome:devices > > 3. Share Microsoft XPS printer > > 4. ctrl+p > > 5. Now select Cloud Printer -> "Microsoft XPS..." > > 6. print > > 7. now it should ask for output file > > So, is this stalled out? This isn't on the top of my stack right now (I'm working on servicification) but I'll get back to it. Testing on Windows manually is a bit more work (I have to switch over to our shared Windows testing machine, patch the CL there, etc.)
On 2017/02/15 22:05:20, dcheng wrote: > On 2017/02/15 01:39:30, groby wrote: > > On 2017/01/19 04:01:23, Vitaly Buka wrote: > > > On 2017/01/19 03:48:27, skau wrote: > > > > Microsoft XPS means it's on Windows. No printer required. It's like > > > > printing to PDF > > > > > > > > > > Correct. > > > 1. Run chrome. > > > 2. ctrl+p > > > 3. select "Microsoft XPS..." > > > 4. print > > > 5. now it should ask for output file > > > > > > with patch: no file created > > > without patch: file is created > > > > > > Similar way cloud print needs to be verified: > > > 1. Run chrome. > > > 2. goto chrome:devices > > > 3. Share Microsoft XPS printer > > > 4. ctrl+p > > > 5. Now select Cloud Printer -> "Microsoft XPS..." > > > 6. print > > > 7. now it should ask for output file > > > > So, is this stalled out? > > On my side, I'm waiting for conditional compilation in mojoms (which I think the > Mojo team plans to implement, but I'm not sure what the status is) AFAIK no one is working or planning to work on this at the moment. We plan to go with the existing approach (i.e. what I did in this CL) until someone implements conditional compilation.
FYI, blundell@ expressed interest in helping with some bindings work. Besides, he actively participated in our discussion of conditional compilation. Maybe we could ask whether he has got free cycles? On Wed, Feb 15, 2017 at 3:22 PM, <tibell@chromium.org> wrote: > On 2017/02/15 22:05:20, dcheng wrote: > > On 2017/02/15 01:39:30, groby wrote: > > > On 2017/01/19 04:01:23, Vitaly Buka wrote: > > > > On 2017/01/19 03:48:27, skau wrote: > > > > > Microsoft XPS means it's on Windows. No printer required. It's like > > > > > printing to PDF > > > > > > > > > > > > > Correct. > > > > 1. Run chrome. > > > > 2. ctrl+p > > > > 3. select "Microsoft XPS..." > > > > 4. print > > > > 5. now it should ask for output file > > > > > > > > with patch: no file created > > > > without patch: file is created > > > > > > > > Similar way cloud print needs to be verified: > > > > 1. Run chrome. > > > > 2. goto chrome:devices > > > > 3. Share Microsoft XPS printer > > > > 4. ctrl+p > > > > 5. Now select Cloud Printer -> "Microsoft XPS..." > > > > 6. print > > > > 7. now it should ask for output file > > > > > > So, is this stalled out? > > > > On my side, I'm waiting for conditional compilation in mojoms (which I > think > the > > Mojo team plans to implement, but I'm not sure what the status is) > > AFAIK no one is working or planning to work on this at the moment. We plan > to go > with the existing approach (i.e. what I did in this CL) until someone > implements > conditional compilation. > > https://codereview.chromium.org/2477283002/ > -- Best regards, Yuzhu Shen. -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
On 2017/02/15 23:22:50, tibell wrote: > On 2017/02/15 22:05:20, dcheng wrote: > > On 2017/02/15 01:39:30, groby wrote: > > > On 2017/01/19 04:01:23, Vitaly Buka wrote: > > > > On 2017/01/19 03:48:27, skau wrote: > > > > > Microsoft XPS means it's on Windows. No printer required. It's like > > > > > printing to PDF > > > > > > > > > > > > > Correct. > > > > 1. Run chrome. > > > > 2. ctrl+p > > > > 3. select "Microsoft XPS..." > > > > 4. print > > > > 5. now it should ask for output file > > > > > > > > with patch: no file created > > > > without patch: file is created > > > > > > > > Similar way cloud print needs to be verified: > > > > 1. Run chrome. > > > > 2. goto chrome:devices > > > > 3. Share Microsoft XPS printer > > > > 4. ctrl+p > > > > 5. Now select Cloud Printer -> "Microsoft XPS..." > > > > 6. print > > > > 7. now it should ask for output file > > > > > > So, is this stalled out? > > > > On my side, I'm waiting for conditional compilation in mojoms (which I think > the > > Mojo team plans to implement, but I'm not sure what the status is) > > AFAIK no one is working or planning to work on this at the moment. We plan to go > with the existing approach (i.e. what I did in this CL) until someone implements > conditional compilation. That means I can stop feeling guilty about having this in my review list :) |