рдирдорд╕реНрддреЗ,
рдЬрдм рдореИрдВ рд╡рд┐рджреЗрд╢реА рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдкреАрдбреАрдПрдл рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИ
рддреНрд░реБрдЯрд┐: рдлрд╝рд╛рдЗрд▓ рдореВрд▓ рджрд░реНрд╢рдХ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА
рдирдИ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХреЗрдВ ('рдлрд╝рд╛рдЗрд▓ рдореВрд▓ рджрд░реНрд╢рдХ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА');
рдХреГрдкрдпрд╛ рд╕рд╣рд╛рдпрддрд╛ рдХреАрдЬрд┐рдП!
рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, #6916 рджреЗрдЦреЗрдВред HOSTED_VIEWER_ORIGINS рд╕реВрдЪреА рдореЗрдВ рдЕрдкрдиреЗ рд╣реЛрд╕реНрдЯ рдореВрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП viewer.js рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рдЙрддреНрддрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдирд╛ред
рдзрдиреНрдпрд╡рд╛рдж @yurydelendik
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЙрддреНрддрд░ рдореЗрд░реА рдХреИрд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИ
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЙрддреНрддрд░ рдореЗрд░реА рдХреИрд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИ
HOSTED_VIEWER_ORIGINS рд╕реВрдЪреА рдореЗрдВ рдЕрдкрдиреЗ рд╣реЛрд╕реНрдЯ рдореВрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП viewer.js рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред
рдореИрдВрдиреЗ рдпрд╣ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░реА рд░рд┐рдореЛрдЯ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП
рдореИрдВрдиреЗ рдпрд╣ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░реА рд░рд┐рдореЛрдЯ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП
рдХреГрдкрдпрд╛ рд╕рдордЭрд╛рдПрдБред рдХреНрдпрд╛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдореЗрд░реА рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХреНрд▓рд╛рдЙрдбрд┐рдирд░реА рдкрд░ рд╣реИред
рдФрд░ рдЬрдм рдореИрдВрдиреЗ рдПрдХреНрд╕реЗрд╕ рдХреЛ DEFAULT_URL рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдбрд╛рд▓рд╛, рддреЛ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА
рддреНрд░реБрдЯрд┐: рдлрд╝рд╛рдЗрд▓ рд╡реНрдпреВрдЕрд░ рдХрд╛ рдореВрд▓ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛
рдирдИ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХреЗрдВ ('рдлрд╝рд╛рдЗрд▓ рджрд░реНрд╢рдХ рдореВрд▓ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ \' s ');
рдореЗрд░реЗ рдпреВрдЖрд░рдПрд▓ рдкреАрдбреАрдПрдл рдХрд╛ рдЙрджрд╛рд╣рд░рдг http://res.cloudinary.com/image/upload/v1459791656/my_file.pdf
рдореИрдВ рдЗрд╕ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ viewer.js . рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдХрд▓реНрдк рдХрд░рддрд╛ рд╣реВрдВ
рдЕрдЧрд░ (рдлрд╛рдЗрд▓рдСрд░рд┐рдЬрд┐рди!== рд╡реНрдпреВрдЕрд░рдСрд░рд┐рдЬрд┐рди) {
рдирдИ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХреЗрдВ ('рдлрд╝рд╛рдЗрд▓ рдореВрд▓ рджрд░реНрд╢рдХ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА');
}
рддрд░реНрдХ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рди рдХрд░реЗрдВред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓ рдореВрд▓ рдФрд░ рд╡реНрдпреВрдЕрд░рдСрд░рд┐рдЬрд┐рди рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ HOSTED_VIEWER_ORIGINS рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╡реНрдпреВрдЕрд░рдСрд░рд┐рдЬрд┐рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдФрд░ "_рдлрд╛рдЗрд▓ рдореВрд▓, рд╡реНрдпреВрдЕрд░_ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛" рддреНрд░реБрдЯрд┐ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧреАред
рдЗрд╕реЗ рдЬреЛрдбрд╝реЛ:
console.log('fileOrigin', fileOrigin);
console.log('viewerOrigin', viewerOrigin);
... рдареАрдХ рдКрдкрд░:
if (fileOrigin !== viewerOrigin) {
throw new Error('file origin does not match viewer\'s');
}
рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЗ рдпреВрдЖрд░рдПрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдирд┐рдХреЗрд▓ рдЧрд╛рдпрдм рд╣реИ (рдпрд╛ рд╣реИ) рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд▓реИрд╢ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛ (рдЦреЛрдЬрд╛ рдЧрдпрд╛ рдЬрдм рдХрдВрд╕реЛрд▓ рдЙрди рджреЛ рд╡рд░реНрд░реЛрдВ рдХреЛ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛)ред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред
рд░реЗрдЧреЗрдХреНрд╕/рд╡рд╛рдЗрд▓реНрдбрдЪрд░реНрд╕ рдХреЗ рд╕рд╛рде HOSTED_VIEWER_ORIGINS рд╕рд░рдгреА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЧреИрд░-рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рдореЛрдЬрд╝рд┐рд▓рд╛ рдбреЛрдореЗрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ 10k рд▓рд╛рдЗрди рдирд┐рд░реНрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ viewer.js?
@gildassamuel рддреБрдо рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдУ !!
рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдЦреБрд▓рд╛ viewer.js рд╣реИ рдФрд░ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣реЛрд╕реНрдЯ рдХреЛ HOSTED_VIEWER_ORIGINS рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
var HOSTED_VIEWER_ORIGINS = ['null', '.....'];
рдЪреЗрдХрд┐рдВрдЧ рдХреЛрдб рди рд╣рдЯрд╛рдПрдВ :|
рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдп рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдпреВрдбрдмреНрд▓реНрдпреВрдкреА рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ (рдлрд╝рд╛рдЗрд▓ рдореВрд▓ рджрд░реНрд╢рдХ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ)ред рд╕реНрдерд╛рдиреАрдп рдкрде рдХреЗ рд▓рд┐рдП HOSTED_VIEWER_ORIGINS рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреМрди рд╕реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝реА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП?
рдХрд┐рд╕реА рдРрдк рдХреЗ рднреАрддрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╕реНрдерд╛рдиреАрдп рдкрдереЛрдВ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП 'рдлрд╝рд╛рдЗрд▓: //' рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ред
рд╡рд░ HOSTED_VIEWER_ORIGINS = [
'рд╢реВрдиреНрдп',
' http://mozilla.github.io ',
' https://mozilla.github.io ',
'рдлрд╝рд╛рдЗрд▓: //' // рдРрдк рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рджрд░реНрд╢рдХ
];
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреЛрдбрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕реНрдерд╛рдиреАрдп рдкрддрд╛ рдЬреЛрдбрд╝рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛:
var HOSTED_VIEWER_ORIGINS = [
'null',
'http://mozilla.github.io',
'https://mozilla.github.io',
'http://localhost:5000'
];
рд▓реЗрдХрд┐рди рдЪреЗрдХрд┐рдВрдЧ рдХреЛрдб рди рд╣рдЯрд╛рдПрдВ :
if (fileOrigin !== viewerOrigin) {
throw new Error('file origin does not match viewer\'s');
}
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди 2 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред рдЖрдкрдХрд╛ рд╕реНрдерд╛рдиреАрдп рдЖрдИрдкреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬрд╣рд╛рдВ рднреА рдЖрдк рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ)
var LOCAL_AUTO_DETECT_ORIGIN = window.location.origin;
var HOSTED_VIEWER_ORIGINS = ['null', 'http://mozilla.github.io', 'https://mozilla.github.io'];
HOSTED_VIEWER_ORIGINS.push(LOCAL_AUTO_DETECT_ORIGIN);
рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, #6916 рджреЗрдЦреЗрдВред HOSTED_VIEWER_ORIGINS рд╕реВрдЪреА рдореЗрдВ рдЕрдкрдиреЗ рд╣реЛрд╕реНрдЯ рдореВрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП viewer.js рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рдЙрддреНрддрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдирд╛ред
рдореЗрд░реА рдорджрдж рдХреА
рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдмреБрд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЕрднреА рддрдХ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореВрд▓ ' http://localhost ' рд╕реЗ ' https://dmain/file.pdf ' рдкрд░ рд▓рд╛рдиреЗ рдХреА рдкрд╣реБрдВрдЪ CORS рдиреАрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджреА рдЧрдИ рд╣реИ: рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдкрд░ рдХреЛрдИ 'рдкрд╣реБрдВрдЪ-рдирд┐рдпрдВрддреНрд░рдг-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐' рд╢реАрд░реНрд╖рд▓реЗрдЦ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдПрдХ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ, рддреЛ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЗ рдореЛрдб рдХреЛ 'рдиреЛ-рдХреЙрд░реНрд╕' рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рдирдорд╕реНрддреЗ,
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ ?
рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ рдХрд┐ рд╡рд╣ cors рдиреАрддрд┐ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░реЗ, pdfjs рдХреА рдирд╣реАрдВ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЪреЗрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВрдиреЗValidFileURL рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ return;
рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдм рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореИрдВ amazon s3 рд╕реЗ рдкреАрдбреАрдПрдл рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдЬреИрд╕рд╛ рдХрд┐ @ IK77 рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓рд╛: https://github.com/mozilla/pdf.js/pull/6916
@IK77
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдЗрд╕ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ viewer.js . рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдХрд▓реНрдк рдХрд░рддрд╛ рд╣реВрдВ
рдЕрдЧрд░ (рдлрд╛рдЗрд▓рдСрд░рд┐рдЬрд┐рди!== рд╡реНрдпреВрдЕрд░рдСрд░рд┐рдЬрд┐рди) {
рдирдИ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХреЗрдВ ('рдлрд╝рд╛рдЗрд▓ рдореВрд▓ рджрд░реНрд╢рдХ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА');
}