Giter Club home page Giter Club logo

office-online-test-tools-and-documentation's Introduction

office-online-test-tools-and-documentation's People

Contributors

alisayso avatar borisf-msft avatar capfei avatar chennah avatar chrisbro-msft avatar davhidalgoe avatar dependabot[bot] avatar gtritchie avatar jkratter avatar jurrutten avatar justhua-h avatar karvell avatar kennylongmsft avatar mandaryadav avatar marcinjuraszek avatar markfields avatar microsoft-github-policy-service[bot] avatar nisha-singh avatar olga-msft avatar praatikg avatar raffis avatar robrol avatar shaharso avatar shankaradhi avatar shrikantms avatar tylerbutler avatar xiaohya-msft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

office-online-test-tools-and-documentation's Issues

PutFile: should succeed for zero-byte, not locked files

A PutFile operation on a file that is not locked AND zero bytes must be executed. In other words, in some cases Office Online will send PutFile requests on files that are not yet locked, and those operations should be honored iff the file is zero bytes in size. (we need this for the Create New – 0byte file - flow)

Related to issue #2.

X-WOPI-AppEndpoint and X-WOPI-HostEndpoint headers are not documented

  • X-WOPI-AppEndpoint: a string used to indicate the endpoint of the Office Online app sending the request – typically used to indicate geographic location, datacenter, etc. Should be treated like an opaque string by the host.
  • X-WOPI-HostEndpoint: a string used to indicate the endpoint of the WOPI host handling the request – typically used to indicate geographic location, datacenter, etc. Office Online treats this as an opaque string, but logs it for troubleshooting purposes.

Document missing PostMessages

  • UI_ReportAbuse
  • UI_ReplyWithChanges
  • UI_OpenInClient
  • UI_RedeemForCommenting
  • UI_FileEmbed
  • UI_FileProperties
  • UI_ShareForm
  • CheckPolicy
  • CheckPolicyResponse
  • QueryLoadingStatus
  • App_TempError
  • App_AllOK
  • App_FatalError
  • App_Navigated

Write "Performance" section

  • Preloading static content
  • Optimizing document viewing for high volume
    • SHA256
      • If this is not provided, we'll generate a cache key using the file ID and version of the file. Not as reliable; we prefer SHA256 if possible
    • UniqueContentId
    • DisableBrowserCachingOfUserContent

Also need to include performance targets for WOPI operations such as CheckFileInfo.

Also call out the TCP sliding window size extension info for network performance.

Add sample code and test cases for validating proof key implementations

From @MarcinJuraszek:

There is a pair of inputs for each of possible cases:

  1. Validate successfully using X-WOPI-Proof and current Key from Discovery
  2. Validate successfully using X-WOPI-ProofOld and current Key from Discovery
  3. Validate successfullyusing X-WOPI-Proof and old Key from Discovery
  4. Validation fails

I generated those using custom certificate, all the keys information is included in the test code itself so it's not bound to any Certificate changes we make in our environments.

You can find the code on Gist: https://gist.github.com/MarcinJuraszek/54477a568c9a2ed851ef - just change ProofKeysHelper.Validate() method with your implementation of Proof Keys validation logic.

Under what conditions will X-WOPI-OverwriteRelativeTarget be set to true?

X-WOPI-OverwriteRelativeTarget indicates that if the filename we pass with PutRelative already exists, overwrite the file. Otherwise, hosts should return a 409 error with a suggested new file name. In Excel there is a checkbox that gives the user the option to do this on Save As; this is the only place today that this header is set.

Use correct casing in HTTP headers

HTTP headers are case-insensitive, per RFC 7230 Section 3.2:

Each header field consists of a case-insensitive field name followed by a colon (":"), optional leading whitespace, the field value, and optional trailing whitespace.

However, we should be consistent when we refer to the headers, and use X-WOPI- in all caps as the prefix, and camel-casing for the rest of the header name, e.g. X-WOPI-OldLock.

Unfortunately, due to the behavior of sphinxcontrib-httpdomain in version 1.3.0, the header values are automatically title-cased in the REST parts of the docs. This issue is actually already fixed in the next version of sphinxcontrib-httpdomain, and I have asked the developer to publish an updated version since 1.3.0 is quite old at this point. Until that's done we'll have inconsistencies.

Add UI guidelines

  • Editors must be edge-to-edge frames; viewers can be lightboxed, though
  • Hosts are expected to allow transitions from view to edit directly whenever applicable (i.e. the user has rights and edit is supported)
    • This means they need to provide access tokens that are scoped properly for both view and edit and set SupportsUpdate and UserCanWrite, etc.
  • Use the branding toolkit, and/or favicons from discovery

Reorganize the operations and endpoints sections

Right now the WOPI operations are all grouped by the endpoint they're exposed on, which makes some sense organizationally, but in practice the endpoints are largely irrelevant, while the operations are very interesting. Right now the docs make it a bit hard to find, for example, CheckFileInfo. Maybe we should just move the endpoints to a reference section and expose the operations at a higher level?

Clarify locks section

Need to clarify the lock requirements, especially around lock mismatches and the headers that should be returned by the host.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.