Lightly spoon flour into a dry measuring cup; level with a knife. Combine flour, salt, and pepper in a large bowl.
Combine 1 cup water and butter in a medium saucepan; bring to a boil over medium-high heat. Add flour mixture, and stir constantly with a wooden spoon until mixture forms a ball and pulls away from the sides of the pan (about 30 seconds). Cook for 1 minute, stirring constantly. Remove from heat. Transfer flour mixture to a large bowl.
Add eggs, 1 at a time, beating well with a mixer after each addition. Add egg whites, 1 at a time, beating well after each addition. Stir in onions and salmon.
Spoon salmon mixture by rounded teaspoonfuls 1 inch apart on a baking sheet coated with cooking spray. Bake at 425° for 10 minutes.
Reduce oven temperature to 350° (do not remove puffs from oven). Bake an additional 20 minutes or until puffs have risen, lightly browned, and feel dry on the top and bottom. Remove from pan; cool completely on wire racks.